feat: Support project-level ls_specific_settings (#1192)

This commit is contained in:
code4lala authored and GitHub committed 2026-03-23 18:03:57 +01:00
1 parent d39d168523
commit bf92f3cb49
5 files changed
+19 -6

No files matched your search

+5 -2
View File
@@ -213,8 +213,10 @@ This ensures backward compatibility: existing projects that already have a `.ser
Most users will not need to adjust these settings.
:::
Under the key `ls_specific_settings` in `serena_config.yml`, you can you pass per-language,
language server-specific configuration.
Under the key `ls_specific_settings` in `serena_config.yml`, you can you pass global per-language,
language server-specific configuration. You can use the same key in the project configuration files (`project.yml`
and `project.local.yml` ) to override or extend the global settings for a specific project.
The settings are merged on top-level, meaning that project-level settings for a language will replace global settings for the same language.
Structure:
@@ -230,6 +232,7 @@ Most settings are currently undocumented. Please refer to the
implementation to determine supported settings.
:::
(override-ls-path)=
#### Overriding the Language Server Path
Some language servers, particularly those that use a single core path for the language server (e.g. the main executable),
+3 -1
View File
@@ -15,6 +15,8 @@ for cross-file reference finding, see below for details.
Your project must have a `compile_commands.json` file at the repository root.
This file is essential for correct parsing and cross-file reference finding.
You can use a specific clangd or ccls installation (e.g., a custom build or a version provided by your project),
by specifying the path in your configuration, see [ls-specific-settings](ls-specific-settings) for details.
## compile_commands.json Requirements
@@ -27,7 +29,7 @@ For reliable cross-file reference finding with clangd, your `compile_commands.js
### With clangd
Serena automatically downloads and manages clangd. Since clangd does not properly work with relative paths in `compile_commands.json`,
By default, Serena automatically downloads and manages clangd. Since clangd does not properly work with relative paths in `compile_commands.json`,
Serena will detect them and transform them into absolute paths automatically (writing a new `compile_commands.json` file), if needed.
#### Customizing the Compilation Database Location