MiguelCastillo / Brackets-InteractiveLinter

Interactive linting for Brackets
Other
119 stars 26 forks source link

Update ESLint #176

Open rvarbanov opened 8 years ago

rvarbanov commented 8 years ago

I know that it is not a long-term solution, but would you please update ESLint so I can keep using your extension. I like your extension and would hate to have to uninstall it.

If you can give me a direction to how to get that updated and I will submit a PR if you do not have time.

MiguelCastillo commented 8 years ago

@rvarbanov I will take a look this weekend. If you want to try to update it yourself in the meantime, all I do is build eslint myself with their browserify build script and place in here in your local interactive linter install.

sorry I have not had time to make much progress in this extension in a while. :/

rvarbanov commented 8 years ago

@MiguelCastillo you do not need to apologise, I understand!

I will try to build ESLint later today and let you know how that went :)

MiguelCastillo commented 8 years ago

To be honest, i need to rethink some of this stuff. Current I abstract out eslint into my own container... Which causes issues like loading up rules from modules. This is one reason I have been putting this whole thing off. But it seems like it is time to roll up my sleeves and do it.

rvarbanov commented 8 years ago

Yeah, it seems like not an easy task, but I believe in you 😃

rvarbanov commented 8 years ago

@MiguelCastillo I built a new eslint.js file and updated the extension with it. It worked for one of my projects, but I am getting an error on another.

Error processing linter settings
SyntaxError: Unexpected token S

Is there a way to get a more detailed error message?

MiguelCastillo commented 8 years ago

I don't provide that at the moment... The error is logged here https://github.com/MiguelCastillo/Brackets-InteractiveLinter/blob/master/linterSettings.js#L89

Try putting a break in there if you really want to debug it.

Can you paste your config file here?

rvarbanov commented 8 years ago
{
    "root": true,
    "env": {
        "es6": true,
        "browser": true,
        "node": true
    },
    "extends": "eslint:recommended",
    "rules": {
        "accessor-pairs": "error",
        "array-bracket-spacing": "error",
        "array-callback-return": "error",
        "arrow-body-style": "off",
        "arrow-parens": "off",
        "arrow-spacing": [
            "error",
            {
                "after": true,
                "before": true
            }
        ],
        "block-scoped-var": "error",
        "block-spacing": [
            "error",
            "always"
        ],
        "brace-style": [
            "error",
            "1tbs",
            {
                "allowSingleLine": true
            }
        ],
        "callback-return": "error",
        "camelcase": ["error", {"properties": "never"}],
        "comma-spacing": [
            "error",
            {
                "after": true,
                "before": false
            }
        ],
        "comma-style": [
            "error",
            "last"
        ],
        "complexity": "error",
        "computed-property-spacing": [
            "error",
            "never"
        ],
        "consistent-return": "off",
        "consistent-this": ["error", "vm"],
        "curly": "error",
        "default-case": "error",
        "dot-location": ["error", "property"],
        "dot-notation": [
            "error",
            {
                "allowKeywords": true
            }
        ],
        "eol-last": "error",
        "eqeqeq": "error",
        "func-names": "off",
        "func-style": "off",
        "generator-star-spacing": "error",
        "global-require": "off",
        "guard-for-in": "error",
        "handle-callback-err": "off",
        "id-blacklist": "error",
        "id-length": "off",
        "id-match": "error",
        "indent": ["error", "tab", {SwitchCase: 1}],
        "init-declarations": "off",
        "jsx-quotes": "error",
        "key-spacing": "error",
        "keyword-spacing": [
            "error",
            {
                "after": true,
                "before": true
            }
        ],
        "linebreak-style": [
            "error",
            "unix"
        ],
        "lines-around-comment": "off",
        "max-depth": "error",
        "max-len": "off",
        "max-nested-callbacks": "error",
        "max-params": "off",
        "max-statements": "off",
        "max-statements-per-line": "error",
        "new-cap": "error",
        "new-parens": "error",
        "newline-after-var": "off",
        "newline-before-return": "off",
        "newline-per-chained-call": "off",
        "no-alert": "error",
        "no-array-constructor": "error",
        "no-bitwise": "error",
        "no-caller": "error",
        "no-catch-shadow": "error",
        "no-confusing-arrow": "off",
        "no-continue": "error",
        "no-div-regex": "error",
        "no-duplicate-imports": "error",
        "no-else-return": "off",
        "no-empty-function": "error",
        "no-eq-null": "error",
        "no-eval": "error",
        "no-extend-native": "error",
        "no-extra-bind": "error",
        "no-extra-label": "error",
        "no-extra-parens": "off",
        "no-floating-decimal": "error",
        "no-implicit-coercion": ["error", {"boolean": false}],
        "no-implicit-globals": "error",
        "no-implied-eval": "error",
        "no-inline-comments": "off",
        "no-invalid-this": "off",
        "no-iterator": "error",
        "no-label-var": "error",
        "no-labels": "error",
        "no-lone-blocks": "error",
        "no-lonely-if": "error",
        "no-loop-func": "error",
        "no-magic-numbers": "off",
        "no-mixed-requires": "error",
        "no-multi-spaces": "error",
        "no-multi-str": "error",
        "no-multiple-empty-lines": "error",
        "no-native-reassign": "error",
        "no-negated-condition": "off",
        "no-nested-ternary": "off",
        "no-new": "error",
        "no-new-func": "error",
        "no-new-object": "error",
        "no-new-require": "error",
        "no-new-wrappers": "error",
        "no-octal-escape": "error",
        "no-param-reassign": "off",
        "no-path-concat": "error",
        "no-plusplus": "error",
        "no-process-env": "off",
        "no-process-exit": "error",
        "no-proto": "error",
        "no-restricted-globals": "error",
        "no-restricted-imports": "error",
        "no-restricted-modules": "error",
        "no-restricted-syntax": "error",
        "no-return-assign": "error",
        "no-script-url": "error",
        "no-self-compare": "error",
        "no-sequences": "error",
        "no-shadow": "off",
        "no-shadow-restricted-names": "error",
        "no-spaced-func": "error",
        "no-sync": "error",
        "no-ternary": "off",
        "no-throw-literal": "off",
        "no-trailing-spaces": "error",
        "no-undef-init": "error",
        "no-undefined": "off",
        "no-underscore-dangle": "off",
        "no-unmodified-loop-condition": "error",
        "no-unneeded-ternary": "error",
        "no-unused-expressions": ["error", { "allowShortCircuit": true, "allowTernary": true }],
        "no-use-before-define": "error",
        "no-useless-call": "error",
        "no-useless-concat": "error",
        "no-useless-constructor": "error",
        "no-useless-escape": "error",
        "no-var": "off",
        "no-void": "error",
        "no-warning-comments": "off",
        "no-whitespace-before-property": "error",
        "no-with": "error",
        "object-curly-spacing": "off",
        "object-shorthand": "off",
        "one-var": "off",
        "one-var-declaration-per-line": "error",
        "operator-assignment": "error",
        "operator-linebreak": ["error", "after"],
        "padded-blocks": "off",
        "prefer-arrow-callback": "off",
        "prefer-const": "off",
        "prefer-reflect": "off",
        "prefer-rest-params": "error",
        "prefer-spread": "error",
        "prefer-template": "off",
        "quote-props": "off",
        "quotes": [
            "error",
            "single",
            { "allowTemplateLiterals": true }
        ],
        "radix": [
            "error",
            "always"
        ],
        "require-jsdoc": "off",
        "require-yield": "error",
        "semi": "error",
        "semi-spacing": "error",
        "sort-imports": "error",
        "sort-vars": "off",
        "space-before-blocks": "error",
        "space-before-function-paren": "error",
        "space-in-parens": [
            "error",
            "never"
        ],
        "space-infix-ops": "error",
        "space-unary-ops": "error",
        "spaced-comment": "error",
        "strict": "error",
        "template-curly-spacing": [
            "error",
            "never"
        ],
        "valid-jsdoc": ["error", {"requireReturn": false}],
        "vars-on-top": "off",
        "wrap-iife": "error",
        "wrap-regex": "error",
        "yield-star-spacing": "error",
        "yoda": [
            "error",
            "never",
            {exceptRange: true}
        ]
    }
}
MiguelCastillo commented 8 years ago

Oh the issues is highlighted by the github editor in red. .eslintrc files are proper JSON.

rvarbanov commented 8 years ago

Ah, dah.... :)

I translated the file to JSON from JS with find and replace and did not notice that there were errors in it...

Thank you for pointing that out.

josegoncalveswho commented 8 years ago

Great job @rvarbanov and @MiguelCastillo. but when will we see this available on the next relase?

One of the problems with Brackets is that developers are relying on it, and then have to spend lots of time contributing to it, and debugging it. I really love Brackets and Interactive Linter. But something like the eslinter not being up-to-date is really bad. I was having trouble with it for quite some time, and only now did I realise (with your help) that it was outdated.

Maybe we could, at least, find a way to highlight these issues. console.warn at least, that a new version of the linter should be compiled.

MiguelCastillo commented 8 years ago

@josegoncalveswho I agree. I am going to publish shortly. I am going to check if we are out of date in case we should do a last minute update.

josegoncalveswho commented 8 years ago

Thanks, really appreciate the investment in time. If there is anything you need done, I'm glad to help, with whatever free time I can find. I made some contributions to zaggino's bracket git extension, and am happy to contribute in any way I can.

MiguelCastillo commented 8 years ago

well - that's wonderful to know. I can always use a hand. Especially for things that are of interest or somewhat blocking you you are most welcome to submit PRs for. I want to verify if the version of eslint we have in master is the latest. If it is, then great. If its not and you have time to submit a PR, that would be great. Also, adding a small passage about the new requirements for naming conventions of eslint config files. It is now eslintrc.json. That change is one reason I haven't published to the plugin repository. Would you be interested in either of those things?