'How to generate class with file-scoped namespace syntax (C# 10) in vs code?
I would like to generate a new C# Class or C# Interface in Microsoft Visual Studio Code following the newest C#10 file-scoped namespace syntax.
https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/types/namespaces
Beginning with C# 10, you can declare a namespace for all types defined in that file, as shown in the following example:
namespace SampleNamespace; class AnotherSampleClass { public void AnotherSampleMethod() { System.Console.WriteLine( "SampleMethod inside SampleNamespace"); } }
I'm generating C# classes this way:
Right click on folder in the explorer -> New C# Class.
The output looks like this: (the old syntax with curly braces)
namespace SampleNamespace { class SampleClass { public void SampleMethod() { System.Console.WriteLine( "SampleMethod inside SampleNamespace"); } } }
I'm using C# for Visual Studio Code (powered by OmniSharp). v1.24.0
VS Code version is 1.62.3
Is there any way to override the generator behaviour to generate new file-scoped namespace syntax?
Solution 1:[1]
If you don't get the answer you seek in terms of changing the generator, you could consider:
- Install AutoHotKey
- Add this to the AHK script:
; CtrlAltN - convert to file scoped namespace
^!N::
KeyWait Control
KeyWait Alt
Send ^{Home}{Down}{Delete}{Delete}^{End}{Backspace}^a+{Tab}
return
- Make a new class
- Put the cursor anywhere in it and press Ctrl+Alt+M
It literally presses the following keys (after waiting for you to release Ctrl, Alt)
- Ctrl+Home - cursor to top of file
- Down - cursor to
{line - Del Del - remove
{and line - Ctrl+End - go to end
- Bksp - remove
} - Ctrl+a - select all
- Shift+Tab - undent
I'm sure you can tweak the script as required; ; prefixing a line is a comment, ^!N:: is a hotkey ^ means Ctrl, ! means Alt, + means Shift.. Then the other keys are either {named} or literal chars
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Caius Jard |
