// Place your settings in this file to overwrite default and user settings.
{
    // Files
    // Configure glob patterns for excluding files and folders.
    "files.exclude": {
        "**/bower_components": true,
        "**/node_modules": true,
        "**/bin": false,
        "**/.git": true,
        "**/.editorconfig": true,
        "**/.vscode": false,
        "**/.bowerrc": false,
        "**/.gitattributes": true,
        "**/.gitignore": true,
        "**/.gitkeep": false,
        "**/dist": 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": "\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,
        "**/node_modules/**": 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": {
        "**/client/assets/libs": true,
        "**/bower_components": true,
        "**/node_modules": true,
        "**/gulp": true,
        "**/www": true,
        "**/resources": true,
        "**/*.md": true,
        "**/bin": true,
        "**/bower.json": true,
        "**/.git": true,
        "**/.gitignore": true,
        "**/.gitattributes": true,
        "**/.editorconfig": true,
        "**/.vscode": true,
        "**/.bowerrc": true,
        "**/.gitkeep": true
    },
    // Configure to include results from a global symbol search in the file results for Quick Open.
    "search.quickOpen.includeSymbols": false,
    // Editor
    // Controls the font family.
    "editor.fontFamily": "Menlo, Monaco, 'Courier New', monospace",
    // Controls the display of line numbers. Possible values are 'on', 'off', and 'relative'. 'relative' shows the line count from the current cursor position.
    "editor.lineNumbers": "on",
    // Columns at which to show vertical rulers
    "editor.rulers": [
        120
    ],
    // 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": -1,
    // 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",
    // Controls whether copying without a selection copies the current line.
    "editor.emptySelectionClipboard": true,
    // Enable word based suggestions.
    "editor.wordBasedSuggestions": true,
    // Font size for the suggest widget
    "editor.suggestFontSize": 0,
    // Line height for the suggest widget
    "editor.suggestLineHeight": 0,
    // 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 how the editor should render whitespace characters, posibilties are 'none', 'boundary', and 'all'. The 'boundary' option does not render single spaces between words.
    "editor.renderWhitespace": "all",
    // Controls whether the editor should render control characters
    "editor.renderControlCharacters": false,
    // Controls whether the editor should render indent guides
    "editor.renderIndentGuides": true,
    // 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": false,
    // Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.
    "editor.glyphMargin": 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": false,
    // Workbench
    // Controls if opened editors should show in tabs or not.
    "workbench.editor.showTabs": true,
    // Controls if opened editors should show with an icon or not. This requires an icon theme to be enabled as well.
    "workbench.editor.showIcons": 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,
    // Controls the location of the sidebar. It can either show on the left or right of the workbench.
    "workbench.sideBar.location": "left",
    // Controls the visibility of the status bar at the bottom of the workbench.
    "workbench.statusBar.visible": true,
    // Telemetry
    // Enable usage data and errors to be sent to Microsoft.
    "telemetry.enableTelemetry": false,
    // Enable crash reports to be sent to Microsoft.
    // This option requires restart to take effect.
    "telemetry.enableCrashReporter": false,
    // JavaScript
    // Enable/disable JavaScript validation.
    "javascript.validate.enable": false,
    // Control whether eslint is enabled for JavaScript files or not.
    "eslint.enable": true,
    "eslint.options": {
        "root": true,
        "parserOptions": {
            "ecmaVersion": 7,
            "sourceType": "module",
            "ecmaFeatures": {}
        },
        "parser": "babel-eslint",
        "rules": {
            "strict": 0,
            "no-console": 0,
            "indent": [
                2,
                4,
                {
                    "SwitchCase": 1
                }
            ],
            "quotes": [
                2,
                "backtick"
            ],
            "linebreak-style": [
                2,
                "unix"
            ],
            "semi": [
                2,
                "never"
            ]
        },
        "env": {
            "browser": true,
            "node": true,
            "es6": true
        },
        "extends": "eslint:recommended",
        "globals": [
            "Polymer",
            "CONFIG"
        ]
    }
}