Visual Code Setup - odoo-ps/pshk-process GitHub Wiki

Installation

  • Visual Studio Code
    • ES Lint (extensions)
  • Node
    • eslint
      • sudo npm install -g eslint
    • @babel/core
      • sudo npm install -g @babel/core
    • @babel/eslinter-parser
      • sudo npm install -g @babel/eslinter-parser

.bashrc

sv() { source ~/.venv/$1/bin/activate; }
alias py='python3'
export DIR=addons,../enterprise,../design-themes

settings.json (Visual Code Settings)


{
    "python.defaultInterpreterPath": "/usr/bin/python3",
    "workbench.colorTheme": "Solarized Dark",
    "editor.semanticHighlighting.enabled": true,
    "editor.minimap.enabled": false,
    "editor.suggestSelection": "first",
    "python.languageServer": "Pylance",
    "files.trimTrailingWhitespace": true,
    "files.insertFinalNewline": true,
    "python.linting.flake8Args": [
        "--ignore=E501,E301,E302,E128,F401"
    ],
    "files.exclude": {
        "**/__pycache__": true,
        "**/*.pyc": true,
        "**/venv": true,
    },
    "editor.fontFamily": "'Menlo for Powerline', Monaco, 'Droid Sans Mono', monospace, 'Droid Sans Fallback'",
    "workbench.editorAssociations": {
        "*.ipynb": "jupyter-notebook"
    },
    "python.analysis.diagnosticSeverityOverrides": {
        "reportMissingImports": "none",
        "reportMissingModuleSource": "none"
    },
    "[javascript]": {
        "editor.defaultFormatter": "dbaeumer.vscode-eslint",
    },
    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true
      },
    "eslint.validate": ["javascript"],
    "workbench.preferredDarkColorTheme": "Solarized Dark",
    "eslint.format.enable": true,
    "notebook.cellToolbarLocation": {
        "default": "right",
        "jupyter-notebook": "left"
    },
}

.eslintrc.json (put inside root)

{
    "env": {
        "commonjs": true,
        "es6": true
    },
    "parser": "/usr/local/lib/node_modules/@babel/eslint-parser/",
    "parserOptions": {
        "ecmaVersion": 6,
        "sourceType": "module",
        "ecmaFeatures": {
            "jsx": false,
            "modules": true,
            "experimentalObjectRestSpread": true
        },
	"requireConfigFile": false
    },
    "extends": "eslint:recommended",
    "rules": {
        "array-bracket-spacing": ["warn", "never"],
        "brace-style": "warn",
        "camelcase": ["warn", {"properties": "never"}],
        "comma-dangle": ["off"],
        "comma-spacing": ["warn", {"before": false, "after": true}],
        "curly": ["warn"],
        "eol-last": ["error"],
        "eqeqeq": ["warn", "smart"],
        "indent": ["off", 4, {"SwitchCase": 1}],
        "key-spacing": ["warn"],
        "keyword-spacing": ["warn"],
        "linebreak-style": ["error", "unix"],
        "no-console": ["warn", {"allow": ["warn", "error"]}],
        "no-empty": ["warn"],
        "no-multi-spaces": ["warn"],
        "no-redeclare": ["warn"],
        "no-unused-expressions": ["warn"],
        "no-unused-vars": ["warn", {"args": "none"}],
        "no-use-before-define": ["warn", "nofunc"],
        "object-curly-spacing": ["warn", "never"],
        "quotes": ["off", "double"],
        "semi": ["error", "always"],
        "semi-spacing": ["warn", {"before": false, "after": true}],
        "space-before-blocks": ["warn"],
        "space-before-function-paren": ["warn", {"anonymous": "always", "named": "never"}],
        "space-infix-ops": ["warn"],
        "space-in-parens": ["warn", "never"]
    },
    "globals": {
        "openerp": true, "odoo": true, "CKEDITOR": true, "we3": true,

        "$": false, "jQuery": false, "_": false, "google": false, "window": false,
        "setTimeout": false, "clearTimeout": false, "document": false, "console": false,
        "QUnit": false, "moment": false, "FileReader": false, "nv": false, "d3": false,
        "ace": false, "Option": false, "py": false, "XMLHttpRequest": false,
        "setInterval": false, "clearInterval": false, "Image": false, "jstz": false,
        "ZeroClipboard": false, "sessionStorage": false, "Node": false, "history": false,
        "gapi": false, "Event": false, "Gravitec": false, "navigator": false,
        "OneSignal": false, "PDFJS": false, "ClipboardJS": false, "PDFSlidesViewer": false,
        "MutationObserver": false, "Element": false, "URL": false
    }
}