These are the extensions, settings, fonts and applications I use for web development using vscode.
It is an executable bash script for installing selected extensions and importing settings into Visual Studio Code.
Extensions and settings are mainly configured for full stack web development.
The settings use the Fira Code font, so it is also installed when installing extensions and importing settings.
Also installed is Fuse (sshfs) for working with remote files over ssh.
Installation has been tested on Linux Mint, using Virtual Box, but should work with most ubuntu systems.
Follow this link to install Visual Studio Code Download Visual Studio Code
With curl and Visual Studio Code installed:
CAUTION this installation will REPLACE any extensions or settings you currently have.
curl -s https://raw.githubusercontent.com/kahunacoder/vscode-php-web/master/vscode-php-web.sh | bash
You will be asked for your password to install sshfs and the fira code font.
Download or clone the repository and then edit or run the bash file as needed:
./vscode-php-web.sh
Run this command as administrator:
sudo chmod u+x vscode-php-web.sh
And then try running the file again
You can alternatively install each extension individually by clicking on the links below.
After installation, start Visual Studio Code and follow the on screen instructions. The SonarLint language server needs a Java Runtime, Visual Studio Code will ask for your permission to download and manage the JRE and then restart Visual Studio Code.
- aaron-bond.better-comments
- adamwalzer.string-converter
- alefragnani.Bookmarks
- alexdima.copy-relative-path
- anseki.vscode-color
- bardleware.sandstorm
- bierner.color-info
- bierner.emojisense
- bierner.lit-html
- bmewburn.vscode-intelephense-client
- bradlc.vscode-tailwindcss
- capaj.vscode-exports-autocomplete
- ChakrounAnas.turbo-console-log
- christian-kohler.path-intellisense
- chrmarti.regex
- Compulim.indent4to2
- dariofuzinato.vue-peek
- DavidAnson.vscode-markdownlint
- dbaeumer.vscode-eslint
- donjayamanne.githistory
- donjayamanne.jquerysnippets
- eamodio.gitlens
- EditorConfig.EditorConfig
- elken.mux
- emilast.LogFileHighlighter
- esbenp.prettier-vscode
- faelv.composer-companion
- formulahendry.code-runner
- GitLab.gitlab-workflow
- Gruntfuggly.todo-tree
- hbenl.vscode-test-explorer
- HookyQR.beautify
- howardzuo.vscode-npm-dependency
- iakimov.check-npm-updates
- IBM.output-colorizer
- inu1255.easy-snippet
- jcbuisson.vue
- JHeilingbrunner.vscode-gnupg-tool
- jvalecillos.gpg
- jeremyrajan.webpack
- kdcro101.favorites
- kisstkondoros.vscode-gutter-preview
- malmaud.tmux
- MehediDracula.php-constructor
- MehediDracula.php-namespace-resolver
- mikestead.dotenv
- mindaro-dev.file-downloader
- mrmlnc.vscode-apache
- mrmlnc.vscode-attrs-sorter
- mrmlnc.vscode-doiuse
- mrmlnc.vscode-less
- mrmlnc.vscode-postcss-sorting
- mrmlnc.vscode-scss
- ms-edgedevtools.vscode-edge-devtools
- ms-vscode.test-adapter-converter
- mskelton.npm-outdated
- octref.vetur
- oderwat.indent-rainbow
- patbenatar.advanced-new-file
- pflannery.vscode-versionlens
- redhat.vscode-yaml
- rifi2k.format-html-in-php
- ritwickdey.LiveServer
- sdras.vue-vscode-snippets
- shanoor.vscode-nginx
- SirTori.indenticator
- sleistner.vscode-fileutils
- SonarSource.sonarlint-vscode
- streetsidesoftware.code-spell-checker
- sysoev.language-stylus
- thisismanta.stylus-supremacy
- tomoki1207.pdf
- VCaveman.open-in-web
- vscode-icons-team.vscode-icons
- wayou.vscode-todo-highlight
- wholroyd.jinja
- wix.vscode-import-cost
- wk-j.webpack-progress
- wmaurer.change-case
- xdebug.php-debug
- yzhang.markdown-all-in-one
- Zignd.html-css-class-completion
- ziyasal.vscode-open-in-github
- jerrygoyal.shortcut-menu-bar-3.0.4
- sburg.vscode-javascript-booster-14.0.1
- k--kato.intellij-idea-keybindings-1.5.1
- formulahendry.auto-rename-tag-0.1.10
- formulahendry.auto-close-tag-0.5.14
These are the settings that will be applied for your installation.
{
"composerCompanion.enabled": true,
"composerCompanion.executablePath": "/usr/local/bin/composer",
"terminal.integrated.fontFamily": "Fira Code",
"terminal.integrated.scrollback": 5000,
"editor.tabCompletion": "on",
"editor.fontLigatures": true,
"editor.fontFamily": "Fira Code",
"editor.lightbulb.enabled": false,
"editor.bracketPairColorization.enabled": true,
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": [
"comment",
"entity.name.type.class",
"keyword",
"storage.modifier",
"storage.type.class.js",
"storage.type.function.js",
"storage.type.js",
"keyword.control.import.js",
"keyword.control.from.js",
"keyword.control.flow.js",
"keyword.control.conditional.js",
"keyword.control.loop.js",
"keyword.operator.new.js"
],
"settings": {
"fontStyle": "italic"
}
},
{
"scope": [
"invalid",
"comment",
"keyword.operator",
"constant.numeric.css",
"keyword.other.unit.px.css",
"constant.numeric.decimal.js",
"constant.numeric.json",
"entity.name.type.class.js"
],
"settings": {
"fontStyle": ""
}
}
]
},
"eslint.alwaysShowStatus": true,
"vetur.format.defaultFormatter.html": "prettyhtml",
"javascript.format.insertSpaceBeforeFunctionParenthesis": true,
"html.format.enable": false,
"html-css-class-completion.enableEmmetSupport": true,
"explorer.openEditors.visible": 0,
"cSpell.enabledLanguageIds": [
"c",
"cpp",
"csharp",
"go",
"handlebars",
"javascript",
"javascriptreact",
"latex",
"markdown",
"php",
"plaintext",
"python",
"restructuredtext",
"text",
"typescript",
"typescriptreact",
"vue",
"yml",
"html"
],
"cSpell.language": ",en-US,en",
"workbench.startupEditor": "newUntitledFile",
"php-cs-fixer.onsave": false,
"window.openFilesInNewWindow": "on",
"importCost.typescriptExtensions": [
"\\.vue?$"
],
"files.trimTrailingWhitespace": true,
"gitlens.keymap": "chorded",
"gitlens.advanced.messages": {
"suppressLineUncommittedWarning": true
},
"workbench.statusBar.feedback.visible": false,
"typescript.preferences.quoteStyle": "single",
"cSpell.allowCompoundWords": true,
"rest-client.previewResponseInUntitledDocument": true,
"colorInfo.languages": [
{
"selector": "css",
"colors": "css"
},
{
"selector": "sass",
"colors": "css"
},
{
"selector": "scss",
"colors": "css"
},
{
"selector": "less",
"colors": "css"
},
{
"selector": "stylus",
"colors": "css"
}
],
"eslint.packageManager": "yarn",
"eslint.run": "onSave",
"vueDocs.lang": "en",
"vueDocs.links": {
"Quasar": "https://v1.quasar-framework.org/",
"Vue CLI": "https://cli.vuejs.org/",
"Vuetify": "https://vuetifyjs.com/getting-started/quick-start"
},
"breadcrumbs.enabled": true,
"vetur.completion.useScaffoldSnippets": false,
"markdown.preview.breaks": true,
"window.openFoldersInNewWindow": "off",
"window.menuBarVisibility": "visible",
"git.autofetch": true,
"todo-tree.tree.showScanModeButton": false,
"editor.suggestSelection": "first",
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": false
},
"xmlTools.enableXmlTreeViewCursorSync": true,
"git.enableSmartCommit": true,
"sonarlint.rules": {
"javascript:S905": {
"level": "off"
},
"typescript:S125": {
"level": "off"
},
"php:S125": {
"level": "off"
}
},
"workbench.editor.untitled.hint": "hidden",
"yaml.customTags": [
"!encrypted/pkcs1-oaep scalar",
"!vault scalar"
],
"ansible.validate.executablePath": "ansible-lint",
"cSpell.enableFiletypes": [
"!nunjucks",
"html"
],
"vscode-edge-devtools.headless": true,
"vscode-edge-devtools.mirrorEdits": true,
"editor.inlineSuggest.enabled": true,
"window.zoomLevel": 1,
"snyk.yesWelcomeNotification": false,
"files.autoSave": "afterDelay",
"workbench.iconTheme": "vscode-icons",
"editor.defaultFormatter": "esbenp.prettier-vscode",
"reactSnippets.settings.prettierEnabled": true,
"vsicons.dontShowNewVersionMessage": true,
"editor.unicodeHighlight.ambiguousCharacters": false,
"diffEditor.maxComputationTime": 0,
"php.suggest.basic": false,
"php.validate.enable": false,
"emmet.excludeLanguages": [
"markdown",
"php"
],
"[jsonc]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"editor.gotoLocation.multipleDeclarations": "goto",
"[json]": {
"editor.defaultFormatter": "HookyQR.beautify"
},
"editor.minimap.enabled": false,
"[markdown]": {
"editor.defaultFormatter": "yzhang.markdown-all-in-one"
},
"intelephense.environment.phpVersion": "7.2",
"intelephense.files.exclude": [
"**/.git/**",
"**/.svn/**",
"**/.hg/**",
"**/CVS/**",
"**/.DS_Store/**",
"**/node_modules/**",
"**/bower_components/**",
"**/vendor/**/{Tests,tests}/**",
"**/.history/**",
"**/vendor/**/vendor/**",
"**/data/**",
"**/internal_data/**"
],
"php.debug.ideKey": "VSCODE_XDEBUG",
"php.debug.executablePath": "/usr/bin/php",
"markdown.preview.fontSize": 12,
"workbench.sideBar.location": "right",
"editor.fontSize": 12,
"bookmarks.sideBar.expanded": true,
"vscode-edge-devtools.fallbackRevision": "@a485c16d1ab76394f5d7397e15c0d7583d5259c1",
"[html]": {
"editor.defaultFormatter": "HookyQR.beautify"
},
"[php]": {
"editor.defaultFormatter": "bmewburn.vscode-intelephense-client"
},
"editor.formatOnSaveMode": "modifications",
"intelephense.format.enable": false,
"bookmarks.experimental.enableNewStickyEngine": false,
"html.format.preserveNewLines": false,
"lit-html.format.enabled": false,
"javascript.format.enable": false,
"vetur.format.options.tabSize": 4
}
Thanks to the authors of the extensions!