From 8bb29675eb41f80ad7247db6d731d821f1728b6c Mon Sep 17 00:00:00 2001 From: Thanh Tran Date: Sun, 30 Aug 2015 22:24:37 +0700 Subject: [PATCH 1/7] Update FuzzyFilePath with latest config and patch with enhancement for require imports --- .../User/FuzzyFilePath.sublime-settings | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/sublimetext/Packages/User/FuzzyFilePath.sublime-settings b/sublimetext/Packages/User/FuzzyFilePath.sublime-settings index 469cbba..696fceb 100644 --- a/sublimetext/Packages/User/FuzzyFilePath.sublime-settings +++ b/sublimetext/Packages/User/FuzzyFilePath.sublime-settings @@ -1,4 +1,23 @@ { + // set project_directory relative to sublime project directory + "project_directory": "", + + // base directory for paths relative to project_directory. Used if scope-trigger contains "base_directory": true + // watch out for side effects with project directory (if base_directory is not within project_directory) + "base_directory": false, + + // disable automatic path completions + "disable_autocompletions": false, + + // disable keymaps + "disable_keymap_actions": false, + + // ignore folders that match following regular expressions + "exclude_folders": ["node\\_modules", "bower\\_components/.*/bower\\_components"], + + // logs scope evaluation to console to debug configuration + "log": false, + // LIST OF TRIGGERS FOR AUTO COMPLETION // - setting "scopes" in user settings will override all other scopes. // - triggers are evaluated in given order. First match wins @@ -18,13 +37,14 @@ "prefix": ["require", "define"], // 2. trigger only if: require(, define([ // if 1 & 2 are true: "auto": true, // auto suggest filepaths, else only by shorctut - "extensions": ["js", "jsx", "tmpl", "hbs", "json"], // js files, and others that can be imported as AMD + "extensions": ["js","jsx","json","hbs","tmpl"], // show only .js files "relative": false, // insert absolute "base_directory": true, // insert absolute from the set base directory (above) "replace_on_insert": [ + ["^.*?/app", "app"], // remove the path before app, we commonly import from app/ ["\\.js$", ""], // after insertion, remove .js from path - ["\\/index$", ""], // nodejs will load index.js by default => also remove index - ["\\.jsx$", ""] // remove .jsx for ReactJS module files + ["(.*?)\\.jsx$", "jsx!\\1"], // after insertion, remove .jsx from path and add jsx! prefix + ["([^.])\\/index$", "\\1"] // nodejs will load index.js by default => also remove index ] }, { @@ -101,6 +121,6 @@ "auto": false, "extensions": ["js", "html", "css", "scss", "less", "png", "gif", "jpeg", "jpg", "svg"], "relative": true - }, + } ] } \ No newline at end of file From 28d7e0a2ce10d6f422e0f541d8b147d7dd7da3be Mon Sep 17 00:00:00 2001 From: Thanh Tran Date: Sat, 12 Dec 2015 09:10:40 +0700 Subject: [PATCH 2/7] Enforcing new line at EOF (for better change diff and consistency) --- sublimetext/Packages/User/Preferences.sublime-settings | 1 + sublimetext/Packages/User/editorconfig.sublime-snippet | 1 + 2 files changed, 2 insertions(+) diff --git a/sublimetext/Packages/User/Preferences.sublime-settings b/sublimetext/Packages/User/Preferences.sublime-settings index 4e6bf48..99b659d 100644 --- a/sublimetext/Packages/User/Preferences.sublime-settings +++ b/sublimetext/Packages/User/Preferences.sublime-settings @@ -1,4 +1,5 @@ { + "ensure_newline_at_eof_on_save": true, // nice monospace font from Adobe, the light variant looks // very pleasing on dark theme // "font_face": "Source Code Pro Light", diff --git a/sublimetext/Packages/User/editorconfig.sublime-snippet b/sublimetext/Packages/User/editorconfig.sublime-snippet index 16744a4..96128e0 100644 --- a/sublimetext/Packages/User/editorconfig.sublime-snippet +++ b/sublimetext/Packages/User/editorconfig.sublime-snippet @@ -15,6 +15,7 @@ indent_size = 4 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true +insert_final_newline = true [*.md] trim_trailing_whitespace = false From cc241561e966b4fafefcee01b26de886e4edc382 Mon Sep 17 00:00:00 2001 From: Thanh Tran Date: Sat, 12 Dec 2015 09:11:11 +0700 Subject: [PATCH 3/7] We start using eslint as replacement of jshint & jscs --- sublimetext/Packages/User/Package Control.sublime-settings | 1 + 1 file changed, 1 insertion(+) diff --git a/sublimetext/Packages/User/Package Control.sublime-settings b/sublimetext/Packages/User/Package Control.sublime-settings index 188c4fa..34d59e2 100644 --- a/sublimetext/Packages/User/Package Control.sublime-settings +++ b/sublimetext/Packages/User/Package Control.sublime-settings @@ -27,6 +27,7 @@ "SCSS", "Select Quoted", "SublimeLinter", + "SublimeLinter-contrib-eslint", "SublimeLinter-contrib-scss-lint", "SublimeLinter-csslint", "SublimeLinter-jscs", From 78efeea1dd7b90daeea15630ec15e3a96a5b52c6 Mon Sep 17 00:00:00 2001 From: Thanh Tran Date: Sat, 12 Dec 2015 09:13:19 +0700 Subject: [PATCH 4/7] Always hide node_modules and .meteror/local folders (they introduce a lot of noise and indexing overheads to quick file search). --- sublimetext/Packages/User/Preferences.sublime-settings | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sublimetext/Packages/User/Preferences.sublime-settings b/sublimetext/Packages/User/Preferences.sublime-settings index 99b659d..35467fb 100644 --- a/sublimetext/Packages/User/Preferences.sublime-settings +++ b/sublimetext/Packages/User/Preferences.sublime-settings @@ -14,7 +14,9 @@ ".git", ".hg", "CVS", - ".sass-cache" + ".sass-cache", + "node_modules", + ".meteor/local" ], //this must be set in user settings to be enabled in MAC OSX "scroll_past_end": true, From f0d9c141c800cf902f539129b4692c1825a584e5 Mon Sep 17 00:00:00 2001 From: Thanh Tran Date: Mon, 4 Jan 2016 17:58:04 +0700 Subject: [PATCH 5/7] Add eslintrc snippet --- .../JavaScript/eslintrc.sublime-snippet | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 sublimetext/Packages/JavaScript/eslintrc.sublime-snippet diff --git a/sublimetext/Packages/JavaScript/eslintrc.sublime-snippet b/sublimetext/Packages/JavaScript/eslintrc.sublime-snippet new file mode 100644 index 0000000..9e113ba --- /dev/null +++ b/sublimetext/Packages/JavaScript/eslintrc.sublime-snippet @@ -0,0 +1,60 @@ + + + + eslintrc + .eslintrc + + + From 65ce53d4474f1811ed61c7753aef257ae1960c8f Mon Sep 17 00:00:00 2001 From: Thanh Tran Date: Mon, 4 Jan 2016 22:09:05 +0700 Subject: [PATCH 6/7] Update jscsrc defaults with minimum settings, extends from google preset (recent jscs package needed) --- .../JavaScript/jscsrc.sublime-snippet | 32 ++++++------------- 1 file changed, 9 insertions(+), 23 deletions(-) diff --git a/sublimetext/Packages/JavaScript/jscsrc.sublime-snippet b/sublimetext/Packages/JavaScript/jscsrc.sublime-snippet index 4c7b374..17b6ee3 100644 --- a/sublimetext/Packages/JavaScript/jscsrc.sublime-snippet +++ b/sublimetext/Packages/JavaScript/jscsrc.sublime-snippet @@ -1,29 +1,15 @@ ", ">=", "<", "<="], - "disallowRightStickedOperators": ["?", "+", "/", "*", ":", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="], - "requireRightStickedOperators": ["!"], - "requireLeftStickedOperators": [","], - "disallowImplicitTypeConversion": ["string"], - "disallowKeywords": ["with"], - "disallowKeywordsOnNewLine": ["else"], - "disallowMixedSpacesAndTabs": true, - "disallowTrailingWhitespace": true, - "excludeFiles": ["test/data/**"], - "requireSpacesInFunctionExpression": { - "beforeOpeningCurlyBrace": true + "preset": "google", + "disallowMultipleVarDecl": false, + "validateIndentation": { + "value": "\t", + "allExcept": ["comments"] }, - "disallowSpacesInFunctionExpression": { - "beforeOpeningRoundBrace": true - }, - "validateJSDoc": { - "checkParamNames": true, - "requireParamTypes": true - }, - "validateIndentation": "\t", - "validateQuoteMarks": "'" + "maximumLineLength": false, + "disallowSpacesInsideParentheses": false, + "disallowMultipleLineBreaks": false, + "disallowSpacesInsideObjectBrackets": false } ]]> From 53ced99521b5270462f4f7b11e22e81bfefbfac8 Mon Sep 17 00:00:00 2001 From: Thanh Tran Date: Mon, 4 Jan 2016 22:14:44 +0700 Subject: [PATCH 7/7] Add current SublimeLinter settings: for now we temporarily disable jshint & jscs to use eslint instead, add some eslint specific configs that are recommended and safe to share --- .../User/SublimeLinter.sublime-settings | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 sublimetext/Packages/User/SublimeLinter.sublime-settings diff --git a/sublimetext/Packages/User/SublimeLinter.sublime-settings b/sublimetext/Packages/User/SublimeLinter.sublime-settings new file mode 100644 index 0000000..1ad6dc9 --- /dev/null +++ b/sublimetext/Packages/User/SublimeLinter.sublime-settings @@ -0,0 +1,84 @@ +{ + "user": { + "debug": false, + "delay": 0.25, + "error_color": "D02000", + "gutter_theme": "Packages/SublimeLinter/gutter-themes/Default/Default.gutter-theme", + "gutter_theme_excludes": [], + "lint_mode": "background", + "linters": { + "csslint": { + "@disable": true, + "args": [], + "errors": "", + "excludes": [], + "ignore": "", + "warnings": "" + }, + "eslint": { + "@disable": false, + "args": [ + "--stdin-filename", + "@" + ], + "excludes": [] + }, + "jscs": { + "@disable": true, + "args": [], + "excludes": [] + }, + "jshint": { + "@disable": true, + "args": [], + "excludes": [] + }, + "json": { + "@disable": false, + "args": [], + "excludes": [], + "strict": true + }, + "jsxhint": { + "@disable": false, + "args": [], + "excludes": [] + }, + "scss": { + "@disable": false, + "args": [], + "exclude-linter": "", + "excludes": [], + "include-linter": "" + } + }, + "mark_style": "squiggly underline", + "no_column_highlights_line": false, + "passive_warnings": false, + "paths": { + "linux": [], + "osx": [], + "windows": [] + }, + "python_paths": { + "linux": [], + "osx": [], + "windows": [] + }, + "rc_search_limit": 3, + "shell_timeout": 10, + "show_errors_on_save": false, + "show_marks_in_minimap": true, + "syntax_map": { + "html (django)": "html", + "html (rails)": "html", + "html 5": "html", + "javascript (babel)": "javascript", + "php": "html", + "python django": "python", + "typescript": "javascript" + }, + "warning_color": "DDB700", + "wrap_find": true + } +}