Installation
- Visual Studio Code
- 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
}
}