保存时格式化文档,在vscode上删除未使用的使用

时间:2017-01-29 19:29:56

标签: c# .net visual-studio-code

我想设置为在Visual Studio Code上保存C#代码时触发“格式文档”和“删除未使用的使用”。或添加键盘快捷键以删除未使用的使用。

我已添加到以下用户设置。

"editor.formatOnSave": true

这会在保存时触发格式文档。但我也希望删除未使用的使用。 如果有未使用的用法,VS代码会警告我,我可以按Ctrl +。弹出关于删除未使用的使用。

  1. 我可以设置fire在保存时删除未使用的用途吗?
  2. 我可以为删除未使用的用途添加键盘快捷键吗?
  3. 我还为格式文档添加了键盘快捷键。

    { "key": "ctrl+k ctrl+f",         "command": "editor.action.formatSelection",
                                      "when": "editorHasDocumentSelectionFormattingProvider && editorHasSelection && editorTextFocus && !editorReadonly" },
    

    我想添加Ctrl + R Ctrl + G以删除未使用的使用。 (通过Visual Studio默认设置)。但我不知道如何配置键盘快捷键设置...

    { "key": "ctrl+r ctrl+g",         "command": "editor.action.???",
                                      "when": "???" },
    

2 个答案:

答案 0 :(得分:3)

删除未使用的使用的配置必须通过omnisharp完成。

Omnisharp设置可以在两个位置使用:

对于全局设置:

对于全局设置,请使用%USERPROFILE%/.omnisharp/omnisharp.json文件

针对项目的特定设置:

在工作区的根目录使用omnisharp.json

设置如下:

{
     "FormattingOptions": {
         "OrganizeImports": true
     }
}

2020年5月5日可用的其他默认设置:

{
    "FormattingOptions":  {
                              "OrganizeImports":  false,
                              "EnableEditorConfigSupport":  false,
                              "NewLine":  "\n",
                              "UseTabs":  false,
                              "TabSize":  4,
                              "IndentationSize":  4,
                              "SpacingAfterMethodDeclarationName":  false,
                              "SpaceWithinMethodDeclarationParenthesis":  false,
                              "SpaceBetweenEmptyMethodDeclarationParentheses":  false,
                              "SpaceAfterMethodCallName":  false,
                              "SpaceWithinMethodCallParentheses":  false,
                              "SpaceBetweenEmptyMethodCallParentheses":  false,
                              "SpaceAfterControlFlowStatementKeyword":  true,
                              "SpaceWithinExpressionParentheses":  false,
                              "SpaceWithinCastParentheses":  false,
                              "SpaceWithinOtherParentheses":  false,
                              "SpaceAfterCast":  false,
                              "SpacesIgnoreAroundVariableDeclaration":  false,
                              "SpaceBeforeOpenSquareBracket":  false,
                              "SpaceBetweenEmptySquareBrackets":  false,
                              "SpaceWithinSquareBrackets":  false,
                              "SpaceAfterColonInBaseTypeDeclaration":  true,
                              "SpaceAfterComma":  true,
                              "SpaceAfterDot":  false,
                              "SpaceAfterSemicolonsInForStatement":  true,
                              "SpaceBeforeColonInBaseTypeDeclaration":  true,
                              "SpaceBeforeComma":  false,
                              "SpaceBeforeDot":  false,
                              "SpaceBeforeSemicolonsInForStatement":  false,
                              "SpacingAroundBinaryOperator":  "single",
                              "IndentBraces":  false,
                              "IndentBlock":  true,
                              "IndentSwitchSection":  true,
                              "IndentSwitchCaseSection":  true,
                              "IndentSwitchCaseSectionWhenBlock":  true,
                              "LabelPositioning":  "oneLess",
                              "WrappingPreserveSingleLine":  true,
                              "WrappingKeepStatementsOnSingleLine":  true,
                              "NewLinesForBracesInTypes":  true,
                              "NewLinesForBracesInMethods":  true,
                              "NewLinesForBracesInProperties":  true,
                              "NewLinesForBracesInAccessors":  true,
                              "NewLinesForBracesInAnonymousMethods":  true,
                              "NewLinesForBracesInControlBlocks":  true,
                              "NewLinesForBracesInAnonymousTypes":  true,
                              "NewLinesForBracesInObjectCollectionArrayInitializers":  true,
                              "NewLinesForBracesInLambdaExpressionBody":  true,
                              "NewLineForElse":  true,
                              "NewLineForCatch":  true,
                              "NewLineForFinally":  true,
                              "NewLineForMembersInObjectInit":  true,
                              "NewLineForMembersInAnonymousTypes":  true,
                              "NewLineForClausesInQuery":  true
                          }
}

答案 1 :(得分:1)

我担心,今天写的,VSCode Marketplace上没有插件 - 也没有内置的设置/功能提供你想要的关于“未使用的使用”行为,如在完整的Visual Studio中。

我的建议是在名为“OmniSharp”的官方微软插件中询问此功能(默认C#插件也支持其他编辑器的C#功能):https://github.com/OmniSharp/omnisharp-vscode/issues
  附注:有一个关于“未使用的使用”的问题,要禁用它生成的警告:https://github.com/OmniSharp/omnisharp-vscode/issues/315

或者转到VSCode GitHub问题页面并在那里要求:https://github.com/microsoft/vscode/issues

或者最后一条路线是潜入并编写自己的插件/扩展程序:https://code.visualstudio.com/docs/extensions/overview