入门 Zed Industries 2026-09-14 17:42:19 · 0 阅读
第62章 Zed 编辑器中的 C# 开发配置详解
C# 支持通过 C# 扩展提供。
- Tree-sitter: tree-sitter/tree-sitter-c-sharp
- 语言服务器:
默认启用 Roslyn。若要切换至 csharp-ls 或 OmniSharp,请在 Zed 配置文件中添加以下设置:
{
"languages": {
"CSharp": {
"language_servers": ["csharp-ls", "!roslyn", "!omnisharp", "..."]
}
}
}
注意:配置中使用的语言名称是 "CSharp",而非 "C#"。
配置
可通过以下语言服务器设置来配置 Roslyn:
{
"lsp": {
"roslyn": {
"settings": {
// 以下展示了默认值,并在适用处给出了替代选项。
"csharp|symbol_search": {
"dotnet_search_reference_assemblies": true
},
"csharp|type_members": {
"dotnet_member_insertion_location": "atTheEnd", // 或 "withOtherMembersOfTheSameKind"
"dotnet_property_generation_behavior": "preferThrowingProperties" // 或 "preferAutoProperties"
},
"csharp|completion": {
"dotnet_show_name_completion_suggestions": true,
"dotnet_provide_regex_completions": true,
"dotnet_show_completion_items_from_unimported_namespaces": true,
"dotnet_trigger_completion_in_argument_lists": true
},
"csharp|quick_info": {
"dotnet_show_remarks_in_quick_info": true
},
"csharp|navigation": {
"dotnet_navigate_to_decompiled_sources": true,
"dotnet_navigate_to_source_link_and_embedded_sources": true
},
"csharp|highlighting": {
"dotnet_highlight_related_json_components": true,
"dotnet_highlight_related_regex_components": true
},
"csharp|inlay_hints": {
"dotnet_enable_inlay_hints_for_parameters": true,
"dotnet_enable_inlay_hints_for_literal_parameters": true,
"dotnet_enable_inlay_hints_for_indexer_parameters": true,
"dotnet_enable_inlay_hints_for_object_creation_parameters": true,
"dotnet_enable_inlay_hints_for_other_parameters": true,
"dotnet_suppress_inlay_hints_for_parameters_that_differ_only_by_suffix": true,
"dotnet_suppress_inlay_hints_for_parameters_that_match_method_intent": true,
"dotnet_suppress_inlay_hints_for_parameters_that_match_argument_name": true,
"csharp_enable_inlay_hints_for_types": true,
"csharp_enable_inlay_hints_for_implicit_variable_types": true,
"csharp_enable_inlay_hints_for_lambda_parameter_types": true,
"csharp_enable_inlay_hints_for_implicit_object_creation": true,
"csharp_enable_inlay_hints_for_collection_expressions": true
},
"csharp|code_style.formatting.indentation_and_spacing": {
"tab_width": 4,
"indent_size": 4,
"indent_style": "space" // 或 "tab"
},
"csharp|code_style.formatting.new_line": {
"end_of_line": "...", // 取决于平台的默认值
"insert_final_newline": false
},
"csharp|background_analysis": {
"dotnet_analyzer_diagnostics_scope": "default", // 或 "none"、"openFiles"、"fullSolution"
"dotnet_compiler_diagnostics_scope": "openFiles" // 或 "fullSolution"
},
"csharp|code_lens": {
"dotnet_enable_references_code_lens": false,
"dotnet_enable_tests_code_lens": false
},
"csharp|auto_insert": {
"dotnet_enable_auto_insert": true
},
"csharp|projects": {
"dotnet_binary_log_path": null,
"dotnet_enable_automatic_restore": true,
"dotnet_enable_file_based_programs": true,
"dotnet_enable_file_based_programs_when_ambiguous": true
},
"csharp|formatting": {
"dotnet_organize_imports_on_format": false
}
},
"binary": {
"path": "/path/to/roslyn-language-server",
"arguments": ["--stdio", "--autoLoadProjects" /* 可在此添加额外参数 */]
}
}
}
}
csharp-ls 可以在 Zed 配置文件中进行如下配置:
{
"lsp": {
"csharp-ls": {
"binary": {
"path": "/path/to/csharp-ls",
"arguments": [
/* 添加额外参数 */
]
},
"settings": {
// 下方为默认值。
"logLevel": "information",
"applyFormattingOptions": false,
"analyzersEnabled": false,
"useMetadataUris": true,
"razorSupport": false,
"solutionPathOverride": null,
"locale": null,
"debug": {
"debugMode": false,
"solutionLoadDelay": null
}
}
}
}
}
OmniSharp 可以在 Zed 配置文件中进行如下配置:
{
"lsp": {
"omnisharp": {
"binary": {
"path": "/path/to/OmniSharp",
"arguments": ["-lsp" /* 添加额外参数 */]
}
}
}
}