« Visual studio code » : différence entre les versions
Ligne 479 : | Ligne 479 : | ||
{{boxx|Ctrl + Shift + V}} → preview | {{boxx|Ctrl + Shift + V}} → preview | ||
= Replace regex = | = Replace = | ||
== New line == | |||
To replace by a new line: | |||
* use {{boxx|Ctrl}} + {{boxx|Enter}} | |||
* or check {{boxx|.*}} (RegEx) and use {{boxx|\n}} | |||
== regex == | |||
<kode lang='bash'> | <kode lang='bash'> | ||
.* xxx (\w+).* | .* xxx (\w+).* |
Dernière version du 13 juin 2024 à 14:29
Liens
- Visual Studio Code Documentation
- Building dotnet with clang 4.0 and associated issues
- dotnet AUR
- .NET Core Roadmap
Raccourcis clavier
Ctrl + Shift + P | Lancer une commande |
Shift + Alt + F Ctrl + Shift + I |
Formater le code |
Ctrl + K, M | Change Language Mode |
Ctrl + ! | Afficher le terminal |
Ctrl + Shift + Alt + ↓ | Duplicate current line (Copy Line Down) |
Ctrl + Shift + 7 | Toogle line comment |
To know the action binded to a shortcut, you can search the shortcut: "ctrl+d" |
Utilisation
# créé le template "Console Application" (vscode.csproj Program.cs) dotnet new console # lister les templates disponibles dotnet new -l # lancer VS code dans le répertoire courant code . |
À l'ouverture de vscode, les éléments manquants sont téléchargés automatiquement (OmniSharp, .NET Core Debugger) |
Settings
File → Preferences → Settings Ctrl + ,
Règlages | Setting | Value |
---|---|---|
Side Bar à droite | Workbench → Appearence → Side Bar: Location | right |
Formatter à la sauvegarde | Editor: Format On Save Editor: Format On Paste | |
Font | Editor: Font Family Editor: Font Size |
'Droid Sans Mono' 16 |
Word Wrap | Editor: Word Wrap | on |
Cursor | Editor: Cursor Blinking | phase |
Auto Save | Files: Auto Save | onFocusChange |
Nb de fichiers dans Open Editors | Explorer - Open Editors: Visible | 0 |
Affiche les lignes de context lors du scroll | Editor: Sticky Scroll | Enabled |
OLD
"window.zoomLevel": 1, "explorer.enableDragAndDrop": false, // Git Bash (défaut: powershell ) "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe", |
Associate a file extension to a language
- open the file you want to associate to a language
- Ctrl + K + M (Change Language Mode)
- select the language to associate, if it is not listed you can enter the first letter to search it
Color Theme
File → Preferences → Color Theme
Color theme files are located at /usr/lib/code/extensions/theme-*
Extensions
Dernier élément du menu de gauche ou View → Extensions
- ~/.vscode/extensions
- %USERPROFILE%\.vscode\extensions
Communes
Nom de l'extension | Description |
---|---|
vscode-icons | belles icônes dans l'arborescence de fichiers (file folder) |
Azure Repos |
|
Git Lens | suite d'outils Git: Commit Graph, Commit Details, Visual File History (Pro) |
Git History | affiche l'historique des commits |
Create GUID | génère un GUID et le copie dans le presse-papier |
C#
Nom de l'extension | Description |
---|---|
jchannon C# Extensions |
|
Auto-Using for C# | automatically add using and references |
Super Sharp |
|
NuGet Gallery | installation / désinstallation de package NuGet |
.NET Core Test Explorer | tests unitaires |
C# XML Documentation Comments | commentaires avec /// |
ILSpy .NET Decompiler | décompiler des assemby - Ctrl+Shift+P → ilspy |
EditorConfig for VS Code | override user/workspace settings with settings found in .editorconfig files |
.NET Core Test Explorer
Cette extension recherche dans le dossier courant les fichiers *.csproj et *.sln pour découvrir les projects de test.
# create a folder and a file MySolution/MySolution.sln dotnet new sln -o MySolution # add projets to the solution dotnet sln add ./MyProject/MyProject.csproj |
SQL
Nom de l'extension | Description |
---|---|
SQLTools | Connection explorer, query runner, intellisense, bookmarks, query history |
SQLTools Microsoft SQL Server/Azure | |
SQLTools MySQL/MariaDB | SQLTools driver for MySQL and MariaDB |
Python
Extension | Description |
---|---|
Python | IntelliSense, linting, debugging, code navigation, code formatting, Jupyter notebook support, refactoring, variable explorer, test explorer |
Angular
Nom de l'extension | Description |
---|---|
Angular v6 Snippets | |
AngularDoc for Visual Studio Code | arborescence pour navigation dans le code |
Auto Import | import auto dans les fichier TS |
ESLint | vérification du code javascript |
markdownlint | lint for MD |
Markdown All in One | format MD document + racourcis-clavier |
TSLint | vérification du code ts. Rules Config ClientApp\tslint.json |
TypeScript Hero |
|
Move TS | Move TypeScript files and update relative imports |
Auto Close Tag | HTML / XML |
Auto Rename Tag | renomme la balise fermante en même temps que la balise ouvrante |
Travailler avec plusieurs projets (multi-root workspaces)
- Ouvrir un second dossier dans le même VScode: File → Add Folder to Workspace (lien)
- Référencer un autre projet:
cd MainProject dotnet add reference ../LibProject/LibProject.csproj |
MainProject.csproj |
<ItemGroup> <ProjectReference Include="..\LibProject\LibProject.csproj" /> </ItemGroup> |
Debug multiple projects
- Ajouter compounds au fichier .vscode/launch.json du workspace.
- Dans Debug l'entrée définit dans compounds est disponible.
.vscode/launch.json |
{ "version": "0.2.0", "configurations": [ { "name": "BlazorServerApp", "type": "coreclr", "request": "launch", "preLaunchTask": "build BlazorServerApp", "program": "${workspaceFolder}/BlazorServerApp/bin/Debug/netcoreapp3.1/BlazorServerApp.dll", "args": [], "cwd": "${workspaceFolder}/BlazorServerApp", "stopAtEntry": false, "serverReadyAction": { "action": "openExternally", "pattern": "^\\s*Now listening on:\\s+(https?://\\S+)" }, "env": { "ASPNETCORE_ENVIRONMENT": "Development" }, "sourceFileMap": { "/Views": "${workspaceFolder}/Views" } }, { "name": "WebApi", "type": "coreclr", "request": "launch", "preLaunchTask": "build WebApi", "program": "${workspaceFolder}/WebApi/bin/Debug/netcoreapp3.1/WebApi.dll", "args": [], "cwd": "${workspaceFolder}/WebApi", "stopAtEntry": false, "serverReadyAction": { "action": "openExternally", "pattern": "^\\s*Now listening on:\\s+(https?://\\S+)" }, "env": { "ASPNETCORE_ENVIRONMENT": "Development" }, "sourceFileMap": { "/Views": "${workspaceFolder}/Views" } } ], "compounds": [ { "name": "BlazorServerApp / WebApi", "configurations": [ "BlazorServerApp", "WebApi" ], "preLaunchTask": "build all" } ] } |
Tasks
|
.vscode/tasks.json |
{ "version": "2.0.0", "tasks": [ { "label": "build", "command": "dotnet", "type": "process", "args": [ "build", "${workspaceFolder}/WebApi.csproj", "/property:GenerateFullPaths=true", "/consoleloggerparameters:NoSummary" ], "problemMatcher": "$msCompile" }, { "label": "publish", "command": "dotnet", "type": "process", "args": [ "publish", "${workspaceFolder}/WebApi.csproj", "/property:GenerateFullPaths=true", "/consoleloggerparameters:NoSummary" ], "problemMatcher": "$msCompile" }, { "label": "watch", "command": "dotnet", "type": "process", "args": [ "watch", "run", "${workspaceFolder}/WebApi.csproj", "/property:GenerateFullPaths=true", "/consoleloggerparameters:NoSummary" ], "problemMatcher": "$msCompile" } ] } |
Appeler d'autres taches
.vscode/tasks.json |
{ "version": "2.0.0", "tasks": [ { "label": "build all", "dependsOn": [ "build server", "build client" ], "group": "build", "problemMatcher": [] }, { "label": "build server", "command": "dotnet", "type": "process", "args": [ "build", "${workspaceFolder}/Server/Server.csproj", "/property:GenerateFullPaths=true", "/consoleloggerparameters:NoSummary" ], "group": "build", "problemMatcher": "$msCompile" }, { "label": "build client", "command": "dotnet", "type": "process", "args": [ "build", "${workspaceFolder}/Client/Client.csproj", "/property:GenerateFullPaths=true", "/consoleloggerparameters:NoSummary" ], "group": "build", "problemMatcher": "$msCompile" } ] } |
Problem Matcher
dotnet tasks
tasks.json |
{ "label": "roslynator", "command": "roslynator", "type": "shell", "args": [ "analyze", "--analyzer-assemblies", "~/.vscode/extensions/josefpihrt-vscode.roslynator-4.3.0/roslyn/common", "~/.vscode/extensions/josefpihrt-vscode.roslynator-4.3.0/roslyn/analyzers" ], "problemMatcher": [ { "owner": "roslynator", "fileLocation": ["relative", "${workspaceFolder}"], // if it is run for a solution, it missed the project folder "pattern": [ { "regexp": "^(.+?)\\((\\d+),(\\d+)\\): (warning|error) (.+?): (.+?)$", "file": 1, "line": 2, "column": 3, "severity": 4, "code": 5, "message": 6 } ] } ] }, { "label": "code style", "command": "dotnet", "type": "shell", "args": [ "format", "--verify-no-changes" ], "problemMatcher": [ { "owner": "dotnet", "fileLocation": "absolute", "pattern": [ { "regexp": "^(.+?)\\((\\d+),(\\d+)\\): (warning|error) (.+?): (.+?) \\[.+\\]$", "file": 1, "line": 2, "column": 3, "severity": 4, "code": 5, "message": 6 } ] } ] } |
launch
.vscode/tasks.json |
{ "name": "Service .NET Core Launch (web)", "type": "coreclr", "request": "launch", "preLaunchTask": "build Service", "program": "${workspaceFolder}/Service/bin/Debug/netcoreapp3.1/Service.dll", "args": [], "cwd": "${workspaceFolder}/Service", "stopAtEntry": false, "serverReadyAction": { "action": "openExternally", "pattern": "^\\s*Now listening on:\\s+(https?://\\S+)", "uriFormat": "%s/swagger" }, "env": { "ASPNETCORE_ENVIRONMENT": "Development" }, "logging": { "engineLogging": true } } |
launch settings
Quand l’application est lancée avec dotnet run, launchSettings.json est lu s’il est disponible:
- le premier profil avec "commandName": "Project" est utilisé
- les paramètres environmentVariables remplacent les variables d’environnement
launchSettings.json |
{ "profiles": { "MyApp": { "commandName": "Project", "launchBrowser": true, "applicationUrl": "http://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } } |
SQL Server
- installer l'extension mssql
- nouvelle page → en bas à droite clique sur Plain Text → choisir SQL
- ou ouvrir un fichier *.sql
- F1 → MS SQL: Connect ou cliquer sur Disconnected en bas à droite → Create Connection Profile
- Ctrl + Shift + E exécuter du code
Markdown
Ctrl + Shift + V → preview
Replace
New line
To replace by a new line:
- use Ctrl + Enter
- or check .* (RegEx) and use \n
regex
.* xxx (\w+).* $1 |
Erreurs
The "Microsoft.AspNetCore.Razor.Tasks.DiscoverDefaultScopedCssItems" task could not be loaded
The "Microsoft.AspNetCore.Razor.Tasks.DiscoverDefaultScopedCssItems" task could not be loaded from the assembly /usr/share/dotnet/sdk/5.0.204/Sdks/Microsoft.NET.Sdk.Razor/build/netstandard2.0/../../tasks/net46/Microsoft.NET.Sdk.Razor.Tasks.dll. Invalid Image Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.
Create the folder /usr/share/dotnet/sdk/5.0.204/Sdks/Microsoft.NET.Sdk.Razor/tasks/net46 and copy the following files:
- Microsoft.NET.Sdk.Razor.Tasks
- System.Collections.Immutable
- System.Reflection.Metadata
Error processing 'handshake' request. Unknown Error: 0x89720010
C# debugging doesn't start the application.
Microsoft .NET Core Debugger only works with Microsoft Visual Studio Code and not with Visual Studio Code OSS (link).
Visual Studio Code is unable to watch for file changes in this large workspace
# Afficher le nombre max de fichiers qui peuvent être surveillés cat /proc/sys/fs/inotify/max_user_watches # Modifier temporairement le nombre max de fichiers qui peuvent être surveillés echo 65536 > /proc/sys/fs/inotify/max_user_watches # Modifier le nombre max de fichiers qui peuvent être surveillés (Archlinux) echo fs.inotify.max_user_watches=524288 | sudo tee /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl --system |
Microsoft.Common.props was not found
Microsoft.Build.Exceptions.InvalidProjectFileException: The imported project "/usr/lib/mono/xbuild/15.0/Microsoft.Common.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. /opt/dotnet/sdk/2.1.105/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.props
Installer MSBuild
yaourt msbuild # aur/msbuild-15-bin 15.5_xamarinxplat.2017.08.16.12.03_0xamarin3_ubuntu1404b1-3 msbuild /ver |
The terminfo database is invalid
MSBUILD : error MSB1025: An internal failure occurred while running MSBuild. System.InvalidOperationException: The terminfo database is invalid.
TERM=xterm dotnet build TERM=xterm dotnet run echo $TERM # xterm-256color |
Installation
Visual studio code is a code editor redefined, available on Windows, Linux and OS X, optimized for building web and cloud applications.
# Visual Studio Code open source distribution: code-oss pacman -S code # Microsoft's Visual Studio Code distribution yay visual-studio-code-bin |
Differences between the repository and Visual Studio Code
Extension C#
Installer l'extension C#:
- Bouton extension: dernier bouton du menu latéral de gauche
- Rechercher C#
# installer .NET core sdk pour compiler des applications et ses dépendances yaourt dotnet-sdk-2.0 |
OBSOLÈTE - Installing the .NET Core Debugger on Arch Linux
File → Preferences → Settings
{ "csharp.fallbackDebuggerLinuxRuntimeId": "ubuntu.16.10-x64" } |
# erreur Debug adapter process has terminated unexpectedly yaourt icu57 |