Visual Studio Code
Appearance
settings.json
// VS Code Core
"diffEditor.ignoreTrimWhitespace": false,
// "editor.fontSize": 18,
"editor.accessibilitySupport": "off",
"editor.formatOnSave": true,
"editor.minimap.enabled": false,
"editor.suggestSelection": "first",
"editor.wordWrap": "on",
"files.eol": "\n",
"files.insertFinalNewline": true,
"files.trimTrailingWhitespace": true,
"files.exclude": {
"**/node_modules": true,
}, "outline.showVariables": false,
"security.workspace.trust.untrustedFiles": "open",
"telemetry.telemetryLevel": "off",
"update.showReleaseNotes": false,
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
"window.zoomLevel": 1,
"workbench.startupEditor": "none",
Shortcuts
Log File Cleanup
- mark text to remove from the log
- to set cursor to all matching lines: CTRL+F2 / CMD+F2
- to delete these lines: CTRL+SHIFT+K / CMD+SHIFT+K
Extensions
Arduiono
settings.json
// Arduino / C
"arduino.ignoreBoards": [
"Adafruit HUZZAH ESP8266"
],
// "C_Cpp.updateChannel": "Insiders",
"[c]": {
"editor.wordBasedSuggestions": false,
"editor.suggest.insertMode": "replace",
"editor.semanticHighlighting.enabled": true,
"editor.quickSuggestions": {
"comments": "on",
"strings": "on",
"other": "on"
}
},
Better Comments
Clipboard History
CSpell - Code Spell Checker
settings.json
// cSpell
"cSpell.language": "en-US,de-DE",
"cSpell.userWords": [
"Menke",
"Torben"
],
and
cspell.json (in project dir)
{
"useGitignore": true,
"dictionaries": [
"cspell-words"
],
"dictionaryDefinitions": [
{
"name": "cspell-words",
"path": "cspell-words.txt",
"addWords": true
}
],
"language": "en-US, de-DE",
"ignorePaths": [
"node_modules/**",
"src/assets/i18n/**",
"*.svg"
]
}
cspell-words.txt (configured above)
Torben Menke !forbiddenword
comments:
ignoreWords -> forbitten words to allow dictionaryDefinitions -> custom wordlist/dictionary ignoreRegExpList -> code blocks to ignore
ignore specific lines. Inside source code files use
// cspell:disable-line -- disables checking for the current line. // cspell:disable-next-line -- disables checking till the end of the next line.
Check for unknown words in all files
cspell --words-only --unique "**/*.{txt,md,html,js,ts,json,yml,py}" > cspell-unknown-words.txt
CSV/TSV
Draw.io
Excel Viewer
Git
settings.json
// Git "git.autofetch": true, "git.confirmSync": false, "git.enableSmartCommit": true,
Gnuplot
HTML
settings.json
// HTML "html.format.wrapLineLength": 0, "html.format.maxPreserveNewLines": 2, "html.format.preserveNewLines": false, "html.format.extraLiners": "head, body, /html, p, h1, h2, h3, h4, h5, h6",
JavaScript and Vue
see https://vueschool.io/articles/vuejs-tutorials/eslint-and-prettier-with-vite-and-vue-js-3/
Vue.js
settings.json
//
// JSON & YAML
//
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[yaml]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
//
// JavaScript & Vue
//
"[javascript]": {
"editor.codeActionsOnSave": [
"source.formatDocument",
"source.fixAll.eslint"
],
"editor.defaultFormatter": "esbenp.prettier-vscode",
// runs with "source.formatDocument"
"editor.formatOnSave": true
},
"[vue]": {
"editor.codeActionsOnSave": [
"source.formatDocument",
"source.fixAll.eslint"
],
"editor.defaultFormatter": "esbenp.prettier-vscode",
// runs with "source.formatDocument"
"editor.formatOnSave": true
},
// Prettier settings - runs with "source.formatDocument"
"prettier.enable": true,
"prettier.enableDebugLogs": true,
"prettier.trailingComma": "all",
// ESLint settings - runs with "source.fixAll.eslint"
"eslint.debug": false,
"eslint.format.enable": true,
"eslint.probe": ["javascript", "typescript", "vue", "html"],
"eslint.validate": ["javascript", "typescript", "vue", "html"],
create package.json
npm init
install packages
npm install --save-dev eslint npm install --save-dev eslint-config-google npm install --save-dev prettier npm install --save-dev eslint-config-prettier
create .eslintrc.json
npm init @eslint/config
.eslint.js
module.exports = {
env: {
browser: true,
es2021: true,
},
extends: [
"google",
"plugin:vue/vue3-recommended",
"plugin:vitest/recommended",
"prettier", // as last one
],
plugins: ["vitest"],
rules: {
// quotes: ["error", "double"],
"vue/valid-attribute-name": "error",
"vitest/max-nested-describe": [
"error",
{
max: 3,
},
],
},
};
.prettierrc
{
"arrowParens": "avoid",
"endOfLine": "lf",
"htmlWhitespaceSensitivity": "css",
"printWidth": 80,
"semi": true,
"singleQuote": false,
"tabWidth": 2,
"trailingComma": "all",
"vueIndentScriptAndStyle": false
}
LaTeX
settings.json
// LaTeX
"latex-workshop.latex.autoBuild.run": "never",
"settingsSync.ignoredSettings": [],
"[latex]": {
"editor.autoIndent": "none",
"editor.formatOnSave": false
// "auto-format": false
},
Markdown
settings.json
"[markdown]": {
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"editor.defaultFormatter": "DavidAnson.vscode-markdownlint"
},
Markdown Preview Mermaid Support
Perl
Old:
- Perl Toolbox (for coding style check) (requires perlcritic])
- Perl (requires CPAN Perl::Tidy and ctags
- Perl Debug (requires CPAN PadWalker)
Requirements
- cpan install Perl::Tidy
- cpan install Perl::Critic
- ctags
settings.json
// Perl "perltidy.additionalArguments": [ // see http://perltidy.sourceforge.net/perltidy.html "--perl-best-practices", // -pbp abbreviation for the parameters in the book Perl Best Practices by Damian Conway "--blank-lines-before-subs=2", // -blbs "--closing-side-comments", // adds "## end sub subname etc" "--indent-columns=2", // -ic does not work in vis.stutio code , but editor.tabSize does "--noblanks-before-comments", // -nbbc , opposite: --blanks-before-comments=2 / -bbc // "--maximum-line-length=0", // -l , 0 = infinite // "--standard-output", // -so // "--quiet", // -q Deactivate error messages and syntax checking (for running under an editor) // // // "--add-whitespace", // -aws add white spaces, use -naws if you do not want any whitespace added, but are willing to have some whitespace deleted // "--brace-tightness=0", // -bt braces thickness // "--cuddled-else", // -ce // "--delete-old-whitespace", // -dws default // "--ignore-side-comment-lengths", // comments are allowed to be longer than the lines of code // "--keep-old-blank-lines=1", //-kbl, 0=ignore, 1=stable, 2=keep // "--maximum-consecutive-blank-lines=1", // -mbl // "--nohanging-side-comments", // "--opening-brace-always-on-right", // -bar // "--paren-tightness=0", // -pt parentheses thickness // "--square-bracket-tightness=0", // -sbt square brackets thickness // // "--nohanging-side-comments", ], "perl-toolbox.lint.excludedPolicies": [ "ErrorHandling::RequireCarping", // die used instead of croak "InputOutput::RequireCheckedSyscalls", // Lint: BRUTAL: Return value of flagged function ignored - print "NamingConventions::Capitalization", // var. names all capital or all lower case "ProhibitEmptyQuotes", // don't complain if using $s = "ProhibitEnumeratedClasses", // don't complain about [a-z] "ProhibitEscapedMetacharacters", // don't complain about \d in reg exp / Use character classes for literal metachars instead of escapes "ProhibitMagicNumbers", // don't complain $n = 14 "ProhibitManyArgs", // don't care how many arguments a function has "ProhibitNoisyQuotes", // don't complain if using 1 char strings: $s = 'a' "ProhibitParensWithBuiltins", // don't complain if using () for buildin functions like open "ProhibitPostfixControls", // don't complain for $n ++ if <something> "ProhibitPunctuationVars", // don't complain if using $! "ProhibitUnusualDelimiters", // don't complain about m!^(https?)://! "ProhibitUselessTopic", // don't complain about use of $_ "RequireDotMatchAnything", // don't complain Regular expression without "/s" flag "RequireExplicitPackage", // don't require package as first line "RequireExtendedFormatting", // don't complain Regular expression without "/x" flag "RequireLineBoundaryMatching", // don't complain Regular expression without "/s" flag "RequireNumberSeparators", // don't require 141_234_397.0145 instead of 141234397.0145 . "RequireTidyCode", // don't complain on first line if not all of Perl::Tidy is met "RequireVersionVar", // don't complain on No package-scoped "$VERSION" variable found "ValuesAndExpressions::ProhibitInterpolationOfLiterals", // check use of ' vs " ], // "perl.ctagsPath": "c:\\Users\\t\\Progs\\ctags\\ctags.exe",
PHP
settings.json
// PHP "intelephense.environment.phpVersion": "7.4.30",
Python
see Python#Editor:_Visual_Studio_Code
Remote - SSH
- Connecte to remote machine via Remote - SSH
- F1
- "Remote SSH: Connect to Host"
- user@server.com
SQL
Format SQL
"Prettier-SQL.SQLFlavourOverride": "postgresql", "Prettier-SQL.ignoreTabSettings": true