microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
162.64k stars 28.67k forks source link

Tab key indention not working properly on sections that contain "loop" tag #11912

Closed BrandonRice closed 7 years ago

BrandonRice commented 8 years ago

Steps to Reproduce:

1.Enter the following code into VSCode editor window

<% 
for i = 1 to 20
This is just
Some random info
so that  you can get an
example of what I'm talking about
loop
%>
  1. Now highlight everything but the final line containing "loop" and hit TAB or SHIFT+TAB and the lines will indent correctly.
  2. Now highlight everything including the "loop" and hit TAB or SHIFT+TAB and you will see it all get converted to a <p></p> tag.

This just started today after the most recent update.

bpasero commented 8 years ago

Emmet?

mrmlnc commented 8 years ago

@BrandonRice,

What language is used in your code example? EJS?

I cannot reproduce this issue on Windows 10 with VS Code 1.5.2. You can provide video or gif?

**First case** ![2016-09-13_16-19-50](https://cloud.githubusercontent.com/assets/7034281/18475113/fa92cf50-79cd-11e6-8138-26ab901640e0.gif)
**Second case** ![2016-09-13_16-21-28](https://cloud.githubusercontent.com/assets/7034281/18475165/24a726a6-79ce-11e6-98fc-3ade12d0f69d.gif)
BrandonRice commented 8 years ago

Here is a video preview. For example purposes the code is standard html5. Issue seems to be the way "loop" is being handled.

2016-09-13_08-51-24

mrmlnc commented 8 years ago

I think it's not Emmet.

I cannot reproduce this behavior. ![2016-09-13_16-59-47](https://cloud.githubusercontent.com/assets/7034281/18476648/8d04cea6-79d3-11e6-93d1-e0e2f7e3d465.gif)

You can provide your VS Code settings and list of installed extensions?

BrandonRice commented 8 years ago

@mrmlnc - is there a preferred way for me to show you the data you request?

mrmlnc commented 8 years ago

@BrandonRice, I think you can give them here, just using:

<details>
  <summary>My settings</summary>
  <!-- My settings here (Copy & Paste) -->
</details>

Or screenshot for Extensions list.

BrandonRice commented 8 years ago

keybindings are set to default. I haven't set any user defined keybindings.

User defined settings are below:

// Place your settings in this file to overwrite default and user settings.

{
    "files.associations": {
        "*.asp": "html",
        "RunMacro.asp": "asp",
        "BulkUpdates.asp": "asp",
        "AddUpdate.asp": "asp",
        "*.ashx": "vb",
        "RunDispatch.asp": "asp",
        "ViewReportsCode.asp": "asp"
    },
    "window.restoreFullscreen": true,
    "editor.wrappingColumn": -1,
    "editor.tabCompletion": true,
    "window.reopenFolders": "none"
}

Default Settings are below:

// Overwrite settings by placing them into your settings file.
// See http://go.microsoft.com/fwlink/?LinkId=808995 for the most commonly used settings.
{

// Editor

    // Controls the font family.
    "editor.fontFamily": "Consolas, 'Courier New', monospace",

    // Controls the font weight.
    "editor.fontWeight": "normal",

    // Controls the font size in pixels.
    "editor.fontSize": 14,

    // Controls the line height. Use 0 to compute the lineHeight from the fontSize.
    "editor.lineHeight": 0,

    // Controls visibility of line numbers
    "editor.lineNumbers": true,

    // Controls visibility of the glyph margin
    "editor.glyphMargin": false,

    // Columns at which to show vertical rulers
    "editor.rulers": [],

    // Characters that will be used as word separators when doing word related navigations or operations
    "editor.wordSeparators": "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?",

    // The number of spaces a tab is equal to. This setting is overriden based on the file contents when `editor.detectIndentation` is on.
    "editor.tabSize": 4,

    // Insert spaces when pressing Tab. This setting is overriden based on the file contents when `editor.detectIndentation` is on.
    "editor.insertSpaces": true,

    // When opening a file, `editor.tabSize` and `editor.insertSpaces` will be detected based on the file contents.
    "editor.detectIndentation": true,

    // Controls if selections have rounded corners
    "editor.roundedSelection": true,

    // Controls if the editor will scroll beyond the last line
    "editor.scrollBeyondLastLine": true,

    // Controls after how many characters the editor will wrap to the next line. Setting this to 0 turns on viewport width wrapping (word wrapping). Setting this to -1 forces the editor to never wrap.
    "editor.wrappingColumn": 300,

    // Controls if lines should wrap. The lines will wrap at min(editor.wrappingColumn, viewportWidthInColumns).
    "editor.wordWrap": false,

    // Controls the indentation of wrapped lines. Can be one of 'none', 'same' or 'indent'.
    "editor.wrappingIndent": "same",

    // A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events
    "editor.mouseWheelScrollSensitivity": 1,

    // Controls if quick suggestions should show up or not while typing
    "editor.quickSuggestions": true,

    // Controls the delay in ms after which quick suggestions will show up
    "editor.quickSuggestionsDelay": 10,

    // Enables parameter hints
    "editor.parameterHints": true,

    // Controls if the editor should automatically close brackets after opening them
    "editor.autoClosingBrackets": true,

    // Controls if the editor should automatically format the line after typing
    "editor.formatOnType": false,

    // Controls if suggestions should automatically show up when typing trigger characters
    "editor.suggestOnTriggerCharacters": true,

    // Controls if suggestions should be accepted 'Enter' - in addition to 'Tab'. Helps to avoid ambiguity between inserting new lines or accepting suggestions.
    "editor.acceptSuggestionOnEnter": true,

    // Controls whether snippets are shown with other suggestions and how they are sorted.
    "editor.snippetSuggestions": "bottom",

    // Enable word based suggestions.
    "editor.wordBasedSuggestions": true,

    // Insert snippets when their prefix matches. Works best when 'quickSuggestions' aren't enabled.
    "editor.tabCompletion": false,

    // Controls whether the editor should highlight similar matches to the selection
    "editor.selectionHighlight": true,

    // Controls the number of decorations that can show up at the same position in the overview ruler
    "editor.overviewRulerLanes": 3,

    // Control the cursor animation style, possible values are 'blink', 'smooth', 'phase', 'expand' and 'solid'
    "editor.cursorBlinking": "blink",

    // Zoom the font of the editor when using mouse wheel and holding Ctrl
    "editor.mouseWheelZoom": false,

    // Controls the cursor style, accepted values are 'block', 'line' and 'underline'
    "editor.cursorStyle": "line",

    // Enables font ligatures
    "editor.fontLigatures": false,

    // Controls if the cursor should be hidden in the overview ruler.
    "editor.hideCursorInOverviewRuler": false,

    // Controls whether the editor should render whitespace characters
    "editor.renderWhitespace": false,

    // Controls whether the editor should render control characters
    "editor.renderControlCharacters": false,

    // Controls whether the editor should render indent guides
    "editor.renderIndentGuides": false,

    // Controls whether the editor should render the current line highlight
    "editor.renderLineHighlight": true,

    // Controls if the editor shows code lenses
    "editor.codeLens": true,

    // Controls whether the editor has code folding enabled
    "editor.folding": true,

    // Inserting and deleting whitespace follows tab stops
    "editor.useTabStops": true,

    // Remove trailing auto inserted whitespace
    "editor.trimAutoWhitespace": true,

    // Keep peek editors open even when double clicking their content or when hitting Escape.
    "editor.stablePeek": false,

    // Controls if the diff editor shows the diff side by side or inline
    "diffEditor.renderSideBySide": true,

    // Controls if the diff editor shows changes in leading or trailing whitespace as diffs
    "diffEditor.ignoreTrimWhitespace": true,

// Emmet

    // When enabled, emmet abbreviations are expanded when pressing TAB.
    "emmet.triggerExpansionOnTab": true,

    // Preferences used to modify behavior of some actions and resolvers of Emmet.
    "emmet.preferences": {},

    // Define profile for specified syntax or use your own profile with specific rules.
    "emmet.syntaxProfiles": {},

    // An array of languages where emmet abbreviations should not be expanded.
    "emmet.excludeLanguages": [],

// Workbench

    // Controls if opened editors should show in tabs or not.
    "workbench.editor.showTabs": true,

    // Controls if opened editors show as preview. Preview editors are reused until they are kept (e.g. via double click or editing).
    "workbench.editor.enablePreview": true,

    // Controls if opened editors from Quick Open show as preview. Preview editors are reused until they are kept (e.g. via double click or editing).
    "workbench.editor.enablePreviewFromQuickOpen": true,

    // Controls where editors open. Select 'left' or 'right' to open editors to the left or right of the current active one. Select 'first' or 'last' to open editors independently from the currently active one.
    "workbench.editor.openPositioning": "right",

    // Controls if Quick Open should close automatically once it loses focus.
    "workbench.quickOpen.closeOnFocusLost": true,

    // Controls if opening settings also opens an editor showing all default settings.
    "workbench.settings.openDefaultSettings": true,

// Window

    // When enabled, will open files in a new window instead of reusing an existing instance.
    "window.openFilesInNewWindow": true,

    // Controls how folders are being reopened after a restart. Select 'none' to never reopen a folder, 'one' to reopen the last folder you worked on or 'all' to reopen all folders of your last session.
    "window.reopenFolders": "one",

    // Controls if a window should restore to full screen mode if it was exited in full screen mode.
    "window.restoreFullscreen": false,

    // Adjust the zoom level of the window. The original size is 0 and each increment above (e.g. 1) or below (e.g. -1) represents zooming 20% larger or smaller. You can also enter decimals to adjust the zoom level with a finer granularity.
    "window.zoomLevel": 0,

// Files

    // Configure glob patterns for excluding files and folders.
    "files.exclude": {
        "**/.git": true,
        "**/.svn": true,
        "**/.hg": true,
        "**/.DS_Store": true
    },

    // Configure file associations to languages (e.g. "*.extension": "html"). These have precedence over the default associations of the languages installed.
    "files.associations": {},

    // The default character set encoding to use when reading and writing files.
    "files.encoding": "utf8",

    // The default end of line character.
    "files.eol": "\r\n",

    // When enabled, will trim trailing whitespace when you save a file.
    "files.trimTrailingWhitespace": false,

    // Controls auto save of dirty files. Accepted values:  "off", "afterDelay", "onFocusChange" (editor loses focus), "onWindowChange" (window loses focus). If set to "afterDelay", you can configure the delay in "files.autoSaveDelay".
    "files.autoSave": "off",

    // Controls the delay in ms after which a dirty file is saved automatically. Only applies when "files.autoSave" is set to "afterDelay"
    "files.autoSaveDelay": 1000,

    // Configure glob patterns of file paths to exclude from file watching. Changing this setting requires a restart. When you experience Code consuming lots of cpu time on startup, you can exclude large folders to reduce the initial load.
    "files.watcherExclude": {
        "**/.git/objects/**": true
    },

// File Explorer

    // Number of editors shown in the Open Editors pane. Set it to 0 to hide the pane.
    "explorer.openEditors.visible": 9,

    // Controls if the height of the open editors section should adapt dynamically to the number of elements or not.
    "explorer.openEditors.dynamicHeight": true,

    // Controls if the explorer should automatically reveal files when opening them.
    "explorer.autoReveal": true,

    // Controls if the explorer should allow to move files and folders via drag and drop.
    "explorer.enableDragAndDrop": true,

// Search

    // Configure glob patterns for excluding files and folders in searches. Inherits all glob patterns from the files.exclude setting.
    "search.exclude": {
        "**/node_modules": true,
        "**/bower_components": true
    },

    // Configure to include results from a global symbol search in the file results for Quick Open.
    "search.quickOpen.includeSymbols": false,

// Git

    // Is git enabled
    "git.enabled": true,

    // Path to the git executable
    "git.path": null,

    // Whether auto refreshing is enabled
    "git.autorefresh": true,

    // Whether auto fetching is enabled.
    "git.autofetch": true,

    // Whether long commit messages should be warned about.
    "git.enableLongCommitWarning": true,

    // Always allow large repositories to be managed by Code.
    "git.allowLargeRepositories": false,

    // Confirm before synchronizing git repositories.
    "git.confirmSync": false,

    // Controls the git badge counter.
    "git.countBadge": "all",

// HTTP

    // The proxy setting to use. If not set will be taken from the http_proxy and https_proxy environment variables
    "http.proxy": "",

    // Whether the proxy server certificate should be verified against the list of supplied CAs.
    "http.proxyStrictSSL": true,

    // The value to send as the 'Proxy-Authorization' header for every network request.
    "http.proxyAuthorization": null,

// Update

    // Configure whether you receive automatic updates from an update channel. Requires a restart after change.
    "update.channel": "default",

// CSS

    // Controls CSS validation and problem severities.

    // Enables or disables all validations
    "css.validate": true,

    // When using a vendor-specific prefix make sure to also include all other vendor-specific properties
    "css.lint.compatibleVendorPrefixes": "ignore",

    // When using a vendor-specific prefix also include the standard property
    "css.lint.vendorPrefix": "warning",

    // Do not use duplicate style definitions
    "css.lint.duplicateProperties": "ignore",

    // Do not use empty rulesets
    "css.lint.emptyRules": "warning",

    // Import statements do not load in parallel
    "css.lint.importStatement": "ignore",

    // Do not use width or height when using padding or border
    "css.lint.boxModel": "ignore",

    // The universal selector (*) is known to be slow
    "css.lint.universalSelector": "ignore",

    // No unit for zero needed
    "css.lint.zeroUnits": "ignore",

    // @font-face rule must define 'src' and 'font-family' properties
    "css.lint.fontFaceProperties": "warning",

    // Hex colors must consist of three or six hex numbers
    "css.lint.hexColorLength": "error",

    // Invalid number of parameters
    "css.lint.argumentsInColorFunction": "error",

    // Unknown property.
    "css.lint.unknownProperties": "warning",

    // IE hacks are only necessary when supporting IE7 and older
    "css.lint.ieHack": "ignore",

    // Unknown vendor specific property.
    "css.lint.unknownVendorSpecificProperties": "ignore",

    // Property is ignored due to the display. E.g. with 'display: inline', the width, height, margin-top, margin-bottom, and float properties have no effect
    "css.lint.propertyIgnoredDueToDisplay": "warning",

    // Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored.
    "css.lint.important": "ignore",

    // Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes.
    "css.lint.float": "ignore",

    // Selectors should not contain IDs because these rules are too tightly coupled with the HTML.
    "css.lint.idSelector": "ignore",

// SCSS (Sass)

    // Controls SCSS validation and problem severities.

    // Enables or disables all validations
    "scss.validate": true,

    // When using a vendor-specific prefix make sure to also include all other vendor-specific properties
    "scss.lint.compatibleVendorPrefixes": "ignore",

    // When using a vendor-specific prefix also include the standard property
    "scss.lint.vendorPrefix": "warning",

    // Do not use duplicate style definitions
    "scss.lint.duplicateProperties": "ignore",

    // Do not use empty rulesets
    "scss.lint.emptyRules": "warning",

    // Import statements do not load in parallel
    "scss.lint.importStatement": "ignore",

    // Do not use width or height when using padding or border
    "scss.lint.boxModel": "ignore",

    // The universal selector (*) is known to be slow
    "scss.lint.universalSelector": "ignore",

    // No unit for zero needed
    "scss.lint.zeroUnits": "ignore",

    // @font-face rule must define 'src' and 'font-family' properties
    "scss.lint.fontFaceProperties": "warning",

    // Hex colors must consist of three or six hex numbers
    "scss.lint.hexColorLength": "error",

    // Invalid number of parameters
    "scss.lint.argumentsInColorFunction": "error",

    // Unknown property.
    "scss.lint.unknownProperties": "warning",

    // IE hacks are only necessary when supporting IE7 and older
    "scss.lint.ieHack": "ignore",

    // Unknown vendor specific property.
    "scss.lint.unknownVendorSpecificProperties": "ignore",

    // Property is ignored due to the display. E.g. with 'display: inline', the width, height, margin-top, margin-bottom, and float properties have no effect
    "scss.lint.propertyIgnoredDueToDisplay": "warning",

    // Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored.
    "scss.lint.important": "ignore",

    // Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes.
    "scss.lint.float": "ignore",

    // Selectors should not contain IDs because these rules are too tightly coupled with the HTML.
    "scss.lint.idSelector": "ignore",

// LESS

    // Controls LESS validation and problem severities.

    // Enables or disables all validations
    "less.validate": true,

    // When using a vendor-specific prefix make sure to also include all other vendor-specific properties
    "less.lint.compatibleVendorPrefixes": "ignore",

    // When using a vendor-specific prefix also include the standard property
    "less.lint.vendorPrefix": "warning",

    // Do not use duplicate style definitions
    "less.lint.duplicateProperties": "ignore",

    // Do not use empty rulesets
    "less.lint.emptyRules": "warning",

    // Import statements do not load in parallel
    "less.lint.importStatement": "ignore",

    // Do not use width or height when using padding or border
    "less.lint.boxModel": "ignore",

    // The universal selector (*) is known to be slow
    "less.lint.universalSelector": "ignore",

    // No unit for zero needed
    "less.lint.zeroUnits": "ignore",

    // @font-face rule must define 'src' and 'font-family' properties
    "less.lint.fontFaceProperties": "warning",

    // Hex colors must consist of three or six hex numbers
    "less.lint.hexColorLength": "error",

    // Invalid number of parameters
    "less.lint.argumentsInColorFunction": "error",

    // Unknown property.
    "less.lint.unknownProperties": "warning",

    // IE hacks are only necessary when supporting IE7 and older
    "less.lint.ieHack": "ignore",

    // Unknown vendor specific property.
    "less.lint.unknownVendorSpecificProperties": "ignore",

    // Property is ignored due to the display. E.g. with 'display: inline', the width, height, margin-top, margin-bottom, and float properties have no effect
    "less.lint.propertyIgnoredDueToDisplay": "warning",

    // Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored.
    "less.lint.important": "ignore",

    // Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes.
    "less.lint.float": "ignore",

    // Selectors should not contain IDs because these rules are too tightly coupled with the HTML.
    "less.lint.idSelector": "ignore",

// HTML

    // Maximum amount of characters per line (0 = disable).
    "html.format.wrapLineLength": 120,

    // List of tags, comma separated, that shouldn't be reformatted. 'null' defaults to all tags listed at https://www.w3.org/TR/html5/dom.html#phrasing-content.
    "html.format.unformatted": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, script, select, small, span, strong, sub, sup, textarea, tt, var",

    // Indent <head> and <body> sections.
    "html.format.indentInnerHtml": false,

    // Whether existing line breaks before elements should be preserved. Only works before elements, not inside tags or for text.
    "html.format.preserveNewLines": true,

    // Maximum number of line breaks to be preserved in one chunk. Use 'null' for unlimited.
    "html.format.maxPreserveNewLines": null,

    // Format and indent {{#foo}} and {{/foo}}.
    "html.format.indentHandlebars": false,

    // End with a newline.
    "html.format.endWithNewline": false,

    // List of tags, comma separated, that should have an extra newline before them. 'null' defaults to "head, body, /html".
    "html.format.extraLiners": "head, body, /html",

    // Configures if the built-in HTML language support suggests Angular V1 tags and properties.
    "html.suggest.angular1": true,

    // Configures if the built-in HTML language support suggests Ionic tags, properties and values.
    "html.suggest.ionic": true,

    // Configures if the built-in HTML language support suggests HTML5 tags, properties and values.
    "html.suggest.html5": true,

// JSON

    // Associate schemas to JSON files in the current project
    "json.schemas": [],

// Markdown

    // A list of URLs or local paths to CSS style sheets to use from the markdown preview. Relative paths are interpreted relative to the folder open in the explorer. If there is no open folder, they are interpreted relative to the location of the markdown file. All '\' need to be written as '\\'.
    "markdown.styles": [],

// PHP

    // Whether php validation is enabled or not.
    "php.validate.enable": true,

    // Points to the php executable.
    "php.validate.executablePath": null,

    // Whether the linter is run on save or on type.
    "php.validate.run": "onSave",

// TypeScript

    // Specifies the folder path containing the tsserver and lib*.d.ts files to use.
    "typescript.tsdk": null,

    // Enables tracing of messages send to the TS server
    "typescript.tsserver.trace": "off",

    // Enables experimental auto build. Requires 1.9 dev or 2.x tsserver version and a restart of VS Code after changing it.
    "typescript.tsserver.experimentalAutoBuild": false,

    // Complete functions with their parameter signature.
    "typescript.useCodeSnippetsOnMethodSuggest": false,

    // Enable / disable TypeScript validation
    "typescript.validate.enable": true,

    // Defines space handling after a comma delimiter
    "typescript.format.insertSpaceAfterCommaDelimiter": true,

    //  Defines space handling after a semicolon in a for statement
    "typescript.format.insertSpaceAfterSemicolonInForStatements": true,

    // Defines space handling after a binary operator
    "typescript.format.insertSpaceBeforeAndAfterBinaryOperators": true,

    // Defines space handling after keywords in control flow statement
    "typescript.format.insertSpaceAfterKeywordsInControlFlowStatements": true,

    // Defines space handling after function keyword for anonymous functions
    "typescript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": true,

    // Defines space handling after opening and before closing non empty parenthesis
    "typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false,

    // Defines space handling after opening and before closing non empty brackets
    "typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false,

    // Defines whether an open brace is put onto a new line for functions or not
    "typescript.format.placeOpenBraceOnNewLineForFunctions": false,

    // Defines whether an open brace is put onto a new line for control blocks or not
    "typescript.format.placeOpenBraceOnNewLineForControlBlocks": false,

    // Enable / disable JavaScript validation
    "javascript.validate.enable": true,

    // Defines space handling after a comma delimiter
    "javascript.format.insertSpaceAfterCommaDelimiter": true,

    //  Defines space handling after a semicolon in a for statement
    "javascript.format.insertSpaceAfterSemicolonInForStatements": true,

    // Defines space handling after a binary operator
    "javascript.format.insertSpaceBeforeAndAfterBinaryOperators": true,

    // Defines space handling after keywords in control flow statement
    "javascript.format.insertSpaceAfterKeywordsInControlFlowStatements": true,

    // Defines space handling after function keyword for anonymous functions
    "javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": true,

    // Defines space handling after opening and before closing non empty parenthesis
    "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false,

    // Defines space handling after opening and before closing non empty brackets
    "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false,

    // Defines whether an open brace is put onto a new line for functions or not
    "javascript.format.placeOpenBraceOnNewLineForFunctions": false,

    // Defines whether an open brace is put onto a new line for control blocks or not
    "javascript.format.placeOpenBraceOnNewLineForControlBlocks": false,

// Extensions

    // Automatically update extensions
    "extensions.autoUpdate": false,

// External Terminal

    // Customizes which terminal to run on Windows.
    "terminal.external.windowsExec": "%COMSPEC%",

    // Customizes which terminal application to run on OS X.
    "terminal.external.osxExec": "Terminal.app",

    // Customizes which terminal to run on Linux.
    "terminal.external.linuxExec": "xterm",

// Integrated Terminal

    // The path of the shell that the terminal uses on Linux.
    "terminal.integrated.shell.linux": "sh",

    // The command line arguments to use when on the Linux terminal.
    "terminal.integrated.shellArgs.linux": [],

    // The path of the shell that the terminal uses on OS X.
    "terminal.integrated.shell.osx": "sh",

    // The command line arguments to use when on the OS X terminal.
    "terminal.integrated.shellArgs.osx": [],

    // The path of the shell that the terminal uses on Windows. When using shells shipped with Windows (cmd, PowerShell or Bash on Ubuntu), prefer C:\Windows\sysnative over C:\Windows\System32 to use the 64-bit versions.
    "terminal.integrated.shell.windows": "C:\\WINDOWS\\system32\\cmd.exe",

    // Controls the font family of the terminal, this defaults to editor.fontFamily's value.
    "terminal.integrated.fontFamily": "",

    // Controls whether font ligatures are enabled in the terminal.
    "terminal.integrated.fontLigatures": false,

    // Controls the font size in pixels of the terminal, this defaults to editor.fontSize's value.
    "terminal.integrated.fontSize": 0,

    // Controls the line height of the terminal, this number is multipled by the terminal font size to get the actual line-height in pixels.
    "terminal.integrated.lineHeight": 1.2,

    // Controls whether the terminal cursor blinks.
    "terminal.integrated.cursorBlinking": false,

    // Controls whether locale variables are set at startup of the terminal, this defaults to true on OS X, false on other platforms.
    "terminal.integrated.setLocaleVariables": false,

    // A set of command IDs whose keybindings will not be sent to the shell and instead always be handled by Code. This allows the use of keybindings that would normally be consumed by the shell to act the same as when the terminal is not focused, for example ctrl+p to launch Quick Open.
    "terminal.integrated.commandsToSkipShell": [
        "editor.action.toggleTabFocusMode",
        "workbench.action.quickOpen",
        "workbench.action.showCommands",
        "workbench.action.terminal.copySelection",
        "workbench.action.terminal.focus",
        "workbench.action.terminal.focusNext",
        "workbench.action.terminal.focusPrevious",
        "workbench.action.terminal.kill",
        "workbench.action.terminal.new",
        "workbench.action.terminal.paste",
        "workbench.action.terminal.runSelectedText",
        "workbench.action.terminal.scrollDown",
        "workbench.action.terminal.scrollUp",
        "workbench.action.terminal.toggleTerminal"
    ],

// Problems View

    // Controls if Problems view should automatically reveal files when opening them
    "problems.autoReveal": true,

// Telemetry

    // Enable usage data and errors to be sent to Microsoft.
    "telemetry.enableTelemetry": true,

    // Enable crash reports to be sent to Microsoft.
    // This option requires restart to take effect.
    "telemetry.enableCrashReporter": true,

// vscode-icons configuration

    // If set to true folder icons won't be shown.
    "vsicons.hideFolders": false,

    // If set to true custom folder icons won't be shown.
    "vsicons.hideCustomFolderIcons": false,

    // If set to true tab icons won't be shown.
    "vsicons.hideIconsInTabs": false,

    // If set to true icons won't be shown in 'open editors' section.
    "vsicons.hideIconsEditors": false,

    // If set to true file and folder associations will be honored.
    "vsicons.useFileAssociations": false,

    // This is an associative array that must be filled with arrays whose first member is a regular expression matching the extension that you want to associate and the second member is the name of the extension whose icon you want to use.
    "vsicons.associations": [],

    // If set you will change the location of the icons.zip file that vscode-icons uses in order to get the icons into your machine. You can use a well-formed URI or a local path.
    "vsicons.icons": "",

// Beautify config

    // Automatically beautify files on save. Set to true to run for JSON, javascript, html, css and sass. Use array to set indiviaul types to beautify: ["js", "json", "html", "css", "sass"]
    "beautify.onSave": false,

    // Set path/file matchers to ignore when attempting to beautify on save. Uses glob path matching.
    "beautify.onSaveIgnore": [
        "**/*+(.|_|-)min.*"
    ],

    // File extensions that can be beautified as javascript or JSON.
    "beautify.JSfiles": [
        "js",
        "json",
        "jsbeautifyrc",
        "jshintrc"
    ],

    // File extensions that can be beautified as HTML.
    "beautify.HTMLfiles": [
        "htm",
        "html"
    ],

    // File extensions that can be beautified as CSS.
    "beautify.CSSfiles": [
        "css",
        "scss"
    ],

// npm

    // Run npm commands in a terminal, otherwise shows the output in the output panel
    "npm.runInTerminal": true,

    // Look for 'package.json' files in these directories
    "npm.includeDirectories": [],

    // Look for 'package.json' in the root directory of the workspace
    "npm.useRootDirectory": true,

    // Run npm commands with the `--silent` option
    "npm.runSilent": false,

// Color Picker configuration

    // Name of preset package that switches UI and features. Allowed values are 'default', 'largePalette', 'simple', 'compact', 'compact2' or 'byPalette'.
    "colorHelper.pickerForm": "default",

    // Path to directory that contains your color palettes.
    "colorHelper.storeDir": "",

    // Stands by for a quick response. It stays in memory even after it is closed until it is unloaded.
    "colorHelper.resident": false

}

There are no user defined workspace settings.

Default Workspace Settings are below:

// Overwrite settings by placing them into your settings file.
// See http://go.microsoft.com/fwlink/?LinkId=808995 for the most commonly used settings.
{

// Editor

    // Controls the font family.
    "editor.fontFamily": "Consolas, 'Courier New', monospace",

    // Controls the font weight.
    "editor.fontWeight": "normal",

    // Controls the font size in pixels.
    "editor.fontSize": 14,

    // Controls the line height. Use 0 to compute the lineHeight from the fontSize.
    "editor.lineHeight": 0,

    // Controls visibility of line numbers
    "editor.lineNumbers": true,

    // Controls visibility of the glyph margin
    "editor.glyphMargin": false,

    // Columns at which to show vertical rulers
    "editor.rulers": [],

    // Characters that will be used as word separators when doing word related navigations or operations
    "editor.wordSeparators": "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?",

    // The number of spaces a tab is equal to. This setting is overriden based on the file contents when `editor.detectIndentation` is on.
    "editor.tabSize": 4,

    // Insert spaces when pressing Tab. This setting is overriden based on the file contents when `editor.detectIndentation` is on.
    "editor.insertSpaces": true,

    // When opening a file, `editor.tabSize` and `editor.insertSpaces` will be detected based on the file contents.
    "editor.detectIndentation": true,

    // Controls if selections have rounded corners
    "editor.roundedSelection": true,

    // Controls if the editor will scroll beyond the last line
    "editor.scrollBeyondLastLine": true,

    // Controls after how many characters the editor will wrap to the next line. Setting this to 0 turns on viewport width wrapping (word wrapping). Setting this to -1 forces the editor to never wrap.
    "editor.wrappingColumn": 300,

    // Controls if lines should wrap. The lines will wrap at min(editor.wrappingColumn, viewportWidthInColumns).
    "editor.wordWrap": false,

    // Controls the indentation of wrapped lines. Can be one of 'none', 'same' or 'indent'.
    "editor.wrappingIndent": "same",

    // A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events
    "editor.mouseWheelScrollSensitivity": 1,

    // Controls if quick suggestions should show up or not while typing
    "editor.quickSuggestions": true,

    // Controls the delay in ms after which quick suggestions will show up
    "editor.quickSuggestionsDelay": 10,

    // Enables parameter hints
    "editor.parameterHints": true,

    // Controls if the editor should automatically close brackets after opening them
    "editor.autoClosingBrackets": true,

    // Controls if the editor should automatically format the line after typing
    "editor.formatOnType": false,

    // Controls if suggestions should automatically show up when typing trigger characters
    "editor.suggestOnTriggerCharacters": true,

    // Controls if suggestions should be accepted 'Enter' - in addition to 'Tab'. Helps to avoid ambiguity between inserting new lines or accepting suggestions.
    "editor.acceptSuggestionOnEnter": true,

    // Controls whether snippets are shown with other suggestions and how they are sorted.
    "editor.snippetSuggestions": "bottom",

    // Enable word based suggestions.
    "editor.wordBasedSuggestions": true,

    // Insert snippets when their prefix matches. Works best when 'quickSuggestions' aren't enabled.
    "editor.tabCompletion": false,

    // Controls whether the editor should highlight similar matches to the selection
    "editor.selectionHighlight": true,

    // Controls the number of decorations that can show up at the same position in the overview ruler
    "editor.overviewRulerLanes": 3,

    // Control the cursor animation style, possible values are 'blink', 'smooth', 'phase', 'expand' and 'solid'
    "editor.cursorBlinking": "blink",

    // Zoom the font of the editor when using mouse wheel and holding Ctrl
    "editor.mouseWheelZoom": false,

    // Controls the cursor style, accepted values are 'block', 'line' and 'underline'
    "editor.cursorStyle": "line",

    // Enables font ligatures
    "editor.fontLigatures": false,

    // Controls if the cursor should be hidden in the overview ruler.
    "editor.hideCursorInOverviewRuler": false,

    // Controls whether the editor should render whitespace characters
    "editor.renderWhitespace": false,

    // Controls whether the editor should render control characters
    "editor.renderControlCharacters": false,

    // Controls whether the editor should render indent guides
    "editor.renderIndentGuides": false,

    // Controls whether the editor should render the current line highlight
    "editor.renderLineHighlight": true,

    // Controls if the editor shows code lenses
    "editor.codeLens": true,

    // Controls whether the editor has code folding enabled
    "editor.folding": true,

    // Inserting and deleting whitespace follows tab stops
    "editor.useTabStops": true,

    // Remove trailing auto inserted whitespace
    "editor.trimAutoWhitespace": true,

    // Keep peek editors open even when double clicking their content or when hitting Escape.
    "editor.stablePeek": false,

    // Controls if the diff editor shows the diff side by side or inline
    "diffEditor.renderSideBySide": true,

    // Controls if the diff editor shows changes in leading or trailing whitespace as diffs
    "diffEditor.ignoreTrimWhitespace": true,

// Emmet

    // When enabled, emmet abbreviations are expanded when pressing TAB.
    "emmet.triggerExpansionOnTab": true,

    // Preferences used to modify behavior of some actions and resolvers of Emmet.
    "emmet.preferences": {},

    // Define profile for specified syntax or use your own profile with specific rules.
    "emmet.syntaxProfiles": {},

    // An array of languages where emmet abbreviations should not be expanded.
    "emmet.excludeLanguages": [],

// Workbench

    // Controls if opened editors should show in tabs or not.
    "workbench.editor.showTabs": true,

    // Controls if opened editors show as preview. Preview editors are reused until they are kept (e.g. via double click or editing).
    "workbench.editor.enablePreview": true,

    // Controls if opened editors from Quick Open show as preview. Preview editors are reused until they are kept (e.g. via double click or editing).
    "workbench.editor.enablePreviewFromQuickOpen": true,

    // Controls where editors open. Select 'left' or 'right' to open editors to the left or right of the current active one. Select 'first' or 'last' to open editors independently from the currently active one.
    "workbench.editor.openPositioning": "right",

    // Controls if Quick Open should close automatically once it loses focus.
    "workbench.quickOpen.closeOnFocusLost": true,

    // Controls if opening settings also opens an editor showing all default settings.
    "workbench.settings.openDefaultSettings": true,

// Window

    // When enabled, will open files in a new window instead of reusing an existing instance.
    "window.openFilesInNewWindow": true,

    // Controls how folders are being reopened after a restart. Select 'none' to never reopen a folder, 'one' to reopen the last folder you worked on or 'all' to reopen all folders of your last session.
    "window.reopenFolders": "one",

    // Controls if a window should restore to full screen mode if it was exited in full screen mode.
    "window.restoreFullscreen": false,

    // Adjust the zoom level of the window. The original size is 0 and each increment above (e.g. 1) or below (e.g. -1) represents zooming 20% larger or smaller. You can also enter decimals to adjust the zoom level with a finer granularity.
    "window.zoomLevel": 0,

// Files

    // Configure glob patterns for excluding files and folders.
    "files.exclude": {
        "**/.git": true,
        "**/.svn": true,
        "**/.hg": true,
        "**/.DS_Store": true
    },

    // Configure file associations to languages (e.g. "*.extension": "html"). These have precedence over the default associations of the languages installed.
    "files.associations": {},

    // The default character set encoding to use when reading and writing files.
    "files.encoding": "utf8",

    // The default end of line character.
    "files.eol": "\r\n",

    // When enabled, will trim trailing whitespace when you save a file.
    "files.trimTrailingWhitespace": false,

    // Controls auto save of dirty files. Accepted values:  "off", "afterDelay", "onFocusChange" (editor loses focus), "onWindowChange" (window loses focus). If set to "afterDelay", you can configure the delay in "files.autoSaveDelay".
    "files.autoSave": "off",

    // Controls the delay in ms after which a dirty file is saved automatically. Only applies when "files.autoSave" is set to "afterDelay"
    "files.autoSaveDelay": 1000,

    // Configure glob patterns of file paths to exclude from file watching. Changing this setting requires a restart. When you experience Code consuming lots of cpu time on startup, you can exclude large folders to reduce the initial load.
    "files.watcherExclude": {
        "**/.git/objects/**": true
    },

// File Explorer

    // Number of editors shown in the Open Editors pane. Set it to 0 to hide the pane.
    "explorer.openEditors.visible": 9,

    // Controls if the height of the open editors section should adapt dynamically to the number of elements or not.
    "explorer.openEditors.dynamicHeight": true,

    // Controls if the explorer should automatically reveal files when opening them.
    "explorer.autoReveal": true,

    // Controls if the explorer should allow to move files and folders via drag and drop.
    "explorer.enableDragAndDrop": true,

// Search

    // Configure glob patterns for excluding files and folders in searches. Inherits all glob patterns from the files.exclude setting.
    "search.exclude": {
        "**/node_modules": true,
        "**/bower_components": true
    },

    // Configure to include results from a global symbol search in the file results for Quick Open.
    "search.quickOpen.includeSymbols": false,

// Git

    // Is git enabled
    "git.enabled": true,

    // Path to the git executable
    "git.path": null,

    // Whether auto refreshing is enabled
    "git.autorefresh": true,

    // Whether auto fetching is enabled.
    "git.autofetch": true,

    // Whether long commit messages should be warned about.
    "git.enableLongCommitWarning": true,

    // Always allow large repositories to be managed by Code.
    "git.allowLargeRepositories": false,

    // Confirm before synchronizing git repositories.
    "git.confirmSync": false,

    // Controls the git badge counter.
    "git.countBadge": "all",

// HTTP

    // The proxy setting to use. If not set will be taken from the http_proxy and https_proxy environment variables
    "http.proxy": "",

    // Whether the proxy server certificate should be verified against the list of supplied CAs.
    "http.proxyStrictSSL": true,

    // The value to send as the 'Proxy-Authorization' header for every network request.
    "http.proxyAuthorization": null,

// Update

    // Configure whether you receive automatic updates from an update channel. Requires a restart after change.
    "update.channel": "default",

// CSS

    // Controls CSS validation and problem severities.

    // Enables or disables all validations
    "css.validate": true,

    // When using a vendor-specific prefix make sure to also include all other vendor-specific properties
    "css.lint.compatibleVendorPrefixes": "ignore",

    // When using a vendor-specific prefix also include the standard property
    "css.lint.vendorPrefix": "warning",

    // Do not use duplicate style definitions
    "css.lint.duplicateProperties": "ignore",

    // Do not use empty rulesets
    "css.lint.emptyRules": "warning",

    // Import statements do not load in parallel
    "css.lint.importStatement": "ignore",

    // Do not use width or height when using padding or border
    "css.lint.boxModel": "ignore",

    // The universal selector (*) is known to be slow
    "css.lint.universalSelector": "ignore",

    // No unit for zero needed
    "css.lint.zeroUnits": "ignore",

    // @font-face rule must define 'src' and 'font-family' properties
    "css.lint.fontFaceProperties": "warning",

    // Hex colors must consist of three or six hex numbers
    "css.lint.hexColorLength": "error",

    // Invalid number of parameters
    "css.lint.argumentsInColorFunction": "error",

    // Unknown property.
    "css.lint.unknownProperties": "warning",

    // IE hacks are only necessary when supporting IE7 and older
    "css.lint.ieHack": "ignore",

    // Unknown vendor specific property.
    "css.lint.unknownVendorSpecificProperties": "ignore",

    // Property is ignored due to the display. E.g. with 'display: inline', the width, height, margin-top, margin-bottom, and float properties have no effect
    "css.lint.propertyIgnoredDueToDisplay": "warning",

    // Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored.
    "css.lint.important": "ignore",

    // Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes.
    "css.lint.float": "ignore",

    // Selectors should not contain IDs because these rules are too tightly coupled with the HTML.
    "css.lint.idSelector": "ignore",

// SCSS (Sass)

    // Controls SCSS validation and problem severities.

    // Enables or disables all validations
    "scss.validate": true,

    // When using a vendor-specific prefix make sure to also include all other vendor-specific properties
    "scss.lint.compatibleVendorPrefixes": "ignore",

    // When using a vendor-specific prefix also include the standard property
    "scss.lint.vendorPrefix": "warning",

    // Do not use duplicate style definitions
    "scss.lint.duplicateProperties": "ignore",

    // Do not use empty rulesets
    "scss.lint.emptyRules": "warning",

    // Import statements do not load in parallel
    "scss.lint.importStatement": "ignore",

    // Do not use width or height when using padding or border
    "scss.lint.boxModel": "ignore",

    // The universal selector (*) is known to be slow
    "scss.lint.universalSelector": "ignore",

    // No unit for zero needed
    "scss.lint.zeroUnits": "ignore",

    // @font-face rule must define 'src' and 'font-family' properties
    "scss.lint.fontFaceProperties": "warning",

    // Hex colors must consist of three or six hex numbers
    "scss.lint.hexColorLength": "error",

    // Invalid number of parameters
    "scss.lint.argumentsInColorFunction": "error",

    // Unknown property.
    "scss.lint.unknownProperties": "warning",

    // IE hacks are only necessary when supporting IE7 and older
    "scss.lint.ieHack": "ignore",

    // Unknown vendor specific property.
    "scss.lint.unknownVendorSpecificProperties": "ignore",

    // Property is ignored due to the display. E.g. with 'display: inline', the width, height, margin-top, margin-bottom, and float properties have no effect
    "scss.lint.propertyIgnoredDueToDisplay": "warning",

    // Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored.
    "scss.lint.important": "ignore",

    // Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes.
    "scss.lint.float": "ignore",

    // Selectors should not contain IDs because these rules are too tightly coupled with the HTML.
    "scss.lint.idSelector": "ignore",

// LESS

    // Controls LESS validation and problem severities.

    // Enables or disables all validations
    "less.validate": true,

    // When using a vendor-specific prefix make sure to also include all other vendor-specific properties
    "less.lint.compatibleVendorPrefixes": "ignore",

    // When using a vendor-specific prefix also include the standard property
    "less.lint.vendorPrefix": "warning",

    // Do not use duplicate style definitions
    "less.lint.duplicateProperties": "ignore",

    // Do not use empty rulesets
    "less.lint.emptyRules": "warning",

    // Import statements do not load in parallel
    "less.lint.importStatement": "ignore",

    // Do not use width or height when using padding or border
    "less.lint.boxModel": "ignore",

    // The universal selector (*) is known to be slow
    "less.lint.universalSelector": "ignore",

    // No unit for zero needed
    "less.lint.zeroUnits": "ignore",

    // @font-face rule must define 'src' and 'font-family' properties
    "less.lint.fontFaceProperties": "warning",

    // Hex colors must consist of three or six hex numbers
    "less.lint.hexColorLength": "error",

    // Invalid number of parameters
    "less.lint.argumentsInColorFunction": "error",

    // Unknown property.
    "less.lint.unknownProperties": "warning",

    // IE hacks are only necessary when supporting IE7 and older
    "less.lint.ieHack": "ignore",

    // Unknown vendor specific property.
    "less.lint.unknownVendorSpecificProperties": "ignore",

    // Property is ignored due to the display. E.g. with 'display: inline', the width, height, margin-top, margin-bottom, and float properties have no effect
    "less.lint.propertyIgnoredDueToDisplay": "warning",

    // Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored.
    "less.lint.important": "ignore",

    // Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes.
    "less.lint.float": "ignore",

    // Selectors should not contain IDs because these rules are too tightly coupled with the HTML.
    "less.lint.idSelector": "ignore",

// HTML

    // Maximum amount of characters per line (0 = disable).
    "html.format.wrapLineLength": 120,

    // List of tags, comma separated, that shouldn't be reformatted. 'null' defaults to all tags listed at https://www.w3.org/TR/html5/dom.html#phrasing-content.
    "html.format.unformatted": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, script, select, small, span, strong, sub, sup, textarea, tt, var",

    // Indent <head> and <body> sections.
    "html.format.indentInnerHtml": false,

    // Whether existing line breaks before elements should be preserved. Only works before elements, not inside tags or for text.
    "html.format.preserveNewLines": true,

    // Maximum number of line breaks to be preserved in one chunk. Use 'null' for unlimited.
    "html.format.maxPreserveNewLines": null,

    // Format and indent {{#foo}} and {{/foo}}.
    "html.format.indentHandlebars": false,

    // End with a newline.
    "html.format.endWithNewline": false,

    // List of tags, comma separated, that should have an extra newline before them. 'null' defaults to "head, body, /html".
    "html.format.extraLiners": "head, body, /html",

    // Configures if the built-in HTML language support suggests Angular V1 tags and properties.
    "html.suggest.angular1": true,

    // Configures if the built-in HTML language support suggests Ionic tags, properties and values.
    "html.suggest.ionic": true,

    // Configures if the built-in HTML language support suggests HTML5 tags, properties and values.
    "html.suggest.html5": true,

// JSON

    // Associate schemas to JSON files in the current project
    "json.schemas": [],

// Markdown

    // A list of URLs or local paths to CSS style sheets to use from the markdown preview. Relative paths are interpreted relative to the folder open in the explorer. If there is no open folder, they are interpreted relative to the location of the markdown file. All '\' need to be written as '\\'.
    "markdown.styles": [],

// PHP

    // Whether php validation is enabled or not.
    "php.validate.enable": true,

    // Points to the php executable.
    "php.validate.executablePath": null,

    // Whether the linter is run on save or on type.
    "php.validate.run": "onSave",

// TypeScript

    // Specifies the folder path containing the tsserver and lib*.d.ts files to use.
    "typescript.tsdk": null,

    // Enables tracing of messages send to the TS server
    "typescript.tsserver.trace": "off",

    // Enables experimental auto build. Requires 1.9 dev or 2.x tsserver version and a restart of VS Code after changing it.
    "typescript.tsserver.experimentalAutoBuild": false,

    // Complete functions with their parameter signature.
    "typescript.useCodeSnippetsOnMethodSuggest": false,

    // Enable / disable TypeScript validation
    "typescript.validate.enable": true,

    // Defines space handling after a comma delimiter
    "typescript.format.insertSpaceAfterCommaDelimiter": true,

    //  Defines space handling after a semicolon in a for statement
    "typescript.format.insertSpaceAfterSemicolonInForStatements": true,

    // Defines space handling after a binary operator
    "typescript.format.insertSpaceBeforeAndAfterBinaryOperators": true,

    // Defines space handling after keywords in control flow statement
    "typescript.format.insertSpaceAfterKeywordsInControlFlowStatements": true,

    // Defines space handling after function keyword for anonymous functions
    "typescript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": true,

    // Defines space handling after opening and before closing non empty parenthesis
    "typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false,

    // Defines space handling after opening and before closing non empty brackets
    "typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false,

    // Defines whether an open brace is put onto a new line for functions or not
    "typescript.format.placeOpenBraceOnNewLineForFunctions": false,

    // Defines whether an open brace is put onto a new line for control blocks or not
    "typescript.format.placeOpenBraceOnNewLineForControlBlocks": false,

    // Enable / disable JavaScript validation
    "javascript.validate.enable": true,

    // Defines space handling after a comma delimiter
    "javascript.format.insertSpaceAfterCommaDelimiter": true,

    //  Defines space handling after a semicolon in a for statement
    "javascript.format.insertSpaceAfterSemicolonInForStatements": true,

    // Defines space handling after a binary operator
    "javascript.format.insertSpaceBeforeAndAfterBinaryOperators": true,

    // Defines space handling after keywords in control flow statement
    "javascript.format.insertSpaceAfterKeywordsInControlFlowStatements": true,

    // Defines space handling after function keyword for anonymous functions
    "javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": true,

    // Defines space handling after opening and before closing non empty parenthesis
    "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false,

    // Defines space handling after opening and before closing non empty brackets
    "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false,

    // Defines whether an open brace is put onto a new line for functions or not
    "javascript.format.placeOpenBraceOnNewLineForFunctions": false,

    // Defines whether an open brace is put onto a new line for control blocks or not
    "javascript.format.placeOpenBraceOnNewLineForControlBlocks": false,

// Extensions

    // Automatically update extensions
    "extensions.autoUpdate": false,

// External Terminal

    // Customizes which terminal to run on Windows.
    "terminal.external.windowsExec": "%COMSPEC%",

    // Customizes which terminal application to run on OS X.
    "terminal.external.osxExec": "Terminal.app",

    // Customizes which terminal to run on Linux.
    "terminal.external.linuxExec": "xterm",

// Integrated Terminal

    // The path of the shell that the terminal uses on Linux.
    "terminal.integrated.shell.linux": "sh",

    // The command line arguments to use when on the Linux terminal.
    "terminal.integrated.shellArgs.linux": [],

    // The path of the shell that the terminal uses on OS X.
    "terminal.integrated.shell.osx": "sh",

    // The command line arguments to use when on the OS X terminal.
    "terminal.integrated.shellArgs.osx": [],

    // The path of the shell that the terminal uses on Windows. When using shells shipped with Windows (cmd, PowerShell or Bash on Ubuntu), prefer C:\Windows\sysnative over C:\Windows\System32 to use the 64-bit versions.
    "terminal.integrated.shell.windows": "C:\\WINDOWS\\system32\\cmd.exe",

    // Controls the font family of the terminal, this defaults to editor.fontFamily's value.
    "terminal.integrated.fontFamily": "",

    // Controls whether font ligatures are enabled in the terminal.
    "terminal.integrated.fontLigatures": false,

    // Controls the font size in pixels of the terminal, this defaults to editor.fontSize's value.
    "terminal.integrated.fontSize": 0,

    // Controls the line height of the terminal, this number is multipled by the terminal font size to get the actual line-height in pixels.
    "terminal.integrated.lineHeight": 1.2,

    // Controls whether the terminal cursor blinks.
    "terminal.integrated.cursorBlinking": false,

    // Controls whether locale variables are set at startup of the terminal, this defaults to true on OS X, false on other platforms.
    "terminal.integrated.setLocaleVariables": false,

    // A set of command IDs whose keybindings will not be sent to the shell and instead always be handled by Code. This allows the use of keybindings that would normally be consumed by the shell to act the same as when the terminal is not focused, for example ctrl+p to launch Quick Open.
    "terminal.integrated.commandsToSkipShell": [
        "editor.action.toggleTabFocusMode",
        "workbench.action.quickOpen",
        "workbench.action.showCommands",
        "workbench.action.terminal.copySelection",
        "workbench.action.terminal.focus",
        "workbench.action.terminal.focusNext",
        "workbench.action.terminal.focusPrevious",
        "workbench.action.terminal.kill",
        "workbench.action.terminal.new",
        "workbench.action.terminal.paste",
        "workbench.action.terminal.runSelectedText",
        "workbench.action.terminal.scrollDown",
        "workbench.action.terminal.scrollUp",
        "workbench.action.terminal.toggleTerminal"
    ],

// Problems View

    // Controls if Problems view should automatically reveal files when opening them
    "problems.autoReveal": true,

// Telemetry

    // Enable usage data and errors to be sent to Microsoft.
    "telemetry.enableTelemetry": true,

    // Enable crash reports to be sent to Microsoft.
    // This option requires restart to take effect.
    "telemetry.enableCrashReporter": true,

// vscode-icons configuration

    // If set to true folder icons won't be shown.
    "vsicons.hideFolders": false,

    // If set to true custom folder icons won't be shown.
    "vsicons.hideCustomFolderIcons": false,

    // If set to true tab icons won't be shown.
    "vsicons.hideIconsInTabs": false,

    // If set to true icons won't be shown in 'open editors' section.
    "vsicons.hideIconsEditors": false,

    // If set to true file and folder associations will be honored.
    "vsicons.useFileAssociations": false,

    // This is an associative array that must be filled with arrays whose first member is a regular expression matching the extension that you want to associate and the second member is the name of the extension whose icon you want to use.
    "vsicons.associations": [],

    // If set you will change the location of the icons.zip file that vscode-icons uses in order to get the icons into your machine. You can use a well-formed URI or a local path.
    "vsicons.icons": "",

// Beautify config

    // Automatically beautify files on save. Set to true to run for JSON, javascript, html, css and sass. Use array to set indiviaul types to beautify: ["js", "json", "html", "css", "sass"]
    "beautify.onSave": false,

    // Set path/file matchers to ignore when attempting to beautify on save. Uses glob path matching.
    "beautify.onSaveIgnore": [
        "**/*+(.|_|-)min.*"
    ],

    // File extensions that can be beautified as javascript or JSON.
    "beautify.JSfiles": [
        "js",
        "json",
        "jsbeautifyrc",
        "jshintrc"
    ],

    // File extensions that can be beautified as HTML.
    "beautify.HTMLfiles": [
        "htm",
        "html"
    ],

    // File extensions that can be beautified as CSS.
    "beautify.CSSfiles": [
        "css",
        "scss"
    ],

// npm

    // Run npm commands in a terminal, otherwise shows the output in the output panel
    "npm.runInTerminal": true,

    // Look for 'package.json' files in these directories
    "npm.includeDirectories": [],

    // Look for 'package.json' in the root directory of the workspace
    "npm.useRootDirectory": true,

    // Run npm commands with the `--silent` option
    "npm.runSilent": false,

// Color Picker configuration

    // Name of preset package that switches UI and features. Allowed values are 'default', 'largePalette', 'simple', 'compact', 'compact2' or 'byPalette'.
    "colorHelper.pickerForm": "default",

    // Path to directory that contains your color palettes.
    "colorHelper.storeDir": "",

    // Stands by for a quick response. It stays in memory even after it is closed until it is unloaded.
    "colorHelper.resident": false

}

Extensions below:

image

image

mrmlnc commented 8 years ago

@BrandonRice, This occurs due to HTML Snippets extension.

@bpasero, it's not Emmet. It seems to me, it's related to cursor position bug with "editor.tabCompletion": true (not sure).

"p": {
    "prefix": "p",
    "body": "<p>$1</p>$2",
    "description": "HTML - Defines a paragraph",
    "scope": "text.html"
},

2016-09-13_17-47-25

BrandonRice commented 8 years ago

@mrmlnc - So at this point, should I post the issue to the developer of the extension?

mrmlnc commented 8 years ago

@BrandonRice, Unfortunately, this related to the editor. You can temporarily disable "editor.tabCompletion": true.

BrandonRice commented 8 years ago

@mrmlnc - For now, I'll just disable the "editor.tabCompletion": true. Thanks for looking into this issue.

egamma commented 8 years ago

@mrmlnc thanks for the great analysis. Assigning to @jrieken he owns the snippets/tabCompletion feature.