├── .editorconfig
├── .gitignore
├── .gitmodules
├── Installed Packages
├── .gitignore
├── LSP.sublime-package
└── Package Control.sublime-package
├── Packages
├── .gitignore
├── BetterFindBuffer
│ ├── .no-sublime-package
│ ├── BetterFindBuffer.sublime-settings
│ ├── Default.sublime-keymap
│ ├── Find Results.hidden-tmLanguage
│ ├── Find Results.sublime-settings
│ ├── FindResults.hidden-tmTheme
│ ├── LICENSE
│ ├── Main.sublime-menu
│ ├── README.md
│ ├── Symbol List - Find Results Header.tmPreferences
│ ├── Symbol List - Find Results.tmPreferences
│ ├── find_results.py
│ ├── messages.json
│ ├── messages
│ │ ├── 1.0.0.txt
│ │ └── install.txt
│ ├── package-metadata.json
│ └── shortcuts.html
├── C++
│ ├── C Single File.sublime-build
│ ├── C++ Single File.sublime-build
│ └── custom_snippets
│ │ ├── customized
│ │ ├── hello-world-c.sublime-snippet
│ │ ├── hello-world-cpp.sublime-snippet
│ │ ├── main-function.sublime-snippet
│ │ └── readfile-into-vector.sublime-snippet
│ │ ├── data_type
│ │ ├── class.sublime-snippet
│ │ ├── const_cast.sublime-snippet
│ │ ├── dynamic_cast.sublime-snippet
│ │ ├── enum.sublime-snippet
│ │ ├── map.sublime-snippet
│ │ ├── pair.sublime-snippet
│ │ ├── reinterpret_cast.sublime-snippet
│ │ ├── set.sublime-snippet
│ │ ├── static_cast.sublime-snippet
│ │ ├── struct.sublime-snippet
│ │ ├── typedef.sublime-snippet
│ │ └── vector.sublime-snippet
│ │ ├── flow_control
│ │ ├── case.sublime-snippet
│ │ ├── else-if.sublime-snippet
│ │ ├── else.sublime-snippet
│ │ ├── goto.sublime-snippet
│ │ ├── if-else.sublime-snippet
│ │ ├── if.sublime-snippet
│ │ └── switch-case.sublime-snippet
│ │ ├── function
│ │ ├── constexpr_function.sublime-snippet
│ │ ├── fprintf.sublime-snippet
│ │ ├── function.sublime-snippet
│ │ ├── printf.sublime-snippet
│ │ └── regular_function.sublime-snippet
│ │ ├── functor
│ │ ├── binary_template_functor.sublime-snippet
│ │ ├── functor.sublime-snippet
│ │ └── unary_template_functor.sublime-snippet
│ │ ├── lambda
│ │ ├── catchallbyref.sublime-snippet
│ │ ├── catchallbyvalue.sublime-snippet
│ │ ├── full.sublime-snippet
│ │ ├── lamret.sublime-snippet
│ │ └── minimal.sublime-snippet
│ │ ├── loop
│ │ ├── do-while.sublime-snippet
│ │ ├── for.sublime-snippet
│ │ ├── forr.sublime-snippet
│ │ ├── forv.sublime-snippet
│ │ └── while.sublime-snippet
│ │ ├── others
│ │ ├── beginend.sublime-snippet
│ │ ├── exception.sublime-snippet
│ │ ├── namespace.sublime-snippet
│ │ └── try-catch.sublime-snippet
│ │ ├── preprocessor
│ │ ├── #define.sublime-snippet
│ │ ├── #ifdef.sublime-snippet
│ │ ├── #ifndef-#define-#endif.sublime-snippet
│ │ ├── #include(angle).sublime-snippet
│ │ ├── #include(quote).sublime-snippet
│ │ ├── clang_greater_version.sublime-snippet
│ │ ├── clang_less.sublime-snippet
│ │ ├── gcc_greater.sublime-snippet
│ │ └── gcc_less.sublime-snippet
│ │ ├── template
│ │ ├── template.sublime-snippet
│ │ ├── templated_class.sublime-snippet
│ │ ├── templated_function.sublime-snippet
│ │ ├── templated_function_auto.sublime-snippet
│ │ ├── templated_function_auto_constexpr.sublime-snippet
│ │ ├── templated_function_constexpr.sublime-snippet
│ │ ├── templated_struct.sublime-snippet
│ │ └── variadic_template.sublime-snippet
│ │ └── traits
│ │ └── inheritance-type-trait.sublime-snippet
├── Default
│ ├── .gitignore
│ ├── new_templates.py
│ └── pyproject.toml
├── Diff
│ └── Diff.sublime-syntax
├── DoxyDoxygen (evolution)
│ ├── INI.sublime-syntax
│ └── WTF.txt
├── Groovy
│ └── Groovy.sublime-syntax
├── HyperClick
│ └── html
│ │ └── ui.css
├── JavaScript
│ ├── Indentation Rules.tmPreferences
│ ├── JavaScript.sublime-build
│ └── Snippets
│ │ └── arrow-function.sublime-snippet
├── LSP
│ └── icons
│ │ ├── error-src.png
│ │ ├── error.png
│ │ ├── error@2x.png
│ │ ├── error@3x.png
│ │ ├── info-src.png
│ │ ├── info.png
│ │ ├── info@2x.png
│ │ ├── info@3x.png
│ │ ├── warning-src.png
│ │ ├── warning.png
│ │ ├── warning@2x.png
│ │ └── warning@3x.png
├── Language - English
│ ├── README_en_US-large.txt
│ ├── download.txt
│ ├── en_US-large.aff
│ └── en_US-large.dic
├── LiveReload-plugins
│ └── MarkdownLiveReload.py
├── Makefile
│ ├── Make (self).sublime-build
│ └── snippets
│ │ └── dot-phony.sublime-snippet
├── Markdown
│ ├── .python-version
│ ├── Snippets
│ │ └── details.sublime-snippet
│ └── Symbol List - Heading.tmPreferences
├── PHP
│ ├── Default.sublime-keymap
│ ├── Snippets
│ │ ├── Constructor.sublime-snippet
│ │ ├── class-{-}.sublime-snippet
│ │ ├── interface-{-}.sublime-snippet
│ │ └── trait-{-}.sublime-snippet
│ └── macros
│ │ ├── append-comma-newline.sublime-macro
│ │ ├── append-semicolon-newline.sublime-macro
│ │ ├── append-semicolon.sublime-macro
│ │ ├── auto-array-equals-gt.sublime-macro
│ │ ├── auto-pair-braces-current-line.sublime-macro
│ │ ├── auto-pair-braces-next-line.sublime-macro
│ │ └── wrap-newlines.sublime-macro
├── Python
│ └── Python.sublime-build
├── ShellScript
│ └── ShellScript.sublime-build
├── Terminal
│ └── Terminal.py
├── Text
│ └── Plain text.tmLanguage
├── User
│ ├── .gitignore
│ ├── AceJump.sublime-settings
│ ├── AutoSetSyntax.sublime-settings
│ ├── Batch File.sublime-settings
│ ├── C++.sublime-settings
│ ├── CSS.sublime-settings
│ ├── Console Input Widget.sublime-settings
│ ├── Default (Linux).sublime-keymap
│ ├── Default (Windows).sublime-keymap
│ ├── Diff.sublime-settings
│ ├── Doxy.sublime-settings
│ ├── Emmet.sublime-settings
│ ├── FileManager.sublime-settings
│ ├── Find Results.sublime-settings
│ ├── Fmt.sublime-settings
│ ├── Go.sublime-settings
│ ├── HTML.sublime-settings
│ ├── HyperClick.sublime-settings
│ ├── JavaScript.sublime-settings
│ ├── Jinja.sublime-settings
│ ├── JsPrettier.sublime-settings
│ ├── LESS.sublime-settings
│ ├── LSP-clangd.sublime-settings
│ ├── LSP-copilot.sublime-settings
│ ├── LSP-css.sublime-settings
│ ├── LSP-dockerfile.sublime-settings
│ ├── LSP-html.sublime-settings
│ ├── LSP-intelephense.sublime-settings
│ ├── LSP-json.sublime-settings
│ ├── LSP-pylance.sublime-settings
│ ├── LSP-ruff.sublime-settings
│ ├── LSP-yaml.sublime-settings
│ ├── LSP.sublime-settings
│ ├── LiveReload.sublime-settings
│ ├── Log.sublime-settings
│ ├── Markdown.sublime-settings
│ ├── Package Control.sublime-settings
│ ├── PackageDev.sublime-settings
│ ├── PowershellSyntax.sublime-settings
│ ├── Preferences.sublime-settings
│ ├── Python.sublime-settings
│ ├── RainbowIndent.sublime-settings
│ ├── SCSS.sublime-settings
│ ├── SublimeLinter.sublime-settings
│ ├── TodoReview.sublime-settings
│ ├── ToggleWords.sublime-settings
│ ├── Twig.sublime-settings
│ ├── Verilog.sublime-settings
│ ├── WindowsContextMenu.sublime-settings
│ ├── bh_core.sublime-settings
│ ├── bh_swapping.sublime-settings
│ ├── bh_tag.sublime-settings
│ ├── color_helper.sublime-settings
│ ├── lsp_utils.sublime-settings
│ ├── mdpopups.css
│ ├── my_build
│ │ ├── CSS - Minify.sublime-build
│ │ ├── D2 - Export.sublime-build
│ │ ├── LESS.sublime-build
│ │ ├── PyUIC (Python) - Convert Qt UI into Python.sublime-build
│ │ ├── SCSS.sublime-build
│ │ └── pyuic5 (executable) - Convert Qt UI into Python.sublime-build
│ ├── my_keymap
│ │ ├── ChineseQuotes
│ │ │ └── Default.sublime-keymap
│ │ ├── LanguageQuotes
│ │ │ └── Default.sublime-keymap
│ │ ├── LatinQuotes
│ │ │ └── Default.sublime-keymap
│ │ ├── TypeShorter
│ │ │ └── Default.sublime-keymap
│ │ └── readme.md
│ ├── my_language
│ │ ├── ApacheConf
│ │ │ ├── ApacheConf.sublime-syntax
│ │ │ └── Comments.tmPreferences
│ │ ├── D2.sublime-syntax
│ │ ├── Gettext.sublime-syntax
│ │ ├── Jenkinsfile.sublime-syntax
│ │ ├── Log.sublime-syntax
│ │ ├── PEM.sublime-syntax
│ │ ├── Postscript.sublime-syntax
│ │ ├── SRT.sublime-syntax
│ │ ├── SSH-Config
│ │ │ ├── Comments.tmPreferences
│ │ │ └── SSH-Config.sublime-syntax
│ │ ├── Singularity
│ │ │ ├── Comments.tmPreferences
│ │ │ └── Singularity.sublime-syntax
│ │ ├── VTT.sublime-syntax
│ │ ├── aliases
│ │ │ ├── CoffeeScript (Gulpfile).sublime-syntax
│ │ │ ├── Groovy (Gradle).sublime-syntax
│ │ │ ├── JSON (Babel).sublime-syntax
│ │ │ ├── JSON (Bower).sublime-syntax
│ │ │ ├── JSON (Composer).sublime-syntax
│ │ │ ├── JSON (ESLint).sublime-syntax
│ │ │ ├── JSON (NPM).sublime-syntax
│ │ │ ├── JSON (PostCSS).sublime-syntax
│ │ │ ├── JSON (Settings).sublime-syntax
│ │ │ ├── JSON (Stylelint).sublime-syntax
│ │ │ ├── JSON (Tern JS).sublime-syntax
│ │ │ ├── JavaScript (ESLint).sublime-syntax
│ │ │ ├── JavaScript (Gruntfile).sublime-syntax
│ │ │ ├── JavaScript (Gulpfile).sublime-syntax
│ │ │ ├── JavaScript (PostCSS).sublime-syntax
│ │ │ ├── JavaScript (Stylelint).sublime-syntax
│ │ │ ├── JavaScript (Webpack).sublime-syntax
│ │ │ ├── Markdown (License).sublime-syntax
│ │ │ ├── Plain Text (Adobe After Effects).sublime-syntax
│ │ │ ├── Plain Text (Adobe Illustrator).sublime-syntax
│ │ │ ├── Plain Text (Adobe InDesign).sublime-syntax
│ │ │ ├── Plain Text (Adobe Photoshop).sublime-syntax
│ │ │ ├── Plain Text (Adobe Premiere Pro).sublime-syntax
│ │ │ ├── Plain Text (Archive).sublime-syntax
│ │ │ ├── Plain Text (Audio).sublime-syntax
│ │ │ ├── Plain Text (Buildpacks).sublime-syntax
│ │ │ ├── Plain Text (ESLint).sublime-syntax
│ │ │ ├── Plain Text (Font).sublime-syntax
│ │ │ ├── Plain Text (License).sublime-syntax
│ │ │ ├── Plain Text (Microsoft Access).sublime-syntax
│ │ │ ├── Plain Text (Microsoft Excel).sublime-syntax
│ │ │ ├── Plain Text (Microsoft OneNote).sublime-syntax
│ │ │ ├── Plain Text (Microsoft PowerPoint).sublime-syntax
│ │ │ ├── Plain Text (Microsoft Word).sublime-syntax
│ │ │ ├── Plain Text (NodeJS).sublime-syntax
│ │ │ ├── Plain Text (PDF).sublime-syntax
│ │ │ ├── Plain Text (Ruby).sublime-syntax
│ │ │ ├── Plain Text (Sketch).sublime-syntax
│ │ │ ├── Plain Text (Video).sublime-syntax
│ │ │ ├── Plain Text (Windows Shortcut).sublime-syntax
│ │ │ ├── Shell Script (ESLint).sublime-syntax
│ │ │ ├── Shell Script (NPM).sublime-syntax
│ │ │ ├── Shell Script (Ruby).sublime-syntax
│ │ │ ├── Shell Script (Stylelint).sublime-syntax
│ │ │ ├── Vimrc (VimL).sublime-syntax
│ │ │ ├── XML (SVG).sublime-syntax
│ │ │ ├── YAML (CircleCI).sublime-syntax
│ │ │ ├── YAML (Docker).sublime-syntax
│ │ │ ├── YAML (ESLint).sublime-syntax
│ │ │ ├── YAML (Lock).sublime-syntax
│ │ │ ├── YAML (Procfile).sublime-syntax
│ │ │ ├── YAML (Stylelint).sublime-syntax
│ │ │ └── YAML (Yarn).sublime-syntax
│ │ └── requirements-txt
│ │ │ ├── Comments.tmPreferences
│ │ │ └── pip-requirements.sublime-syntax
│ ├── my_theme
│ │ ├── .gitignore
│ │ ├── Adaptive.sublime-theme
│ │ ├── Find Results.hidden-color-scheme
│ │ ├── git_badges
│ │ │ ├── added.png
│ │ │ ├── added@2x.png
│ │ │ ├── added@3x.png
│ │ │ ├── modified.png
│ │ │ ├── modified@2x.png
│ │ │ ├── modified@3x.png
│ │ │ ├── src.txt
│ │ │ ├── staged.png
│ │ │ ├── staged@2x.png
│ │ │ ├── staged@3x.png
│ │ │ ├── untracked.png
│ │ │ ├── untracked@2x.png
│ │ │ └── untracked@3x.png
│ │ ├── gutters
│ │ │ ├── right_arrow_green.png
│ │ │ ├── right_arrow_red.png
│ │ │ └── right_arrow_yellow.png
│ │ └── wicked_rainbow.sublime-color-scheme
│ ├── phpcs.sublime-settings
│ └── scope_hunter.sublime-settings
├── my_demo_38
│ ├── .python-version
│ ├── Default.sublime-commands
│ ├── TextInputHandlerDemo.py
│ └── pyproject.toml
└── my_plugin_38
│ ├── .python-version
│ ├── 0_lsp_utils.py
│ ├── Default.sublime-commands
│ ├── always_indent_command.py
│ ├── console_exec_command.py
│ ├── copy_without_newline_command.py
│ ├── decorate_inline_comment.py
│ ├── dependencies.json
│ ├── deselect_command.py
│ ├── dev_mode.py
│ ├── expand_flatten_json_command.py
│ ├── extend_selection_to_previous_line_command.py
│ ├── find_and_replace.py
│ ├── focus_active_output_panel_command.py
│ ├── goto_symbol_command.py
│ ├── just_one_space_command.py
│ ├── pyproject.toml
│ ├── run_async_command.py
│ ├── run_input_cli_command.py
│ ├── selection_to_top_command.py
│ ├── step_tab_cycle_command.py
│ ├── toggle_all_inline_diffs_command.py
│ ├── toggle_readonly_command.py
│ └── toggle_word_command.py
├── my_dependencies
├── package.json
├── requirements.txt
└── update.sh
└── scripts
├── .gitignore
├── mirror_official_docs.sh
├── update_lsp.sh
└── update_official_packages.sh
/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig is awesome: https://EditorConfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | end_of_line = lf
7 | indent_style = space
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.bat]
12 | charset = latin1
13 | end_of_line = crlf
14 |
15 | [*.{css,sass,scss}]
16 | indent_size = 2
17 |
18 | [*.{html,xml,twig,blade,volt}]
19 | indent_size = 2
20 |
21 | [*.js]
22 | indent_size = 2
23 |
24 | [*.{json,toml}]
25 | indent_size = 4
26 |
27 | [*.md]
28 | indent_size = 2
29 | trim_trailing_whitespace = false
30 |
31 | [*.php]
32 | indent_size = 4
33 |
34 | [*.ps]
35 | end_of_line = crlf
36 |
37 | [*.py]
38 | indent_size = 4
39 |
40 | [*.{sh,csh,tcsh,zsh,bash,fish}]
41 | indent_size = 4
42 |
43 | [*.sublime-syntax]
44 | indent_size = 2
45 |
46 | [*.sublime-snippet]
47 | indent_style = tab
48 |
49 | [*.{sublime-build,sublime-color-scheme,sublime-commands,sublime-completions,sublime-keymap,sublime-menu,sublime-mousemap,sublime-project,sublime-settings,sublime-workspace,tmLanguage,tmPreferences}]
50 | indent_size = 4
51 | indent_style = space
52 |
53 | [*.{yml,yaml,toml,neon}]
54 | indent_size = 2
55 |
56 | [Makefile]
57 | indent_style = tab
58 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # auto generated or unimportant
2 | /Backup/
3 | /Cache/
4 | /Crash Reports/
5 | /Index/
6 | /KEEPME
7 | /Lib/
8 | /Local/
9 | /Log/
10 | /Trash/
11 |
12 | # LSP
13 | /Package Storage/
14 |
15 | # secrets
16 | *.sublime-license
17 | *.sublime_license
18 |
19 | # script temp
20 | *_cache/
21 | .Sublime-Official-Packages/
22 | docs/
23 |
24 | # venv
25 | .venv-*/
26 | .venv/
27 | venv-*/
28 | venv/
29 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "typings/LSP"]
2 | path = typings/LSP
3 | url = https://github.com/sublimelsp/LSP.git
4 |
--------------------------------------------------------------------------------
/Installed Packages/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 |
3 | !LSP.sublime-package
4 | !Package Control.sublime-package
5 |
--------------------------------------------------------------------------------
/Installed Packages/LSP.sublime-package:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Installed Packages/LSP.sublime-package
--------------------------------------------------------------------------------
/Installed Packages/Package Control.sublime-package:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Installed Packages/Package Control.sublime-package
--------------------------------------------------------------------------------
/Packages/.gitignore:
--------------------------------------------------------------------------------
1 | /AutomaticPackageReloader*/
2 | /CommandsBrowser33/
3 | /ConvertToUTF8/
4 | /JsPrettier/
5 | /LiveReload/
6 | /LSP-*/
7 | /SublimeLinter*/
8 | /UnitTesting/
9 |
10 | /Terminal/*
11 | !/Terminal/Terminal.py
12 |
--------------------------------------------------------------------------------
/Packages/BetterFindBuffer/.no-sublime-package:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/BetterFindBuffer/.no-sublime-package
--------------------------------------------------------------------------------
/Packages/BetterFindBuffer/BetterFindBuffer.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "readonly": true,
3 | "fold_path_prefix": true
4 | }
5 |
--------------------------------------------------------------------------------
/Packages/BetterFindBuffer/Default.sublime-keymap:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "keys": ["enter"],
4 | "command": "find_in_files_open_file",
5 | "context": [
6 | { "key": "selector", "operator": "equal", "operand": "text.find-in-files" }
7 | ]
8 | },
9 | {
10 | "keys": ["o"],
11 | "command": "find_in_files_open_file",
12 | "context": [
13 | { "key": "selector", "operator": "equal", "operand": "text.find-in-files" }
14 | ]
15 | },
16 | {
17 | "keys": ["a"],
18 | "command": "find_in_files_open_all_files",
19 | "context": [
20 | { "key": "selector", "operator": "equal", "operand": "text.find-in-files" }
21 | ]
22 | },
23 | {
24 | "keys": ["n"],
25 | "command": "find_in_files_jump_file",
26 | "context": [
27 | { "key": "selector", "operator": "equal", "operand": "text.find-in-files" }
28 | ]
29 | },
30 | {
31 | "keys": ["p"],
32 | "command": "find_in_files_jump_file",
33 | "args": { "forward": false },
34 | "context": [
35 | { "key": "selector", "operator": "equal", "operand": "text.find-in-files" }
36 | ]
37 | },
38 | {
39 | "keys": ["j"],
40 | "command": "find_in_files_jump_match",
41 | "context": [
42 | { "key": "selector", "operator": "equal", "operand": "text.find-in-files" }
43 | ]
44 | },
45 | {
46 | "keys": ["k"],
47 | "command": "find_in_files_jump_match",
48 | "args": { "forward": false },
49 | "context": [
50 | { "key": "selector", "operator": "equal", "operand": "text.find-in-files" }
51 | ]
52 | },
53 | {
54 | "keys": ["f"],
55 | "command": "bfb_fold_and_move_to_next_file",
56 | "context": [
57 | {"key": "selector", "operator": "equal", "operand": "text.find-in-files" }
58 | ]
59 | },
60 | {
61 | "keys": ["?"],
62 | "command": "bfb_toggle_popup_help",
63 | "context": [
64 | {"key": "selector", "operator": "equal", "operand": "text.find-in-files" }
65 | ]
66 | }
67 | ]
68 |
--------------------------------------------------------------------------------
/Packages/BetterFindBuffer/Find Results.hidden-tmLanguage:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | name
6 | Find Results
7 |
8 | patterns
9 |
10 |
11 |
12 | match
13 | ^([^ ].*:\n)$
14 | captures
15 |
16 | 1
17 |
18 | name
19 | entity.name.filename.find-in-files
20 |
21 |
22 |
23 |
24 |
25 | match
26 | ^( +[0-9]+)
27 | captures
28 |
29 | 1
30 |
31 | name
32 | constant.numeric.line-number.find-in-files
33 |
34 |
35 |
36 |
37 |
38 | match
39 | ^( +[0-9]+)(:)(.+\n)$
40 | captures
41 |
42 | 1
43 |
44 | name
45 | constant.numeric.line-number.match.find-in-files
46 |
47 | 2
48 |
49 | name
50 | punctuation.line-number.match.find-in-files
51 |
52 | 3
53 |
54 | name
55 | match.find-in-files
56 |
57 |
58 |
59 |
60 |
61 |
62 | match
63 | ^ +(\.{2,10}+)$
64 | captures
65 |
66 | 1
67 |
68 | name
69 | constant.numeric.line-number.find-in-files
70 |
71 |
72 |
73 |
74 |
75 | match
76 | ^Searching (\d+) file(?:s)? for (".+")(.+)?$
77 | name
78 | header.find-in-files
79 | captures
80 |
81 | 1
82 |
83 | name
84 | variable.total_files_count.find-in-files
85 |
86 | 2
87 |
88 | name
89 | string.query.find-in-files
90 |
91 |
92 |
93 |
94 |
95 | match
96 | ^(\d+) match(?:es)? (?:across|in) (\d+) file(?:s)?\n
97 | name
98 | footer.find-in-files
99 | captures
100 |
101 | 1
102 |
103 | name
104 | variable.matched_count.find-in-files
105 |
106 | 2
107 |
108 | name
109 | variable.matched_files_count.find-in-files
110 |
111 | 3
112 |
113 | name
114 | sep.find-in-files
115 |
116 |
117 |
118 |
119 |
120 | match
121 | ^(0) matches\n
122 | name
123 | footer.find-in-files
124 | captures
125 |
126 | 1
127 |
128 | name
129 | variable.no_matches.find-in-files
130 |
131 |
132 |
133 |
134 |
135 | match
136 | ^(0) matches
137 | captures
138 |
139 | 1
140 |
141 | name
142 | variable.no_matches.find-in-files
143 |
144 |
145 |
146 |
147 |
148 | scopeName
149 | text.find-in-files
150 |
151 |
152 |
--------------------------------------------------------------------------------
/Packages/BetterFindBuffer/Find Results.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "color_scheme": "Packages/BetterFindBuffer/FindResults.hidden-tmTheme",
3 | "draw_indent_guides": false,
4 | "gutter": false,
5 | "margin": 8,
6 | "rulers": [],
7 | "spell_check": false,
8 | "word_wrap": true
9 | }
10 |
--------------------------------------------------------------------------------
/Packages/BetterFindBuffer/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2014 Allen Bargi (https://twitter.com/aziz)
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4 |
5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6 |
7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8 |
--------------------------------------------------------------------------------
/Packages/BetterFindBuffer/Main.sublime-menu:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": "preferences",
4 | "children": [{
5 | "caption": "Package Settings",
6 | "mnemonic": "P",
7 | "id": "package-settings",
8 | "children": [{
9 | "caption": "BetterFindBuffer",
10 | "children": [
11 | {
12 | "command": "open_file",
13 | "args": {
14 | "file": "${packages}/BetterFindBuffer/BetterFindBuffer.sublime-settings"
15 | },
16 | "caption": "Settings – Default"
17 | },
18 | {
19 | "command": "open_file",
20 | "args": {
21 | "file": "${packages}/User/BetterFindBuffer.sublime-settings"
22 | },
23 | "caption": "Settings – User"
24 | },
25 | {
26 | "caption": "-"
27 | },
28 | {
29 | "command": "open_file",
30 | "args": {
31 | "file": "${packages}/BetterFindBuffer/Find Results.sublime-settings"
32 | },
33 | "caption": "Find Results Settings – Default"
34 | },
35 | {
36 | "command": "open_file",
37 | "args": {
38 | "file": "${packages}/User/Find Results.sublime-settings"
39 | },
40 | "caption": "Find Results Settings – User"
41 | }
42 | ]
43 | }]
44 | }]
45 | }
46 | ]
47 |
--------------------------------------------------------------------------------
/Packages/BetterFindBuffer/README.md:
--------------------------------------------------------------------------------
1 | # BetterFindBuffer for SublimeText 3
2 | Adds a couple of missing features to SublimeText Find Results buffer.
3 |
4 | **Note**: You need to *restart* your SublimeText after installing this plugin.
5 |
6 | ## Features
7 | - Open the the file and line under the cursor by pressing Enter or o
8 | - n and p to jump to next/previous file
9 | - j and k to jump to next/previous match
10 | - Open multiple files with multiple cursor at the same time by selecting lines and pressing Enter or o
11 | - Open all files in the result with a
12 | - Fold a result with f and move to next file
13 | - Show shortcuts with ?
14 | - Remove path prefix in filenames based on open sublime's project folders (can be disabled in settings)
15 | - Set find results as readonly (can be disabled in settings)
16 | - Adds search keyword and file names to the symbols list (use Super+R)
17 | - Cleaner UI (hides line numbers, gutter, indent guides)
18 | - Better Syntax highlighting for find results
19 | - Cutom color scheme
20 |
21 | 
22 |
23 | 
24 |
25 | ## Installation
26 | You can install via [Sublime Package Control](http://wbond.net/sublime_packages/package_control)
27 | Or you can clone this repo into your Sublime Text Packages folder.
28 |
29 | ## Changing color scheme
30 | If you don't like colors used in the find results buffer just copy [this file](https://github.com/aziz/BetterFindBuffer/blob/master/FindResults.hidden-tmTheme) to your User folder, change colors and save it and then create a file called `Find Results.sublime-settings` in your User folder and paste the code below:
31 |
32 | ``` json
33 | {
34 | "color_scheme": "Path to your custom color scheme file. e.g. Packages/User/Custom_FindResults.hidden-tmTheme",
35 | }
36 | ```
37 |
38 | Alternatively, You can use [BetterFindBuffer-Designer](http://bobtherobot.github.io/BetterFindBuffer-Designer/) tool as GUI to easily customize the Find-Results color scheme.
39 |
40 | ### Credit
41 | `FindInFilesOpenFileCommand` is inspired by [this answer on StackOverflow](http://stackoverflow.com/a/16779397/78254)
42 |
43 | #### License
44 | See the LICENSE file
45 |
--------------------------------------------------------------------------------
/Packages/BetterFindBuffer/Symbol List - Find Results Header.tmPreferences:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | name
6 | Symbol List: Search Heading
7 | scope
8 | text.find-in-files header.find-in-files
9 | settings
10 |
11 | showInSymbolList
12 | 1
13 | symbolTransformation
14 |
15 | s/Searching \d+ files for "(.+?)"(.+)?$/Search: \1 —————————————————————————/g;
16 |
17 | showInIndexedSymbolList
18 | 0
19 |
20 | uuid
21 | f2640a36-68f2-42ee-bba6-d34296c15594
22 |
23 |
24 |
--------------------------------------------------------------------------------
/Packages/BetterFindBuffer/Symbol List - Find Results.tmPreferences:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | name
6 | Symbol List: File Heading
7 | scope
8 | entity.name.filename.find-in-files
9 | settings
10 |
11 | showInSymbolList
12 | 1
13 | showInIndexedSymbolList
14 | 0
15 |
16 | uuid
17 | f2640a36-68f2-42ee-bba6-d34296c15594
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Packages/BetterFindBuffer/messages.json:
--------------------------------------------------------------------------------
1 | {
2 | "install": "messages/install.txt"
3 | }
--------------------------------------------------------------------------------
/Packages/BetterFindBuffer/messages/1.0.0.txt:
--------------------------------------------------------------------------------
1 | BetterFindBuffer version 1.0.0
2 |
3 | You need to *restart* SublimeText.
4 |
5 | Changelog:
6 | ● Configurable readonly settings
7 | ● Open multiple files with multiple cursor
8 | ● Jump by match instead of by search result. a more reliable `j` and `k` movements
9 | ● Open all files in the result with `a`
10 | ● Fold a result with `f` and move to next file
11 | ● Show shortcuts with `?`
12 | ● Remove path prefix in filenames based on open sublime's project folders
13 |
--------------------------------------------------------------------------------
/Packages/BetterFindBuffer/messages/install.txt:
--------------------------------------------------------------------------------
1 | Thank you for installing BetterFindBuffer.
2 |
3 | You need to *restart* your SublimeText for this plugin to work.
4 |
--------------------------------------------------------------------------------
/Packages/BetterFindBuffer/package-metadata.json:
--------------------------------------------------------------------------------
1 | {"dependencies": [], "url": "https://github.com/aziz/BetterFindBuffer", "platforms": ["*"], "version": "1.0.0", "sublime_text": ">=3000", "description": "Adds a couple of missing features to SublimeText 3 Find Results buffer"}
--------------------------------------------------------------------------------
/Packages/BetterFindBuffer/shortcuts.html:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 |
23 |
24 | enter open the file under the cursor
25 | o open the file under the cursor
26 | a open all files
27 | j jump to next search result
28 | k jump to previous search result
29 | n scroll to next file
30 | p scroll to previous file
31 | f fold this file and move to the first match on next file
32 | ? show this shortcuts help
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/Packages/C++/C Single File.sublime-build:
--------------------------------------------------------------------------------
1 | {
2 | "cmd": [
3 | "gcc",
4 | "-std=c11",
5 | "-Wall",
6 | "-O2",
7 | "${file}",
8 | "-I./include",
9 | "-I./lib",
10 | "-I./libs",
11 | "-o",
12 | "${file_path}/${file_base_name}"
13 | ],
14 | "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
15 | "working_dir": "${file_path}",
16 | "selector": "source.c",
17 | "target": "console_exec",
18 | "variants": [
19 | {
20 | "name": "Run",
21 | "cmd": ["${file_path}/${file_base_name}"]
22 | },
23 | {
24 | "name": "Compile & Run",
25 | "cmd": [
26 | "gcc",
27 | "-std=c11",
28 | "-Wall",
29 | "-O2",
30 | "${file}",
31 | "-I./include",
32 | "-I./lib",
33 | "-I./libs",
34 | "-o",
35 | "${file_path}/${file_base_name}",
36 | "&&",
37 | "${file_path}/${file_base_name}"
38 | ]
39 | }
40 | ]
41 | }
42 |
--------------------------------------------------------------------------------
/Packages/C++/C++ Single File.sublime-build:
--------------------------------------------------------------------------------
1 | {
2 | "cmd": [
3 | "g++",
4 | "-std=c++20",
5 | "-Wall",
6 | "-O2",
7 | "${file}",
8 | "-I./include",
9 | "-I./lib",
10 | "-I./libs",
11 | "-o",
12 | "${file_path}/${file_base_name}"
13 | ],
14 | "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
15 | "working_dir": "${file_path}",
16 | "selector": "source.c++",
17 | "target": "console_exec",
18 | "variants": [
19 | {
20 | "name": "Run",
21 | "cmd": ["${file_path}/${file_base_name}"]
22 | },
23 | {
24 | "name": "Compile & Run",
25 | "cmd": [
26 | "g++",
27 | "-std=c++20",
28 | "-Wall",
29 | "-O2",
30 | "${file}",
31 | "-I./include",
32 | "-I./lib",
33 | "-I./libs",
34 | "-o",
35 | "${file_path}/${file_base_name}",
36 | "&&",
37 | "${file_path}/${file_base_name}"
38 | ]
39 | }
40 | ]
41 | }
42 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/customized/hello-world-c.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | 起手式
3 |
4 |
5 | int main (int argc, char *argv[]) {
6 | ${1:printf("hello world!\n");}
7 | return 0;
8 | }
9 |
10 | ]]>
11 | helloworld
12 | source.c, source.objc
13 |
14 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/customized/hello-world-cpp.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | 起手式
3 |
4 |
5 | using namespace std;
6 |
7 | int main (int argc, char *argv[]) {
8 | ${1:cout << "hello world!" << endl;}
9 | return 0;
10 | }
11 |
12 | ]]>
13 | helloworld
14 | source.c++, source.objc++
15 |
16 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/customized/main-function.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | main()
3 |
7 | main
8 | source.c, source.objc, source.c++, source.objc++
9 |
10 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/customized/readfile-into-vector.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Read File Into Vector
3 | v;
4 | if (FILE${TM_C_POINTER: *}fp = fopen(${1:"filename"}, "r")) {
5 | char buf[1024];
6 | while (size_t len = fread(buf, 1, sizeof(buf), fp))
7 | v.insert(v.end(), buf, buf + len);
8 | fclose(fp);
9 | }]]>
10 | readfile
11 | source.c++, source.objc++
12 |
13 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/data_type/class.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Class
3 |
10 | class
11 | source.c++, source.objc++
12 |
13 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/data_type/const_cast.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | const_cast
3 | (${2:variable})$0]]>
4 | const_cast
5 | source.c, source.c++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/data_type/dynamic_cast.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | dynamic_cast
3 | (${2:variable})$0]]>
4 | dynamic_cast
5 | source.c, source.c++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/data_type/enum.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Enumeration
3 |
4 | enum
5 | source.c++, source.objc++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/data_type/map.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | std::map
3 | ${3:map};$0]]>
4 | map
5 | source.c++, source.objc++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/data_type/pair.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | std::pair
3 | ${3:pair};$0]]>
4 | pair
5 | source.c++, source.objc++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/data_type/reinterpret_cast.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | reinterpret_cast
3 | (${2:variable})$0]]>
4 | reinterpret_cast
5 | source.c, source.c++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/data_type/set.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | std::set
3 | ${2:set};$0]]>
4 | set
5 | source.c++, source.objc++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/data_type/static_cast.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | static_cast
3 | (${2:variable})$0]]>
4 | static_cast
5 | source.c, source.c++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/data_type/struct.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Struct
3 |
6 | struct
7 | source.c, source.objc, source.c++, source.objc++
8 |
9 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/data_type/typedef.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Typedef
3 |
4 | td
5 | source.c, source.objc, source.c++, source.objc++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/data_type/vector.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | std::vector
3 | ${2:v};$0]]>
4 | vector
5 | source.c++, source.objc++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/flow_control/case.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Case
3 |
7 | case
8 | source.c, source.objc, source.c++, source.objc++
9 |
10 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/flow_control/else-if.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Else if
3 |
6 | elif
7 | source.c, source.objc, source.c++, source.objc++
8 |
9 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/flow_control/else.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Else
3 |
6 | else
7 | source.c, source.objc, source.c++, source.objc++
8 |
9 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/flow_control/goto.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | goto
3 |
4 | goto
5 | source.c, source.objc, source.c++, source.objc++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/flow_control/if-else.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | If else Condition
3 |
8 | ife
9 | source.c, source.objc, source.c++, source.objc++
10 |
11 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/flow_control/if.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | If Condition
3 |
6 | if
7 | source.c, source.objc, source.c++, source.objc++
8 |
9 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/flow_control/switch-case.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Switch Case
3 |
11 | switch
12 | source.c, source.objc, source.c++, source.objc++
13 |
14 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/function/constexpr_function.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | constexpr function
3 |
6 | confunct
7 | source.c++
8 |
9 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/function/fprintf.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | fprintf …
3 |
4 | fprintf
5 | source.c, source.objc, source.c++, source.objc++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/function/function.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Regular function
3 |
6 | func
7 | source.c, source.objc, source.c++, source.objc++
8 |
9 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/function/printf.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | printf …
3 |
4 | printf
5 | source.c, source.objc, source.c++, source.objc++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/function/regular_function.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Regular function
3 |
6 | funct
7 | source.c, source.objc, source.c++, source.objc++
8 |
9 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/functor/binary_template_functor.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Binary template functor
3 |
5 | constexpr auto operator()(T&& t, U&& u) const noexcept -> decltype(${2:/* code */}) {
6 | return ${2:/* code */};
7 | }
8 | };]]>
9 | bintempfunctor
10 | source.c++
11 |
12 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/functor/functor.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Functor
3 |
8 | functor
9 | source.c++
10 |
11 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/functor/unary_template_functor.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Unary template functor
3 |
5 | constexpr auto operator()(T&& t) const noexcept -> decltype(${2:/* code */}) {
6 | return ${2:/* code */};
7 | }
8 | };]]>
9 | tempfunctor
10 | source.c++
11 |
12 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/lambda/catchallbyref.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Lambda - catch all by reference
3 |
6 | lamref
7 | source.c++
8 |
9 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/lambda/catchallbyvalue.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Lambda - catch all by value
3 |
6 | lamval
7 | source.c++
8 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/lambda/full.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Lambda - Full spec
3 | ${5:/* return */} {
4 | ${6:/* code */}
5 | }]]>
6 | lamfull
7 | source.c++
8 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/lambda/lamret.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Lambda - Explicit return declaration
3 | ${3:/* return */} {
4 | ${4:/* code */}
5 | }]]>
6 | lamret
7 | source.c++
8 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/lambda/minimal.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Lambda - Minimal
3 |
6 | lammin
7 | source.c++
8 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/loop/do-while.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Do While Loop
3 |
6 | do
7 | source.c, source.objc, source.c++, source.objc++
8 |
9 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/loop/for.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | For Loop
3 |
6 | for
7 | source.c, source.objc, source.c++, source.objc++
8 |
9 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/loop/forr.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Range-based For Loop
3 |
6 | forr
7 | source.c++, source.objc++
8 |
9 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/loop/forv.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Vector For Loop
3 |
6 | forv
7 | source.c++, source.objc++
8 |
9 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/loop/while.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | While Loop
3 |
6 | while
7 | source.c, source.objc, source.c++, source.objc++
8 |
9 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/others/beginend.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | std::begin($1), std::end($1)
3 |
4 | beginend
5 | source.c++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/others/exception.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Create exception
3 |
7 | excep
8 | source.c++, source.objc++
9 |
10 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/others/namespace.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Namespace
3 |
7 | ns
8 | source.c++, source.objc++
9 |
10 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/others/try-catch.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | try & catch
3 |
8 | try
9 | source.c++, source.objc++
10 |
11 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/preprocessor/#define.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | #define
3 |
4 | def
5 | source.c, source.c++, source.objc, source.objc++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/preprocessor/#ifdef.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | #define
3 |
6 | ifdef
7 | source.c, source.c++, source.objc, source.objc++
8 |
9 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/preprocessor/#ifndef-#define-#endif.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | #ifndef … #define … #endif
3 |
6 | ifndef
7 | source.c, source.c++, source.objc, source.objc++
8 |
9 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/preprocessor/#include(angle).sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | #include <…>
3 | ]]>
4 | Inc
5 | source.c, source.objc, source.c++, source.objc++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/preprocessor/#include(quote).sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | #include "…"
3 |
4 | inc
5 | source.c, source.objc, source.c++, source.objc++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/preprocessor/clang_greater_version.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Clang version >= check
3 | ${1:3}) || (__clang_major__ == ${1:3}) && (__clang_minor__ >= ${2:2}))]]>
4 | clanggreater
5 | source.c, source.objc, source.c++, source.objc++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/preprocessor/clang_less.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Clang version <= check
3 |
4 | clangless
5 | source.c, source.objc, source.c++, source.objc++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/preprocessor/gcc_greater.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | GCC version >= check
3 | ${1:4}) || ((__GNUC__ == ${1:4}) && (__GNUC_MINOR__ >= ${2:7})))]]>
4 | gccgreater
5 | source.c, source.objc, source.c++, source.objc++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/preprocessor/gcc_less.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | GCC version <= check
3 |
4 | gccless
5 | source.c, source.objc, source.c++, source.objc++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/template/template.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | template <typename ${1:T}>
3 | ]]>
4 | tp
5 | source.c++, source.objc++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/template/templated_class.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 |
3 | class ${2:${TM_FILENAME/(.+)\..+|.*/\1/}} {
4 | public:
5 | ${2/(\w+).*/$1/}(${3:/*arguments*/});
6 | ~${2/(\w+).*/$1/}();
7 | private:
8 | ${0:/* data */}
9 | };]]>
10 | tpclass
11 | source.c++, source.objc++
12 |
13 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/template/templated_function.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | templated function
3 |
4 | ${2:int} ${3:function_name} (${4:/* args */}) {
5 | ${0:/* code */}
6 | }]]>
7 | tpfunc
8 | source.c++
9 |
10 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/template/templated_function_auto.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | template auto function
3 |
4 | auto ${2:function_name}(${3:/* args */}) -> decltype(${4:/* expression */}) {
5 | ${0:/* code */}
6 | }]]>
7 | tempfunca
8 | source.c++, source.objc++
9 |
10 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/template/templated_function_auto_constexpr.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | template auto constexpr func
3 |
4 | constexpr auto ${2:function_name}(${3:/* args */}) noexcept -> decltype(${4:/* code */}) {
5 | return ${4:/* code */};
6 | }]]>
7 | tempcfunca
8 | source.c++
9 |
10 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/template/templated_function_constexpr.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | template constexpr function
3 |
4 | constexpr ${2:int} ${3:function_name}(${4:/* args */}) {
5 | return ${5:/* code */};
6 | }]]>
7 | tempcfunc
8 | source.c++
9 |
10 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/template/templated_struct.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | templated struct
3 |
4 | struct ${2:${TM_FILENAME/(.+)\..+|.*/\1/}} {
5 | ${0:/* code */}
6 | };]]>
7 | structtemp
8 | source.c++, source.objc++
9 |
10 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/template/variadic_template.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | variadic template
3 | ]]>
4 | temv
5 | source.c++, source.objc++
6 |
7 |
--------------------------------------------------------------------------------
/Packages/C++/custom_snippets/traits/inheritance-type-trait.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | Do While Loop
3 |
5 | static std::true_type test(int);
6 | template
7 | static std::false_type test(...);
8 | };
9 |
10 | template
11 | struct ${1:my_trait} : decltype(${1:my_trait}::test(0)) {};
12 | $0]]>
13 | cpptraitfun
14 | source.c++
15 |
16 |
--------------------------------------------------------------------------------
/Packages/Default/.gitignore:
--------------------------------------------------------------------------------
1 | # platform-specific settings
2 | /Preferences*.sublime-settings
3 |
4 | # auto generated by plugins
5 | /Find Results.hidden-tmLanguage
6 |
--------------------------------------------------------------------------------
/Packages/Default/pyproject.toml:
--------------------------------------------------------------------------------
1 | [tool.ruff]
2 | preview = true
3 | line-length = 120
4 | target-version = 'py38'
5 | exclude = [
6 | "*/libs/*",
7 | ".git",
8 | ".mypy_cache",
9 | ".venv",
10 | ".venv-*",
11 | "branch-*",
12 | "stubs",
13 | "tests/files",
14 | "typings",
15 | "vendor",
16 | "venv",
17 | "venv-*",
18 | ]
19 |
20 | [tool.ruff.lint]
21 | select = ["E", "F", "W", "I", "UP"]
22 | ignore = ["E203"]
23 |
--------------------------------------------------------------------------------
/Packages/Diff/Diff.sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/3/syntax.html
4 | name: Diff
5 | version: 2
6 | file_extensions:
7 | - diff
8 | - patch
9 | - rej # patch failing details
10 | first_line_match: |-
11 | (?x)^
12 | (===\ modified\ file
13 | |==== \s* // .+ \s - \s .+ \s+ ====
14 | |Index:[ ]
15 | |---\ [^%]
16 | |\*\*\*.*\d{4}\s*$
17 | |\d+(,\d+)* (a|d|c) \d+(,\d+)* $
18 | |diff\ --git[ ]
19 | )
20 |
21 | scope: source.diff
22 | contexts:
23 | main:
24 | - match: ^((\*{15})|(={67})|(-{3}))$\n?
25 | scope: meta.separator.diff
26 | captures:
27 | 1: punctuation.definition.separator.diff
28 | - match: ^\d+(,\d+)*(a|d|c)\d+(,\d+)*$\n?
29 | scope: meta.diff.range.normal meta.range.normal.diff
30 | - match: ^(@@)\s*(.+?)\s*(@@)\s*(.*?)\s*$\n?
31 | scope: meta.diff.range.unified meta.range.unified.diff
32 | captures:
33 | 1: punctuation.definition.range.diff
34 | 2: meta.toc-list.line-number.diff
35 | 3: punctuation.definition.range.diff
36 | 4: entity.name.section.diff
37 | - match: ^(((\-{3}) .+ (\-{4}))|((\*{3}) .+ (\*{4})))$\n?
38 | scope: meta.diff.range.context meta.range.context.diff
39 | captures:
40 | 3: punctuation.definition.range.diff
41 | 4: punctuation.definition.range.diff
42 | 6: punctuation.definition.range.diff
43 | 7: punctuation.definition.range.diff
44 | - match: (^(((-{3}) .+)|((\*{3}) .+))$\n?|^(={4}) .+(?= - ))
45 | scope: meta.diff.header.from-file meta.header.from-file.diff
46 | captures:
47 | 4: punctuation.definition.from-file.diff
48 | 6: punctuation.definition.from-file.diff
49 | 7: punctuation.definition.from-file.diff
50 | - match: (^(\+{3}) .+$\n?| (-) .* (={4})$\n?)
51 | scope: meta.diff.header.to-file meta.header.to-file.diff
52 | captures:
53 | 2: punctuation.definition.to-file.diff
54 | 3: punctuation.definition.to-file.diff
55 | 4: punctuation.definition.to-file.diff
56 | - match: ^(((>)( .*)?)|((\+).*))$\n?
57 | scope: markup.inserted.diff
58 | captures:
59 | 3: punctuation.definition.inserted.diff
60 | 6: punctuation.definition.inserted.diff
61 | - match: ^(!).*$\n?
62 | scope: markup.changed.diff
63 | captures:
64 | 1: punctuation.definition.changed.diff
65 | - match: ^(((<)( .*)?)|((-).*))$\n?
66 | scope: markup.deleted.diff
67 | captures:
68 | 3: punctuation.definition.deleted.diff
69 | 6: punctuation.definition.deleted.diff
70 | - match: ^Index(:) (.+)$\n?
71 | scope: meta.diff.index meta.index.diff
72 | captures:
73 | 1: punctuation.separator.key-value.diff
74 | 2: meta.toc-list.file-name.diff
75 |
76 | # git stat
77 | - match: '^\s*((?:.(?! => ))*.)(?: (=>) (.*))?\s+(\|)'
78 | captures:
79 | 1: string.filename.diff
80 | 2: punctuation.definition.separator.diff
81 | 3: string.filename.diff
82 | 4: punctuation.definition.separator.diff
83 | push:
84 | - meta_scope: meta.diff.stat
85 | - match: ([0-9]+)\s+([+]*)([-]*)
86 | captures:
87 | 1: constant.numeric.diff
88 | 2: punctuation.definition.inserted.diff
89 | 3: punctuation.definition.deleted.diff
90 | - match: (Bin)\s+([0-9]+)\s+(->)\s+([0-9]+)\s+(\w*)
91 | captures:
92 | 1: constant.file-type.diff
93 | 2: constant.numeric.diff
94 | 3: punctuation.definition.separator.diff
95 | 4: constant.numeric.diff
96 | 5: support.constant.unit.diff
97 | - match: (?=$|\S)
98 | pop: 1
99 |
100 | # diff --git a/foo.txt b/foo.txt
101 | - match: diff\s+--git\s+(a/)(.*)(b/)(.*)\n?
102 | scope: meta.header.from-to-file.diff
103 | captures:
104 | 1: punctuation.definition.separator.diff
105 | 2: string.filename.diff
106 | 3: punctuation.definition.separator.diff
107 | 4: string.filename.diff
108 |
--------------------------------------------------------------------------------
/Packages/DoxyDoxygen (evolution)/INI.sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: INI
5 | scope: source.ini.doxydoxygen
6 | hidden: true
7 |
8 | contexts:
9 | main: []
10 |
--------------------------------------------------------------------------------
/Packages/DoxyDoxygen (evolution)/WTF.txt:
--------------------------------------------------------------------------------
1 | INI source: https://github.com/jwortmann/ini-syntax/blob/master/INI.sublime-syntax
2 | issue: https://github.com/20Tauri/DoxyDoxygen/issues/150
3 |
--------------------------------------------------------------------------------
/Packages/HyperClick/html/ui.css:
--------------------------------------------------------------------------------
1 | html {
2 | margin: 0;
3 | padding: 0;
4 | }
5 |
6 | #hyperClick {
7 | background-color: var(--background);
8 | color: var(--foreground);
9 | margin: 0;
10 | padding: 0;
11 | font-size: 0.8rem; /* added by jfcherng */
12 | }
13 |
14 | #hyperClick a {
15 | text-decoration: none;
16 | color: var(--background);
17 | }
18 |
19 | .label {
20 | border-radius: 3px;
21 | color: var(--background);
22 | background-color: var(--foreground);
23 | padding: 0 5px;
24 | }
25 |
26 | .label-success {
27 | background-color: var(--greenish);
28 | }
29 |
30 | .label-error {
31 | background-color: var(--redish);
32 | }
33 |
34 | .label-warning {
35 | background-color: var(--orangish);
36 | }
37 |
38 | .label-info {
39 | background-color: var(--bluish);
40 | }
41 |
--------------------------------------------------------------------------------
/Packages/JavaScript/Indentation Rules.tmPreferences:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | scope
6 | source.js, source.ts, source.jsx, source.tsx
7 | settings
8 |
9 | decreaseIndentPattern
10 | ^(.*\*/)?\s*[}\]].*$
11 | increaseIndentPattern
12 | ^.*[{\[][^}"'\]]*$
13 | bracketIndentNextLinePattern
14 | (?x)
15 | ^ \s* \b(if|while|else)\b [^;]* $
16 | | ^ \s* \b(for)\b .* $
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Packages/JavaScript/JavaScript.sublime-build:
--------------------------------------------------------------------------------
1 | {
2 | "cmd": ["node", "${file}"],
3 | "selector": "source.js",
4 | "working_dir": "${file_path}",
5 | // usually we dont have stdio to our JS scripts while doing test
6 | // "target": "console_exec",
7 | "variants": [
8 | {
9 | "target": "console_exec",
10 | "cmd": ["closure-compiler.jar", "--js", "${file}", "--js_output_file", "${file_base_name}.min.js"],
11 | "name": "Minify (Closure Compiler)"
12 | }
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/Packages/JavaScript/Snippets/arrow-function.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | $0]]>
3 | fn
4 | (source.js | source.jsx | source.ts | source.tsx) - string - comment
5 | arrow function
6 |
7 |
--------------------------------------------------------------------------------
/Packages/LSP/icons/error-src.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/LSP/icons/error-src.png
--------------------------------------------------------------------------------
/Packages/LSP/icons/error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/LSP/icons/error.png
--------------------------------------------------------------------------------
/Packages/LSP/icons/error@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/LSP/icons/error@2x.png
--------------------------------------------------------------------------------
/Packages/LSP/icons/error@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/LSP/icons/error@3x.png
--------------------------------------------------------------------------------
/Packages/LSP/icons/info-src.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/LSP/icons/info-src.png
--------------------------------------------------------------------------------
/Packages/LSP/icons/info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/LSP/icons/info.png
--------------------------------------------------------------------------------
/Packages/LSP/icons/info@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/LSP/icons/info@2x.png
--------------------------------------------------------------------------------
/Packages/LSP/icons/info@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/LSP/icons/info@3x.png
--------------------------------------------------------------------------------
/Packages/LSP/icons/warning-src.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/LSP/icons/warning-src.png
--------------------------------------------------------------------------------
/Packages/LSP/icons/warning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/LSP/icons/warning.png
--------------------------------------------------------------------------------
/Packages/LSP/icons/warning@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/LSP/icons/warning@2x.png
--------------------------------------------------------------------------------
/Packages/LSP/icons/warning@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/LSP/icons/warning@3x.png
--------------------------------------------------------------------------------
/Packages/Language - English/download.txt:
--------------------------------------------------------------------------------
1 | https://sourceforge.net/projects/wordlist/files/speller/
2 |
--------------------------------------------------------------------------------
/Packages/Language - English/en_US-large.aff:
--------------------------------------------------------------------------------
1 | SET UTF-8
2 | TRY esianrtolcdugmphbyfvkwzESIANRTOLCDUGMPHBYFVKWZ'
3 | ICONV 1
4 | ICONV ’ '
5 | NOSUGGEST !
6 |
7 | # ordinal numbers
8 | COMPOUNDMIN 1
9 | # only in compounds: 1th, 2th, 3th
10 | ONLYINCOMPOUND c
11 | # compound rules:
12 | # 1. [0-9]*1[0-9]th (10th, 11th, 12th, 56714th, etc.)
13 | # 2. [0-9]*[02-9](1st|2nd|3rd|[4-9]th) (21st, 22nd, 123rd, 1234th, etc.)
14 | COMPOUNDRULE 2
15 | COMPOUNDRULE n*1t
16 | COMPOUNDRULE n*mp
17 | WORDCHARS 0123456789
18 |
19 | PFX A Y 1
20 | PFX A 0 re .
21 |
22 | PFX I Y 1
23 | PFX I 0 in .
24 |
25 | PFX U Y 1
26 | PFX U 0 un .
27 |
28 | PFX C Y 1
29 | PFX C 0 de .
30 |
31 | PFX E Y 1
32 | PFX E 0 dis .
33 |
34 | PFX F Y 1
35 | PFX F 0 con .
36 |
37 | PFX K Y 1
38 | PFX K 0 pro .
39 |
40 | SFX V N 2
41 | SFX V e ive e
42 | SFX V 0 ive [^e]
43 |
44 | SFX N Y 3
45 | SFX N e ion e
46 | SFX N y ication y
47 | SFX N 0 en [^ey]
48 |
49 | SFX X Y 3
50 | SFX X e ions e
51 | SFX X y ications y
52 | SFX X 0 ens [^ey]
53 |
54 | SFX H N 2
55 | SFX H y ieth y
56 | SFX H 0 th [^y]
57 |
58 | SFX Y Y 1
59 | SFX Y 0 ly .
60 |
61 | SFX G Y 2
62 | SFX G e ing e
63 | SFX G 0 ing [^e]
64 |
65 | SFX J Y 2
66 | SFX J e ings e
67 | SFX J 0 ings [^e]
68 |
69 | SFX D Y 4
70 | SFX D 0 d e
71 | SFX D y ied [^aeiou]y
72 | SFX D 0 ed [^ey]
73 | SFX D 0 ed [aeiou]y
74 |
75 | SFX T N 4
76 | SFX T 0 st e
77 | SFX T y iest [^aeiou]y
78 | SFX T 0 est [aeiou]y
79 | SFX T 0 est [^ey]
80 |
81 | SFX R Y 4
82 | SFX R 0 r e
83 | SFX R y ier [^aeiou]y
84 | SFX R 0 er [aeiou]y
85 | SFX R 0 er [^ey]
86 |
87 | SFX Z Y 4
88 | SFX Z 0 rs e
89 | SFX Z y iers [^aeiou]y
90 | SFX Z 0 ers [aeiou]y
91 | SFX Z 0 ers [^ey]
92 |
93 | SFX S Y 4
94 | SFX S y ies [^aeiou]y
95 | SFX S 0 s [aeiou]y
96 | SFX S 0 es [sxzh]
97 | SFX S 0 s [^sxzhy]
98 |
99 | SFX P Y 3
100 | SFX P y iness [^aeiou]y
101 | SFX P 0 ness [aeiou]y
102 | SFX P 0 ness [^y]
103 |
104 | SFX M Y 1
105 | SFX M 0 's .
106 |
107 | SFX B Y 3
108 | SFX B 0 able [^aeiou]
109 | SFX B 0 able ee
110 | SFX B e able [^aeiou]e
111 |
112 | SFX L Y 1
113 | SFX L 0 ment .
114 |
115 | REP 90
116 | REP a ei
117 | REP ei a
118 | REP a ey
119 | REP ey a
120 | REP ai ie
121 | REP ie ai
122 | REP alot a_lot
123 | REP are air
124 | REP are ear
125 | REP are eir
126 | REP air are
127 | REP air ere
128 | REP ere air
129 | REP ere ear
130 | REP ere eir
131 | REP ear are
132 | REP ear air
133 | REP ear ere
134 | REP eir are
135 | REP eir ere
136 | REP ch te
137 | REP te ch
138 | REP ch ti
139 | REP ti ch
140 | REP ch tu
141 | REP tu ch
142 | REP ch s
143 | REP s ch
144 | REP ch k
145 | REP k ch
146 | REP f ph
147 | REP ph f
148 | REP gh f
149 | REP f gh
150 | REP i igh
151 | REP igh i
152 | REP i uy
153 | REP uy i
154 | REP i ee
155 | REP ee i
156 | REP j di
157 | REP di j
158 | REP j gg
159 | REP gg j
160 | REP j ge
161 | REP ge j
162 | REP s ti
163 | REP ti s
164 | REP s ci
165 | REP ci s
166 | REP k cc
167 | REP cc k
168 | REP k qu
169 | REP qu k
170 | REP kw qu
171 | REP o eau
172 | REP eau o
173 | REP o ew
174 | REP ew o
175 | REP oo ew
176 | REP ew oo
177 | REP ew ui
178 | REP ui ew
179 | REP oo ui
180 | REP ui oo
181 | REP ew u
182 | REP u ew
183 | REP oo u
184 | REP u oo
185 | REP u oe
186 | REP oe u
187 | REP u ieu
188 | REP ieu u
189 | REP ue ew
190 | REP ew ue
191 | REP uff ough
192 | REP oo ieu
193 | REP ieu oo
194 | REP ier ear
195 | REP ear ier
196 | REP ear air
197 | REP air ear
198 | REP w qu
199 | REP qu w
200 | REP z ss
201 | REP ss z
202 | REP shun tion
203 | REP shun sion
204 | REP shun cion
205 | REP size cise
206 |
--------------------------------------------------------------------------------
/Packages/LiveReload-plugins/MarkdownLiveReload.py:
--------------------------------------------------------------------------------
1 | import sublime
2 | import sublime_plugin
3 | import os
4 | import sys
5 |
6 | # fix for import order
7 | sys.path.append(os.path.join(sublime.packages_path(), "LiveReload"))
8 | LiveReload = __import__("LiveReload")
9 | sys.path.remove(os.path.join(sublime.packages_path(), "LiveReload"))
10 |
11 |
12 | class MarkdownLiveReload(LiveReload.Plugin, sublime_plugin.EventListener):
13 | title = "Markdown Preview"
14 | description = "Generate preview in real-time"
15 | file_types = ".md,.markdown,.mdown"
16 |
17 | def on_post_save(self, view):
18 | self.refresh(os.path.basename(view.file_name()))
19 |
20 |
21 | """
22 | Plugins for LiveReload should provide the following attributes:
23 |
24 | description (string) describing your plugin
25 | title (string) naming your plugin
26 | file_types (string) file_types which should trigger refresh for this plugin
27 |
28 | Public methods:
29 |
30 | self.refresh(filename, settings):
31 |
32 | (string) filename; file to refresh (.css, .js, jpg ...)
33 | (object) settings; how to reload(entire page or just parts)
34 |
35 | self.sendCommand(plugin, command, settings):
36 |
37 | (instance) plugin; instance
38 | (string) command; to trigger in livereload.js (refresh, info, or one of the plugins)
39 | (object) settings; additional data that gets passed to command (should be json parsable)
40 |
41 | self.addResource(req_path, buffer, content_type='text/plain'):
42 |
43 | (string) req_path; browser path to file you want to serve. Ex: /yourfile.js
44 | (string/file) buffer; string or file instance to file you want to serve
45 | (string) content_type; Mime-type of file you want to serve
46 |
47 | self.listClients():
48 |
49 | returns list with all connected clients with their req_url and origin
50 |
51 | """
52 |
--------------------------------------------------------------------------------
/Packages/Makefile/Make (self).sublime-build:
--------------------------------------------------------------------------------
1 | {
2 | "shell_cmd": "make",
3 | "file_regex": "^(..[^:\n]*):([0-9]+):?([0-9]+)?:? (.*)$",
4 | "working_dir": "${file_path}",
5 | "selector": "source.makefile",
6 | "syntax": "Packages/Makefile/Make Output.sublime-syntax",
7 | "keyfiles": ["Makefile", "makefile"],
8 |
9 | "variants":
10 | [
11 | {
12 | "name": "Clean",
13 | "shell_cmd": "make clean"
14 | }
15 | ]
16 | }
17 |
--------------------------------------------------------------------------------
/Packages/Makefile/snippets/dot-phony.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 |
3 | .phony
4 | source.makefile - meta.function
5 |
6 |
--------------------------------------------------------------------------------
/Packages/Markdown/.python-version:
--------------------------------------------------------------------------------
1 | 3.8
2 |
--------------------------------------------------------------------------------
/Packages/Markdown/Snippets/details.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | details & summary
3 | ${1:$2}
4 | $3
5 | ]]>
6 | details
7 | text.html.markdown - (meta.image | meta.link)
8 |
9 |
--------------------------------------------------------------------------------
/Packages/Markdown/Symbol List - Heading.tmPreferences:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | scope
5 | text.html.markdown markup.heading - meta.whitespace.newline.markdown
6 | settings
7 |
8 | showInSymbolList
9 | 1
10 | symbolTransformation
11 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/Packages/PHP/Snippets/Constructor.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 |
6 | con
7 | source.php - string - comment
8 | function __construct
9 |
10 |
--------------------------------------------------------------------------------
/Packages/PHP/Snippets/class-{-}.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 |
8 | class
9 | source.php - string - comment
10 | class …
11 |
12 |
--------------------------------------------------------------------------------
/Packages/PHP/Snippets/interface-{-}.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 |
8 | interface
9 | source.php - string - comment
10 | interface …
11 |
12 |
--------------------------------------------------------------------------------
/Packages/PHP/Snippets/trait-{-}.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 |
8 | trait
9 | source.php - string - comment
10 | trait …
11 |
12 |
--------------------------------------------------------------------------------
/Packages/PHP/macros/append-comma-newline.sublime-macro:
--------------------------------------------------------------------------------
1 | [
2 | {"command": "move_to", "args": {"to": "hardeol"}},
3 | {"command": "insert", "args": {"characters": ",\n"}}
4 | ]
5 |
--------------------------------------------------------------------------------
/Packages/PHP/macros/append-semicolon-newline.sublime-macro:
--------------------------------------------------------------------------------
1 | [
2 | {"command": "move_to", "args": {"to": "hardeol"}},
3 | {"command": "insert", "args": {"characters": ";\n"}}
4 | ]
5 |
--------------------------------------------------------------------------------
/Packages/PHP/macros/append-semicolon.sublime-macro:
--------------------------------------------------------------------------------
1 | [
2 | {"command": "move_to", "args": {"to": "hardeol"}},
3 | {"command": "insert", "args": {"characters": ";"}}
4 | ]
5 |
--------------------------------------------------------------------------------
/Packages/PHP/macros/auto-array-equals-gt.sublime-macro:
--------------------------------------------------------------------------------
1 | [
2 | {"command": "move_to", "args": {"to": "hardeol"}},
3 | {"command": "insert", "args": {"characters": " => "}}
4 | ]
5 |
--------------------------------------------------------------------------------
/Packages/PHP/macros/auto-pair-braces-current-line.sublime-macro:
--------------------------------------------------------------------------------
1 | [
2 | {"command": "move_to", "args": {"to": "hardeol"}},
3 | {"command": "insert", "args": {"characters": " {\n\n}"}},
4 | {"command": "move", "args": {"by": "lines", "forward": false} },
5 | {"command": "reindent", "args": {"single_line": true}}
6 | ]
7 |
--------------------------------------------------------------------------------
/Packages/PHP/macros/auto-pair-braces-next-line.sublime-macro:
--------------------------------------------------------------------------------
1 | [
2 | {"command": "move_to", "args": {"to": "hardeol"}},
3 | {"command": "insert", "args": {"characters": "\n{}"}},
4 | {"command": "move", "args": {"by": "characters", "forward": false} },
5 | {"command": "insert", "args": {"characters": "\n\n"}},
6 | {"command": "move", "args": {"by": "lines", "forward": false} },
7 | {"command": "reindent", "args": {"single_line": true}}
8 | ]
9 |
--------------------------------------------------------------------------------
/Packages/PHP/macros/wrap-newlines.sublime-macro:
--------------------------------------------------------------------------------
1 | [
2 | {"command": "insert", "args": {"characters": "\n\n"} },
3 | {"command": "move", "args": {"by": "lines", "forward": false} },
4 | {"command": "move_to", "args": {"to": "hardeol", "extend": false} },
5 | {"command": "reindent", "args": {"single_line": true} }
6 | ]
7 |
--------------------------------------------------------------------------------
/Packages/Python/Python.sublime-build:
--------------------------------------------------------------------------------
1 | {
2 | "cmd": ["python", "-u", "${file}"],
3 | "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
4 | "selector": "source.python",
5 | "target": "console_exec",
6 | "env": { "PYTHONIOENCODING": "utf-8" },
7 | "variants": [
8 | {
9 | "name": "Syntax Check",
10 | "cmd": ["python", "-m", "py_compile", "${file}"]
11 | }
12 | ]
13 | }
14 |
--------------------------------------------------------------------------------
/Packages/ShellScript/ShellScript.sublime-build:
--------------------------------------------------------------------------------
1 | {
2 | "shell_cmd": "./$file_name",
3 | "working_dir": "$file_path",
4 |
5 | "target": "console_exec",
6 | "selector": "source.shell",
7 | "word_wrap": false,
8 |
9 | "windows": {
10 | // Try to run via MSYS2 shell on Windows
11 | "cmd": ["sh", "$file_name"]
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Packages/Text/Plain text.tmLanguage:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | fileTypes
5 |
6 | txt
7 |
8 | name
9 | Plain Text
10 | patterns
11 |
12 |
13 | name
14 | meta.text.cjk
15 | begin
16 |
17 | (?x)(?:
18 | [\x{2E00}-\x{9FFF}] |
19 | [\x{A960}-\x{A97F}] |
20 | [\x{AC00}-\x{D7FF}] |
21 | [\x{F900}-\x{FAFF}] |
22 | [\x{FE30}-\x{FE6F}] |
23 | [\x{20000}-\x{3134F}])+
24 |
25 | end
26 |
27 |
28 |
29 | scopeName
30 | text.plain
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Packages/User/.gitignore:
--------------------------------------------------------------------------------
1 | # plugin: ColorHelper
2 | color_helper.palettes
3 |
4 | # plugin: OverrideAudit
5 | OverrideAudit.status
6 |
7 | # plugin: Package Control
8 | *.user-ca-bundle
9 |
10 | # plugin: ProjectManager
11 | /Projects/
12 |
--------------------------------------------------------------------------------
/Packages/User/AceJump.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | // Characters to be used as labels in order they'll appear
3 | "labels": "abcdefghjkmnpqrstuvwxyzABCDEFGHKLMNPQRSTUVWXYZ0123456789",
4 |
5 | // Syntax highlighting scope for the labels
6 | "labels_scope": "invalid",
7 |
8 | // Controls the color of inactive carets when inputting the character.
9 | "inactive_carets_scope": "text.plain",
10 |
11 | // valid values: 1 (replace char), 2 (inline phantom)
12 | "hinting_mode": 2,
13 |
14 | // the CSS applies to phantoms when highlight_mode is 2 (inline phantom)
15 | // @see https://www.sublimetext.com/docs/minihtml.html#css
16 | "phantom_css": "html, body { padding: 0; margin: 0; } .label { font-weight: 700; background-color: var(--foreground); color: var(--background); padding: 0 0.25em; line-height: 1; font-size: 0.98em; }",
17 | }
18 |
--------------------------------------------------------------------------------
/Packages/User/AutoSetSyntax.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "run_on_startup_views": true,
3 | "trim_suffixes_auto": true,
4 | "user_syntax_rules": [
5 | {
6 | "syntaxes": ["scope:text.html.markdown"],
7 | "selector": "text.plain",
8 | "rules": [
9 | {
10 | "constraint": "is_name",
11 | "args": ["TODO", "README", "CHANGELOG"]
12 | }
13 | ]
14 | },
15 | {
16 | "comment": "Singularity definition files",
17 | "syntaxes": ["scope:source.singularity_definition"],
18 | "selector": "text.plain | source.shell",
19 | "rules": [
20 | {
21 | "constraint": "name_contains_regex",
22 | "args": ["^Singularity[-_.@]"]
23 | }
24 | ]
25 | },
26 | ],
27 | "magika.enabled": true,
28 | }
29 |
--------------------------------------------------------------------------------
/Packages/User/Batch File.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "default_line_ending": "windows",
3 | }
4 |
--------------------------------------------------------------------------------
/Packages/User/C++.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "extensions":
3 | [
4 | "h",
5 | "hlsl"
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/Packages/User/CSS.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "disable_default_completions": true,
3 | "extensions":
4 | [
5 | "css.twig"
6 | ],
7 | // "-" is not a word breaker
8 | "word_separators": "./\\()\"':,.;<>~!@#$%^&*|+=[]{}`~?",
9 | "tab_size": 2,
10 | }
11 |
--------------------------------------------------------------------------------
/Packages/User/Console Input Widget.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "auto_match_enabled": true,
3 | "match_selection": true,
4 | }
5 |
--------------------------------------------------------------------------------
/Packages/User/Diff.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "trim_trailing_white_space_on_save": "none",
3 | }
4 |
--------------------------------------------------------------------------------
/Packages/User/Doxy.sublime-settings:
--------------------------------------------------------------------------------
1 | // Settings in here override those in "${packages}/DoxyDoxygen (evolution)/Doxy.sublime-settings",
2 | // and are overridden in turn by syntax-specific settings.
3 | {
4 | // If true, the primitives "Boolean" and "Integer" are shortened to "Bool" and "Int"
5 | //
6 | // Some tools, like PHP CODE SNIFFER, may require this option to work.
7 | "phpdoc_short_primitives": true,
8 |
9 | // "min_spaces_between_columns": [ 1, 1 ],
10 | // "preferred_tabs_sizes": [ 1, 2 ],
11 |
12 | "group_tabs_sizes_by": "section",
13 | }
14 |
--------------------------------------------------------------------------------
/Packages/User/Emmet.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "abbreviation_preview": "markup",
3 | "popup_css": "*{ font-size: 1rem; }",
4 |
5 | // no telemetry
6 | "uid": "thank-but-dont-track-me",
7 | "telemetry": false,
8 | }
9 |
--------------------------------------------------------------------------------
/Packages/User/FileManager.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "reveal_in_sidebar": true,
3 | // we prefer the "Terminal" plugin
4 | "show_open_terminal_command": false,
5 | }
6 |
--------------------------------------------------------------------------------
/Packages/User/Find Results.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "color_scheme": "Packages/my_theme/Find Results.hidden-color-scheme",
3 | }
4 |
--------------------------------------------------------------------------------
/Packages/User/Fmt.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "rules": [
3 | // biome (https://biomejs.dev/reference/cli/#biome-format)
4 | {
5 | "selector": "source.js",
6 | "cmd": [
7 | "biome",
8 | "format",
9 | "--files-max-size=31457280", // 30 MB
10 | "--indent-style=space",
11 | "--indent-width=2",
12 | "--line-ending=lf",
13 | "--line-width=120",
14 | "--semicolons=always",
15 | "--trailing-comma=all",
16 | // ...
17 | "--stdin-file-path=stdin.js",
18 | ],
19 | "format_on_save": false,
20 | "merge_type": "replace",
21 | },
22 | {
23 | "selector": "source.jsx",
24 | "cmd": [
25 | "biome",
26 | "format",
27 | "--files-max-size=31457280", // 30 MB
28 | "--indent-style=space",
29 | "--indent-width=2",
30 | "--line-ending=lf",
31 | "--line-width=120",
32 | "--semicolons=always",
33 | "--trailing-comma=all",
34 | // ...
35 | "--stdin-file-path=stdin.jsx",
36 | ],
37 | "format_on_save": false,
38 | "merge_type": "diff",
39 | },
40 | {
41 | "selector": "source.ts",
42 | "cmd": [
43 | "biome",
44 | "format",
45 | "--files-max-size=31457280", // 30 MB
46 | "--indent-style=space",
47 | "--indent-width=2",
48 | "--line-ending=lf",
49 | "--line-width=120",
50 | "--semicolons=always",
51 | "--trailing-comma=all",
52 | // ...
53 | "--stdin-file-path=stdin.ts",
54 | ],
55 | "format_on_save": false,
56 | "merge_type": "diff",
57 | },
58 | {
59 | "selector": "source.tsx",
60 | "cmd": [
61 | "biome",
62 | "format",
63 | "--files-max-size=31457280", // 30 MB
64 | "--indent-style=space",
65 | "--indent-width=2",
66 | "--line-ending=lf",
67 | "--line-width=120",
68 | "--semicolons=always",
69 | "--trailing-comma=all",
70 | // ...
71 | "--stdin-file-path=stdin.tsx",
72 | ],
73 | "format_on_save": false,
74 | "merge_type": "diff",
75 | },
76 | // ruff
77 | {
78 | "selector": "source.python",
79 | "cmd": [
80 | "ruff",
81 | "format",
82 | "--isolated",
83 | "--line-length=120",
84 | "--preview",
85 | "--stdin-filename=stdin.py",
86 | "--target-version=py311",
87 | ],
88 | "format_on_save": false,
89 | "merge_type": "replace",
90 | },
91 | // shfmt
92 | {
93 | "selector": "source.shell.bash",
94 | "cmd": [
95 | "shfmt",
96 | "--case-indent",
97 | "--indent=4",
98 | "--simplify",
99 | ],
100 | "format_on_save": false,
101 | "merge_type": "replace",
102 | },
103 | ],
104 | }
105 |
--------------------------------------------------------------------------------
/Packages/User/Go.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "tab_size": 4,
3 | "translate_tabs_to_spaces": false,
4 | }
5 |
--------------------------------------------------------------------------------
/Packages/User/HTML.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | // "-" is not a word breaker
3 | "word_separators": "./\\()\"':,.;<>~!@#$%^&*|+=[]{}`~?",
4 | "tab_size": 2,
5 | // disable built-in tag autocompletion?
6 | "disable_default_completions": false,
7 | // "default_completions_selector": "",
8 | }
9 |
--------------------------------------------------------------------------------
/Packages/User/HyperClick.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "annotation_found_text": "→",
3 | "annotation_not_found_text": "X",
4 | "annotations_enabled": true,
5 | "scopes": {
6 | "source.js | source.jsx | source.ts | source.tsx": {
7 | "regexes": [
8 | "^import\\s+(?:.+?\\s+from\\s+)?['\"]([^'\"]+)['\"]",
9 | "^from\\s+['\"]([^'\"]+)['\"]",
10 | ".*require\\(['\"]([^'\"]+)['\"]",
11 | ],
12 | "extensions": [
13 | "ts",
14 | "js",
15 | "tsx",
16 | "jsx",
17 | "vue",
18 | "mjs",
19 | "svelte",
20 | ],
21 | "vendor_dirs": [
22 | "node_modules",
23 | ],
24 | "lookup_paths": [],
25 | "aliases": {
26 | "@assets": "assets",
27 | },
28 | },
29 | "source.sass | source.scss": {
30 | "regexes": [
31 | "^@import\\s+['\"]([^'\"]+)['\"]",
32 | "^@import\\s+url\\(['\"]([^'\"]+)['\"]",
33 | "^@import\\s+\\(?.*\\)?\\s*['\"]([^'\"]+)['\"]",
34 | ],
35 | "extensions": [
36 | "scss",
37 | "sass",
38 | ],
39 | "vendor_dirs": [
40 | "node_modules",
41 | ],
42 | "aliases": {
43 | "@assets": "assets",
44 | },
45 | },
46 | "source.css": {
47 | "regexes": [
48 | "^@import\\s+['\"]([^'\"]+)['\"]",
49 | "^@import\\s+url\\(['\"]([^'\"]+)['\"]",
50 | ],
51 | "extensions": [
52 | "css",
53 | ],
54 | },
55 | "source.php": {
56 | "regexes": [
57 | // jfcherng
58 | ".*\\b(?:include|require)(?:_once)?\\s*\\(?['\"]([^'\"]+)['\"]\\)?;?$",
59 | // Symfony render Twig templates in PHP
60 | ".*['\"]([^'\"]+\\.twig(?:\\.[^'\"]*)?)['\"]",
61 | ],
62 | "extensions": [
63 | "php",
64 | "php5",
65 | "php7",
66 | "php8",
67 | ],
68 | "lookup_paths": [
69 | "templates",
70 | "views",
71 | ],
72 | },
73 | "text.jinja": {
74 | "regexes": [
75 | // jfcherng
76 | "^{%\\s+(?:extends|include|import)\\s+['\"]([^'\"]+)['\"]",
77 | "^{%\\s+from\\s+['\"]([^'\"]+)['\"]",
78 | ],
79 | },
80 | "text.html.twig": {
81 | "regexes": [
82 | // jfcherng
83 | "^{%\\s+(?:embed|extends|include|import|use)\\s+['\"]([^'\"]+)['\"]",
84 | "^{%\\s+from\\s+['\"]([^'\"]+)['\"]",
85 | "^{%\\s+.+?\\s+with\\s+['\"]([^'\"]+)['\"]",
86 | ],
87 | "extensions": [
88 | "twig"
89 | ],
90 | "lookup_paths": [
91 | "templates",
92 | "views",
93 | ],
94 | },
95 | // jfcherng
96 | "text.html.basic": {
97 | "regexes": [
98 | ".*\\b(?:href|src)=['\"]([^'\"?]+)",
99 | ],
100 | "extensions": ["htm", "html"]
101 | },
102 | "text.restructuredtext": {
103 | "regexes": [
104 | "^\\s*\\.\\. include::\\s+(.+)$",
105 | ],
106 | "extensions": [
107 | "rst",
108 | ],
109 | },
110 | },
111 | }
112 |
--------------------------------------------------------------------------------
/Packages/User/JavaScript.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "tab_size": 2,
3 | }
4 |
--------------------------------------------------------------------------------
/Packages/User/Jinja.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "tab_size": 2,
3 | }
4 |
--------------------------------------------------------------------------------
/Packages/User/LESS.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | // "-" is not a word breaker
3 | "word_separators": "./\\()\"':,.;<>~!@#$%^&*|+=[]{}`~?",
4 | "tab_size": 2,
5 | }
6 |
--------------------------------------------------------------------------------
/Packages/User/LSP-clangd.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "initializationOptions": {
3 | // @see https://clangd.llvm.org/extensions#compilation-commands
4 | // Controls the flags used when no specific compile command is found.
5 | // The compile command will be approximately clang $FILE $fallbackFlags in this case.
6 | // "fallbackFlags": ["-std=c++20"],
7 | "clangd.clang-tidy": true,
8 | },
9 | }
10 |
--------------------------------------------------------------------------------
/Packages/User/LSP-copilot.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "settings": {
3 | "auto_ask_completions": true,
4 | "commit_completion_on_tab": false,
5 | "hook_to_auto_complete_command": true,
6 | // "completion_style": "phantom",
7 | },
8 | }
9 |
--------------------------------------------------------------------------------
/Packages/User/LSP-css.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "disabled_capabilities": {
3 | // prefer the ColorHelper plugin
4 | "colorProvider": true,
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/Packages/User/LSP-dockerfile.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "selector": "source.dockerfile | source.containerfile"
3 | }
4 |
--------------------------------------------------------------------------------
/Packages/User/LSP-html.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "disabled_capabilities": {
3 | // prefer the ColorHelper plugin
4 | "colorProvider": true,
5 | },
6 | // ST4 configuration
7 | "selector": "text.html.basic | text.html.twig | embedding.php | text.jinja",
8 | }
9 |
--------------------------------------------------------------------------------
/Packages/User/LSP-intelephense.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "auto_complete_selector": "punctuation.accessor | punctuation.definition.variable | punctuation.separator.namespace | punctuation.definition.tag.begin",
3 | "initializationOptions": {
4 | "clearCache": false,
5 | "storagePath": "${home}/.intelephense",
6 | "globalStoragePath": "${home}/.intelephense",
7 | // To use the licenceKey,
8 | // you can also write it to "YOUR_HOME_DIR/intelephense/licence.txt"
9 | // and comment out the following property
10 | "licenceKey": "${packages}/User/intelephense.sublime-license",
11 | },
12 | // @see https://github.com/bmewburn/vscode-intelephense/blob/master/package.json
13 | "settings": {
14 | "intelephense.files.associations": [
15 | // default
16 | "*.php",
17 | "*.phtml",
18 | // my own
19 | "*.inc",
20 | ],
21 | "intelephense.files.exclude": [
22 | // default
23 | "**/.git/**",
24 | "**/.svn/**",
25 | "**/.hg/**",
26 | "**/CVS/**",
27 | "**/.DS_Store/**",
28 | "**/node_modules/**",
29 | "**/bower_components/**",
30 | "**/vendor/**/{Tests,tests}/**",
31 | "**/.history/**",
32 | "**/vendor/**/vendor/**",
33 | // my own
34 | "**/branch-*/**",
35 | "**/vendor/**/{Example,example,Examples,examples}/**"
36 | ],
37 | },
38 | }
39 |
--------------------------------------------------------------------------------
/Packages/User/LSP-json.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "initializationOptions": {
3 | "provideFormatter": true,
4 | },
5 | "settings": {
6 | "json.format.enable": true,
7 | },
8 | "disabled_capabilities": {
9 | // prefer the ColorHelper plugin
10 | "colorProvider": true,
11 | },
12 | }
13 |
--------------------------------------------------------------------------------
/Packages/User/LSP-pylance.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | // if you are developing this plugin...
3 | "developing": true,
4 | //////////////////
5 | // LSP settings //
6 | //////////////////
7 | "disabled_capabilities": {
8 | // set to true if you don't want semantic highlighting
9 | "semanticTokensProvider": true,
10 | },
11 | "settings": {
12 | // Support inlay hints.
13 | "python.analysis.inlayHints.callArgumentNames": "partial",
14 | // Use a predefined setup from this plugin, valid values are:
15 | // - "": An empty string does nothing.
16 | // - "sublime_text": Suitable for people who are developing ST Python plugins.
17 | // The Python version which this plugin runs on will be used.
18 | // `sys.path` from plugin_host will be added into "python.analysis.extraPaths"
19 | // so ST package dependecies can be resolved by the LSP server.
20 | // - "sublime_text_33": Similar to "sublime_text" but Python 3.3 forced.
21 | // - "sublime_text_38": Similar to "sublime_text" but Python 3.8 forced.
22 | "pyright.dev_environment": "sublime_text",
23 | // Offers predefined configurations to help users optimize Pylance's performance based on their development needs.
24 | // @see https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance#settings-and-customization
25 | "python.analysis.languageServerMode": "default",
26 | // Add parentheses to function completions.
27 | "python.analysis.completeFunctionParens": false,
28 | // Defines the default format for import module.
29 | "python.analysis.importFormat": "relative",
30 | // Additional import search resolution paths
31 | "python.analysis.extraPaths": [
32 | // project's stubs
33 | "$folder/stubs",
34 | "$folder/typings",
35 | // my custom stubs
36 | "$packages/../stubs",
37 | "$packages/../typings",
38 | ],
39 | // Allows a user to override the severity levels for individual diagnostics.
40 | // @see https://github.com/microsoft/pyright/blob/master/docs/configuration.md#type-check-diagnostics-settings
41 | "python.analysis.diagnosticSeverityOverrides": {
42 | "reportDuplicateImport": "warning",
43 | "reportImplicitStringConcatenation": "warning",
44 | "reportUnboundVariable": "warning",
45 | "reportUnusedClass": "information",
46 | "reportUnusedFunction": "information",
47 | "reportUnusedImport": "information",
48 | "reportUnusedVariable": "information",
49 | },
50 | },
51 | }
52 |
--------------------------------------------------------------------------------
/Packages/User/LSP-ruff.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "initializationOptions": {
3 | "settings": {
4 | "lint.ignore": ["F403", "E402"],
5 | "lint.preview": true,
6 | },
7 | },
8 | }
9 |
--------------------------------------------------------------------------------
/Packages/User/LSP-yaml.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "settings": {
3 | "yaml.completion": true,
4 | "yaml.format.bracketSpacing": true,
5 | "yaml.format.enable": true,
6 | "yaml.format.printWidth": 120,
7 | "yaml.format.proseWrap": "always",
8 | "yaml.format.singleQuote": true,
9 | "yaml.hover": true,
10 | "yaml.schemas": {},
11 | "yaml.schemaStore.enable": true,
12 | "yaml.validate": true,
13 | },
14 | }
15 |
--------------------------------------------------------------------------------
/Packages/User/LSP.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | // LSP servers configurations
3 | "clients": {
4 | "diagnostic-ls": {
5 | "enabled": false,
6 | "command": [
7 | "diagnostic-languageserver",
8 | "--stdio",
9 | ],
10 | "selector": "source.python | source.shell",
11 | "initializationOptions": {
12 | "linters": {
13 | // REF: https://gist.github.com/rchl/1077151a7339b734c1678fc626b123a2
14 | "shellcheck": {
15 | "command": "shellcheck",
16 | "debounce": 100,
17 | "args": [
18 | "--enable=all",
19 | "--format=json",
20 | "-",
21 | ],
22 | "offsetLine": 0,
23 | "offsetColumn": 0,
24 | "sourceName": "shellcheck",
25 | "formatLines": 1,
26 | "parseJson": {
27 | "line": "line",
28 | "column": "column",
29 | "endLine": "endLine",
30 | "endColumn": "endColumn",
31 | "security": "level",
32 | "message": "\\${message} [\\${code}]",
33 | },
34 | "securities": {
35 | "error": "error",
36 | "warning": "warning",
37 | "note": "info",
38 | "info": "info",
39 | "style": "info",
40 | },
41 | },
42 | },
43 | "filetypes": {
44 | "python": [
45 | "flake8"
46 | ],
47 | "shellscript": "shellcheck",
48 | },
49 | },
50 | },
51 | "taplo": {
52 | "enabled": true,
53 | "command": ["taplo", "lsp", "stdio"],
54 | "selector": "source.toml",
55 | },
56 | },
57 | // other settings
58 | "semantic_highlighting": true,
59 | "show_inlay_hints": true,
60 | "show_diagnostics_panel_on_save": 0,
61 | "diagnostics_gutter_marker": "sign",
62 | "diagnostics_highlight_style": "box",
63 | "document_highlight_style": "underline",
64 | "hover_highlight_style": "stippled",
65 | "inhibit_snippet_completions": false,
66 | "inhibit_word_completions": false,
67 | "show_diagnostics_count_in_view_status": true,
68 | "show_diagnostics_in_view_status": true,
69 | "show_diagnostics_severity_level": 4,
70 | "show_references_in_quick_panel": false,
71 | "show_symbol_action_links": true,
72 | "show_view_status": true,
73 | "log_debug": false,
74 | "log_server": [
75 | "panel",
76 | ],
77 | "lsp_code_actions_on_save": {
78 | // "source.fixAll": true,
79 | // "source.organizeImports": true,
80 | },
81 | "lsp_format_on_save": false,
82 | // Controls if files that were part of a refactoring (e.g. rename) are saved automatically:
83 | // "always" - save all affected files
84 | // "preserve" - only save files that didn't have unsaved changes beforehand
85 | // "preserve_opened" - only save opened files that didn't have unsaved changes beforehand
86 | // and open other files that were affected by the refactoring
87 | // "never" - never save files automatically
88 | "refactoring_auto_save": "preserve",
89 | }
90 |
--------------------------------------------------------------------------------
/Packages/User/LiveReload.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "enabled_plugins": [
3 | "MarkdownLiveReload"
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/Packages/User/Log.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "word_wrap": false,
3 | }
4 |
--------------------------------------------------------------------------------
/Packages/User/Markdown.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "rulers": [80, 100, 120],
3 | "spell_check": true,
4 | "trim_trailing_white_space_on_save": "none",
5 | // force always prefer 2-space indentation.
6 | // the auto detection is often confused by lists, fenced code blocks...
7 | "detect_indentation": false,
8 | "tab_size": 2,
9 | "translate_tabs_to_spaces": true,
10 | }
11 |
--------------------------------------------------------------------------------
/Packages/User/Package Control.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "install_prereleases":
3 | [
4 | "ColorHelper",
5 | "LaTeXTools",
6 | "Package Control",
7 | "PackageDev",
8 | "PowerShell",
9 | ],
10 | "installed_packages":
11 | [
12 | "AceJump-Chinese",
13 | "Advanced Substation Alpha (ASS)",
14 | "AlignTab",
15 | "AutoFilePath",
16 | "AutomaticPackageReloader",
17 | "AutoSetSyntax",
18 | "BetterFindBuffer",
19 | "BootstrapAutocomplete",
20 | "BracketHighlighter",
21 | "Case Conversion",
22 | "CMake",
23 | "Codec",
24 | "ColorHelper",
25 | "CommandAndMenu",
26 | "CommandsBrowser",
27 | "Containerfile",
28 | "ConvertToUTF8",
29 | "DoxyDoxygen (evolution)",
30 | "EditorConfig",
31 | "Emmet",
32 | "Emoji",
33 | "Fanhuaji",
34 | "FileIcons",
35 | "FileManager",
36 | "FindCursor",
37 | "Fmt",
38 | "FollowLnk",
39 | "GenerateUUID",
40 | "Gomod",
41 | "GotoEndOfLineOrScope",
42 | "HyperClick",
43 | "Indent XML",
44 | "INI",
45 | "Inline Python",
46 | "Insert Nums",
47 | "Jinja2",
48 | "Jq",
49 | "jQuery",
50 | "JsPrettier",
51 | "KDL",
52 | "Less",
53 | "LiveReload",
54 | "LSP",
55 | "LSP-bash",
56 | "LSP-clangd",
57 | "LSP-copilot",
58 | "LSP-css",
59 | "LSP-dockerfile",
60 | "LSP-eslint",
61 | "LSP-file-watcher-chokidar",
62 | "LSP-html",
63 | "LSP-intelephense",
64 | "LSP-intelephense-patcher",
65 | "LSP-json",
66 | "LSP-marksman",
67 | "LSP-ruff",
68 | "LSP-typescript",
69 | "LSP-yaml",
70 | "MarkdownPreview",
71 | "MultiEditUtils",
72 | "nginx",
73 | "OpenUri",
74 | "OverrideAudit",
75 | "Package Control",
76 | "PackageDev",
77 | "Phpcs",
78 | "PowerShell",
79 | "ProjectManager",
80 | "RainbowIndent",
81 | "RichFormatCodes",
82 | "Sass",
83 | "ScopeHunter",
84 | "SelectUntil",
85 | "Sort Lines (Numerically)",
86 | "SublimeLinter",
87 | "SublimeLinter-contrib-markdownlint",
88 | "SublimeLinter-contrib-sublime-syntax",
89 | "SublimeLinter-php",
90 | "Terminal",
91 | "TOML",
92 | "Twig",
93 | "Verilog",
94 | "Vue",
95 | "WindowsContextMenu",
96 | "YamlPipelines",
97 | ],
98 | "repositories":
99 | [
100 | "https://raw.githubusercontent.com/jfcherng-sublime/ST-my-package-control/master/repository.json",
101 | ],
102 | "in_process_packages":
103 | [
104 | ],
105 | }
106 |
--------------------------------------------------------------------------------
/Packages/User/PackageDev.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "settings.auto_complete": false,
3 | "settings.tooltip": false,
4 | }
5 |
--------------------------------------------------------------------------------
/Packages/User/PowershellSyntax.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "default_line_ending": "windows",
3 | }
4 |
--------------------------------------------------------------------------------
/Packages/User/Python.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "tab_size": 4,
3 | "translate_tabs_to_spaces": true,
4 | "auto_complete_triggers": [
5 | {
6 | "selector": "source.python - string - comment - constant.numeric",
7 | "characters": "."
8 | }
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/Packages/User/RainbowIndent.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "level_colors": [
3 | "region.indent.0",
4 | "region.indent.1",
5 | "region.indent.2",
6 | "region.indent.3",
7 | "region.indent.4",
8 | "region.indent.5",
9 | ],
10 | "level_style": "block",
11 | }
12 |
--------------------------------------------------------------------------------
/Packages/User/SCSS.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | // "-" is not a word breaker
3 | "word_separators": "./\\()\"':,.;<>~!@#$%^&*|+=[]{}`~?",
4 | "tab_size": 2,
5 | }
6 |
--------------------------------------------------------------------------------
/Packages/User/TodoReview.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "patterns": {
3 | "TODO_1": "TODO\\s*:\\s*(?P.*)",
4 | "TODO_2": "@todo\\s+(?P((?!\\s*\\*/).)*)",
5 | },
6 | "patterns_weight": {
7 | },
8 | "exclude_folders": [
9 | "/.cache/",
10 | "/.clangd/",
11 | "/.git/",
12 | "/.hg/",
13 | "/.mypy_cache/",
14 | "/.phpunit/",
15 | "/.sass-cache/",
16 | "/.simvision/",
17 | "/.svn/",
18 | "/.venv/",
19 | "/build/",
20 | "/builds/",
21 | "/node_modules/",
22 | "/var/",
23 | "/vendor/",
24 | "/__MACOSX/",
25 | "/__pycache__/",
26 | ],
27 | "exclude_files": [
28 | "*.sublime-project",
29 | "*.sublime-workspace",
30 | "composer.lock",
31 | "LICENSE",
32 | "LICENSE.*",
33 | "package-lock.json",
34 | "README",
35 | "README.*",
36 | "yarn.lock",
37 | ],
38 | "resolve_symlinks": true,
39 | "case_sensitive": false,
40 | "render_include_folder": true,
41 | "render_folder_depth": "auto",
42 | "render_maxspaces": 1,
43 | "render_header_format": "found %c files in %t seconds (%d)",
44 | "render_header_date": "%Y/%m/%d %H:%M:%S",
45 | "navigation_forward_skip": 10,
46 | "navigation_backward_skip": 10,
47 | }
48 |
--------------------------------------------------------------------------------
/Packages/User/ToggleWords.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "toggle_words_dict": [
3 | ["0", "1"],
4 | ["accept", "decline"],
5 | ["before", "after"],
6 | ["correct", "wrong"],
7 | ["forward", "backward"],
8 | ["from", "to"],
9 | ["good", "bad"],
10 | ["high", "low"],
11 | ["in", "out"],
12 | ["input", "output"],
13 | ["inside", "outside"],
14 | ["left", "right"],
15 | ["low", "high"],
16 | ["on", "off"],
17 | ["open", "close"],
18 | ["short", "long"],
19 | ["single", "double", "triple"],
20 | ["space", "tab"],
21 | ["start", "end"],
22 | ["top", "bottom"],
23 | ["true", "false"],
24 | ["up", "down"],
25 | ["upward", "downward"],
26 | ["wide", "narrow"],
27 | ["width", "height"],
28 | ["y", "n"],
29 | ["yes", "no"],
30 | ],
31 | }
32 |
--------------------------------------------------------------------------------
/Packages/User/Twig.sublime-settings:
--------------------------------------------------------------------------------
1 | // These settings override both User and Default settings for the Twig syntax
2 | {
3 | "tab_size": 2,
4 | }
5 |
--------------------------------------------------------------------------------
/Packages/User/Verilog.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "extensions":
3 | [
4 | "v",
5 | "vh"
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/Packages/User/WindowsContextMenu.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | // customize the menu text in your localization
3 | "menu_text": "在 {app.name} 中開啟",
4 | }
5 |
--------------------------------------------------------------------------------
/Packages/User/bh_swapping.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | "swapping": [
3 | {
4 | "enabled": true, "language_list": [], "language_filter": "allowlist", "entries": [
5 | {"name": "<> Angle", "brackets": ["<", ">${BH_SEL}"]}
6 | ]
7 | },
8 | {
9 | "enabled": true, "language_list": [], "language_filter": "blocklist", "entries": [
10 | {"name": "{} Curly", "brackets": ["{", "}${BH_SEL}"]}
11 | ]
12 | },
13 | {
14 | "enabled": true, "language_list": [], "language_filter": "blocklist", "entries": [
15 | {"name": "() Round", "brackets": ["(", ")${BH_SEL}"]}
16 | ]
17 | },
18 | {
19 | "enabled": true, "language_list": [], "language_filter": "blocklist", "entries": [
20 | {"name": "[] Square", "brackets": ["[", "]${BH_SEL}"]}
21 | ]
22 | },
23 | {
24 | "enabled": true, "language_list": ["HTML", "HTML 5", "XML", "PHP", "HTML+CFML", "ColdFusion", "ColdFusionCFC"], "language_filter": "allowlist", "entries": [
25 | {"name": "HTML/XML Tag", "brackets": ["<${BH_SEL:NAME}>", "${BH_SEL:NAME}>"]}
26 | ]
27 | },
28 | {
29 | "enabled": true, "language_list": ["Markdown"], "language_filter": "allowlist", "entries": [
30 | {"name": "Mardown: Bold", "brackets": ["**", "**${BH_SEL}"]},
31 | {"name": "Mardown: Italic", "brackets": ["_", "_${BH_SEL}"]}
32 | ]
33 | },
34 | {
35 | "enabled": true, "language_list": ["C++", "C"], "language_filter": "allowlist", "entries": [
36 | {"name": "C/C++: #if", "brackets": ["#if ${BH_SEL}", "#endif"]},
37 | {"name": "C/C++: #if, #else", "brackets": ["#if${BH_SEL}", "#else\n${BH_TAB:/* CODE */}\n#endif"]},
38 | {"name": "C/C++: #if, #elif", "brackets": ["#if${BH_SEL}", "#elif ${BH_TAB:/* CONDITION */}\n${BH_TAB:/* CODE */}\n#endif"]},
39 | {"name": "C/C++: #ifdef", "brackets": ["#ifdef${BH_SEL}", "#endif"]},
40 | {"name": "C/C++: #ifdef, #else", "brackets": ["#ifdef${BH_SEL}", "#else\n${BH_TAB:/* CODE */}\n#endif"]},
41 | {"name": "C/C++: #ifndef", "brackets": ["#ifndef${BH_SEL}", "#endif"]},
42 | {"name": "C/C++: #ifndef, #else", "brackets": ["#ifndef${BH_SEL}", "#else\n${BH_TAB:/* CODE */}\n#endif"]}
43 | ]
44 | }
45 | ]
46 | }
47 |
--------------------------------------------------------------------------------
/Packages/User/bh_tag.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | // This is where you initially define a new tag mode.
3 | // This new tag_mode key must be used in all other settings in this file
4 | // to set up its specific settings.
5 | // Determine which style of tag-matching to use in which syntax.
6 | "tag_mode": [
7 | {"mode": "xml", "syntax": ["XML"]},
8 | {
9 | "mode": "xhtml",
10 | "syntax": [
11 | "HTML",
12 | "HTML 5",
13 | "PHP",
14 | "Jinja",
15 | "Twig",
16 | "HTML (Jinja Templates)",
17 | "HTML (Jinja2)",
18 | "HTML (Rails)",
19 | "HTML (Twig)",
20 | "HTML (Django)",
21 | "laravel-blade",
22 | "blade",
23 | "Handlebars",
24 | "AngularJS",
25 | "Java Server Pages (JSP)",
26 | "Vue Component",
27 | ],
28 | "first_line": "^[ \\t]*<\\?xml",
29 | },
30 | {
31 | "mode": "html",
32 | "syntax": [
33 | "HTML",
34 | "HTML 5",
35 | "PHP",
36 | "Jinja",
37 | "Twig",
38 | "HTML (Jinja Templates)",
39 | "HTML (Jinja2)",
40 | "HTML (Rails)",
41 | "HTML (Twig)",
42 | "HTML (Django)",
43 | "laravel-blade",
44 | "blade",
45 | "Handlebars",
46 | "AngularJS",
47 | "Java Server Pages (JSP)",
48 | "Vue Component",
49 | ],
50 | },
51 | {
52 | "mode": "cfml",
53 | "syntax": ["CFML", "HTML+CFML", "ColdFusion", "ColdFusionCFC"]
54 | },
55 | ],
56 | }
57 |
--------------------------------------------------------------------------------
/Packages/User/color_helper.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | // Show debug logging
3 | "debug": false,
4 |
5 | // Enables inline color previews found beside the identified color.
6 | // Requires ST 3116+ and mdpopups 1.7.4
7 | "inline_previews": true,
8 |
9 | // Adjust the size of inline image previews by the offset given.
10 | // Please use either a positive or negative number.
11 | "inline_preview_offset": -2,
12 |
13 | // Adjust the position of inline image previews.
14 | // (left|right)
15 | "inline_preview_position": "left",
16 |
17 | // These are the color rules for a given view.
18 | // Only one rule will apply to a given view.
19 | //
20 | // - `name`: optional name that, if a user creates a rule in `user_color_rules`, and it
21 | // it shares the same `name`, a shallow merge of the two rules will be made which
22 | // will allow the user rule to override the values of top level keys.
23 | //
24 | // - `sytnax_files`: target a view using a syntax from the given list. Defaults to an empty list.
25 | //
26 | // - `syntax_filter`: specify whether `syntax_files` is an allowlist or blocklist. Can be either
27 | // (blocklist|allowlist). Default's to `allowlist`.
28 | //
29 | // - `base_scopes`: target a view whose base scope matches something from the list of scopes.
30 | // Defaults to an empty list.
31 | //
32 | // - `extensions`: target a view with an extension from the provided list. Defaults to an empty list.
33 | //
34 | // - `color_class`: A string defining the name of a color class to use for the associated views. Color class
35 | // name should be defined in `color_classes`.
36 | //
37 | // If needed, you can define multiple color classes with a list of dicitionaries. Each
38 | // dictionary in the list should contain a `class` and `scopes`:
39 | //
40 | // - `scopes`: A string that defines a base scope that the color class applies to.
41 | //
42 | // - `class`: The name of the color class profile to use (defined in `color_classes`).
43 | //
44 | // - `scanning`: A list containing scopes that should be scanned for colors.
45 | //
46 | // - color_trigger`. It is slow to test the entire buffer with the color class, so do a quick search for
47 | // tokens that should trigger a color check. That way we only test in places where we
48 | // think we might have a valid color. For instance, the color class can translate colors
49 | // in the form `rgb(1 1 1 / 1)`, so we can specify `rgb(` as a color trigger. If we find `rgb(`,
50 | // we will test that spot's scope and attempt to read in a color at that location.
51 | // Defaults to "(?i)(?:\b(?" },
22 | "context": [
23 | {
24 | "key": "selector",
25 | "operator": "equal",
26 | "operand": "source.c | source.c++ | source.objc | source.objc++"
27 | }
28 | ]
29 | },
30 | // HTML
31 | {
32 | "keys": ["c", "m", "t", " "],
33 | "command": "insert_snippet",
34 | "args": { "contents": "$0" },
35 | "context": [
36 | {
37 | "key": "selector",
38 | "operator": "equal",
39 | "operand": "text.html.basic - source.php"
40 | }
41 | ]
42 | },
43 | // Javascript
44 | {
45 | "keys": ["f", "j", " "],
46 | "command": "insert_snippet",
47 | "args": { "contents": "\\$" },
48 | "context": [
49 | {
50 | "key": "selector",
51 | "operator": "equal",
52 | "operand": "source.js | source.jsx | source.ts | source.tsx"
53 | }
54 | ]
55 | },
56 | // PHP
57 | {
58 | "keys": ["f", "j", " "],
59 | "command": "insert_snippet",
60 | "args": { "contents": "\\$" },
61 | "context": [
62 | {
63 | "key": "selector",
64 | "operator": "equal",
65 | "operand": "source.php"
66 | }
67 | ]
68 | },
69 | {
70 | "keys": ["d", "k", " "],
71 | "command": "insert_snippet",
72 | "args": { "contents": "->" },
73 | "context": [
74 | {
75 | "key": "selector",
76 | "operator": "equal",
77 | "operand": "source.php"
78 | }
79 | ]
80 | },
81 | // Python
82 | {
83 | "keys": ["f", "j", " "],
84 | "command": "insert_snippet",
85 | "args": { "contents": "*" },
86 | "context": [
87 | {
88 | "key": "selector",
89 | "operator": "equal",
90 | "operand": "source.python"
91 | }
92 | ]
93 | },
94 | {
95 | "keys": ["d", "k", " "],
96 | "command": "insert_snippet",
97 | "args": { "contents": "->" },
98 | "context": [
99 | {
100 | "key": "selector",
101 | "operator": "equal",
102 | "operand": "source.python"
103 | }
104 | ]
105 | },
106 | // SASS/SCSS
107 | {
108 | "keys": ["f", "j", " "],
109 | "command": "insert_snippet",
110 | "args": { "contents": "\\$" },
111 | "context": [
112 | {
113 | "key": "selector",
114 | "operator": "equal",
115 | "operand": "source.sass | source.scss"
116 | }
117 | ]
118 | },
119 | // Shell
120 | {
121 | "keys": ["f", "j", " "],
122 | "command": "insert_snippet",
123 | "args": { "contents": "\\$" },
124 | "context": [
125 | {
126 | "key": "selector",
127 | "operator": "equal",
128 | "operand": "source.shell"
129 | }
130 | ]
131 | },
132 | // Groovy
133 | {
134 | "keys": ["f", "j", " "],
135 | "command": "insert_snippet",
136 | "args": { "contents": "\\$" },
137 | "context": [
138 | {
139 | "key": "selector",
140 | "operator": "equal",
141 | "operand": "source.groovy"
142 | }
143 | ]
144 | }
145 | ]
146 |
--------------------------------------------------------------------------------
/Packages/User/my_keymap/readme.md:
--------------------------------------------------------------------------------
1 | This folder should be put under `User/` to have the highest priority...
2 |
3 | Otherwise, alt + / will trigger the `left_delete` command rather than
4 | `Default/Delete Left Right.sublime-macro` hence we will fail to delete paired quotes.
5 |
--------------------------------------------------------------------------------
/Packages/User/my_language/ApacheConf/Comments.tmPreferences:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | name
6 | Comments
7 | scope
8 | source.apacheconf
9 | settings
10 |
11 | shellVariables
12 |
13 |
14 | name
15 | TM_COMMENT_START
16 | value
17 | #
18 |
19 |
20 |
21 | uuid
22 | 8747d9e4-b308-4fc2-9aa1-66b6919bc7b9
23 |
24 |
25 |
--------------------------------------------------------------------------------
/Packages/User/my_language/Gettext.sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Gettext
5 | version: 2
6 | comment: |
7 | TODO: Command for copy original to untranslated, label as fuzzy, remove fuzzy, next fuzzy etc
8 | Create meta scope for each entry
9 | file_extensions:
10 | - po
11 | - potx
12 | scope: source.po
13 | contexts:
14 | main:
15 | - match: msgid\s+""
16 | push:
17 | - meta_scope: entity.name.section.header.po
18 | - match: ^$
19 | pop: 1
20 | - match: ^msgid(?:_plural)?\s+(")(.*)(")\s*$
21 | scope: keyword.control.msgid.po
22 | captures:
23 | 1: constant.character.double-quote.po
24 | 2: string.quoted.double.po
25 | 3: constant.character.double-quote.po
26 | - match: '^msgstr(?:\[\d?\])?\s+(")(.*)(")\s*$'
27 | scope: keyword.control.msgstr.po
28 | captures:
29 | 1: constant.character.double-quote.po
30 | 2: string.quoted.double.po
31 | 3: constant.character.double-quote.po
32 | - match: '^msgctxt(?:\[\d?\])?\s+(")(.*)(")\s*$'
33 | scope: keyword.control.msgctxt.po
34 | captures:
35 | 1: constant.character.double-quote.po
36 | 2: string.quoted.double.po
37 | 3: constant.character.double-quote.po
38 | - match: ^(")(.+)(")\s*$
39 | scope: string.quoted.double.po
40 | captures:
41 | 1: constant.character.double-quote.po
42 | 2: string.quoted.double.po
43 | 3: constant.character.double-quote.po
44 | - match: ^#\s+(.*)\s*$
45 | scope: comment.line.number-sign.po
46 | - match: ^#,\s+((?:(?:fuzzy)|(?:no-)?(?:c|objc|sh|lisp|elisp|librep|scheme|smalltalk|java|csharp|awk|object-pascal|ycp|tcl|perl|perl-brace|php|gcc-internal|qt|boost)-format)(?:,\s*(?:(?:fuzzy)|(?:no-)?(?:c|objc|sh|lisp|elisp|librep|scheme|smalltalk|java|csharp|awk|object-pascal|ycp|tcl|perl|perl-brace|php|gcc-internal|qt|boost)-format))*)\s*$
47 | scope: comment.line.number-sign.flag.po
48 | captures:
49 | 1: keyword.other.flag.po
50 | - match: ^#\.\s+(.*)\s*$
51 | scope: comment.line.number-sign.extracted.po
52 | - match: '^#:\s+((.*))(:([\d;]*))\s*$'
53 | scope: comment.line.number-sign.reference.po
54 | captures:
55 | 1: constant.character.sourceref.po
56 | 3: constant.numeric.linenumber.po
57 | - match: ^#|\s+(msgid|msgctxt)\s+(".*")\s*$
58 | scope: comment.line.number-sign.previous.po
59 |
--------------------------------------------------------------------------------
/Packages/User/my_language/PEM.sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: PEM
5 | version: 2
6 | file_extensions:
7 | - crt
8 | - pem
9 | first_line_match: ^-----+BEGIN +.*-----
10 | scope: text.pem
11 |
12 | contexts:
13 | main:
14 | - include: section
15 |
16 | section:
17 | - match: ^-----+BEGIN +(.*)-----+(\n?)
18 | captures:
19 | 0: punctuation.definition.section.begin.pem
20 | 1: entity.name.section.pem
21 | 2: meta.whitespace.newline.pem
22 | push:
23 | - meta_scope: meta.block.pem
24 | - include: base64
25 | - match: ^-----+END +(\1)-----+(\n?)
26 | captures:
27 | 0: punctuation.definition.section.end.pem
28 | 1: entity.name.section.pem
29 | 2: meta.whitespace.newline.pem
30 | pop: 1
31 |
32 | base64:
33 | - match: '[a-zA-Z0-9+/=]+\n?'
34 | scope: string.other.base64.pem
35 |
--------------------------------------------------------------------------------
/Packages/User/my_language/SRT.sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: SRT Subtitles
5 | version: 2
6 | file_extensions:
7 | - srt
8 | scope: text.srt
9 | contexts:
10 | main:
11 | - match: ^(\d+)\s*$
12 | scope: constant.numeric.sequence.srt
13 | - match: '^((?:\d{2}:)?\d{2}:\d{2}[,.]\d{3})\s*(-->)\s*((?:\d{2}:)?\d{2}:\d{2}[,.]\d{3})'
14 | captures:
15 | 1: variable.parameter.srt
16 | 2: constant.character.srt
17 | 3: variable.parameter.srt
18 | push:
19 | - match: '([^: ]+)\s*(:)\s*([^: ]+)'
20 | captures:
21 | 1: storage.type.srt
22 | - match: $
23 | pop: 1
24 | - match: \<(b)\>
25 | captures:
26 | 1: entity.name.tag.srt
27 | push:
28 | - match: \<\/(b)\>
29 | captures:
30 | 1: entity.name.tag.srt
31 | pop: 1
32 | - include: main
33 | - match: .
34 | scope: markup.bold.srt
35 | - match: \<(i)\>
36 | captures:
37 | 1: entity.name.tag.srt
38 | push:
39 | - match: \<\/(i)\>
40 | captures:
41 | 1: entity.name.tag.srt
42 | pop: 1
43 | - include: main
44 | - match: .
45 | scope: markup.italic.srt
46 | - match: \<(u)\>
47 | captures:
48 | 1: entity.name.tag.srt
49 | push:
50 | - match: \<\/(u)\>
51 | captures:
52 | 1: entity.name.tag.srt
53 | pop: 1
54 | - include: main
55 | - match: .
56 | scope: markup.underline.srt
57 | # unknown tags
58 | - match: \?([^<>]+)\>
59 | captures:
60 | 0: comment.srt
61 | # ASS-like position tags
62 | - match: '\{\\an[1-9]{1}\}'
63 | scope: entity.name.function.srt
64 |
--------------------------------------------------------------------------------
/Packages/User/my_language/SSH-Config/Comments.tmPreferences:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | name
6 | Comments
7 | scope
8 | source.ssh-config
9 | settings
10 |
11 | shellVariables
12 |
13 |
14 | name
15 | TM_COMMENT_START
16 | value
17 | #
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Packages/User/my_language/Singularity/Comments.tmPreferences:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | name
5 | Comments
6 | scope
7 | source.singularity_definition
8 | settings
9 |
10 | shellVariables
11 |
12 |
13 | name
14 | TM_COMMENT_START
15 | value
16 | #
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/Packages/User/my_language/Singularity/Singularity.sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # See http://www.sublimetext.com/docs/syntax.html
4 | name: Singularity Definition
5 | version: 2
6 | file_extensions:
7 | - Singularity
8 | scope: source.singularity_definition
9 | variables:
10 | keywords_header: (?:Bootstrap|From|Stage|OSVersion|MirrorURL|Include|Library)
11 | section_labels: (?:labels)
12 | section_shell: (?:environment|post|runscript|setup|startscript|test)
13 | section_other: (?:files|help)
14 | contexts:
15 | prototype:
16 | - include: comments
17 | main:
18 | - include: header
19 | - include: sections
20 | comments:
21 | - match: ^\s*((#).*$\n?)
22 | captures:
23 | 1: comment.line.singularity_definition
24 | 2: punctuation.definition.comment.singularity_definition
25 | header:
26 | - match: ^({{keywords_header}})\s*(:)\s*(.*)
27 | captures:
28 | 1: keyword.control.singularity_definition
29 | 2: punctuation.separator.key-value.singularity_definition
30 | 3: meta.tag-digest.singularity_definition
31 | sections:
32 | - include: section_labels
33 | - include: section_other
34 | - include: section_shell
35 | section_label:
36 | - match: \w+
37 | scope: constant.other.key.singularity_definition
38 | push:
39 | - include: pop_at_end
40 | section_labels:
41 | - match: ^(%)({{section_labels}})\s*\n?
42 | scope: keyword.control.section.singularity_definition
43 | embed: section_label
44 | escape: (?=^%)
45 | section_shell:
46 | - match: ^(%)({{section_shell}})\s*\n?
47 | scope: keyword.control.section.singularity_definition
48 | embed: scope:source.shell.bash
49 | embed_scope: meta.embedded.block.singularity_definition source.shell.bash
50 | escape: (?=^%)
51 | section_other:
52 | - match: ^(%)({{section_other}})\s*\n?
53 | scope: keyword.control.section.singularity_definition
54 | pop_at_end:
55 | - match: $
56 | pop: 1
57 |
--------------------------------------------------------------------------------
/Packages/User/my_language/VTT.sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: VTT Subtitles
5 | version: 2
6 | file_extensions:
7 | - vtt
8 | first_line_match: '^\s*WEBVTT\s*$'
9 | scope: text.vtt
10 | variables:
11 | line_terminator: \r?\n|\r
12 | blank_line: ^{{line_terminator}}$
13 | contexts:
14 | main:
15 | - include: header
16 | - include: comment-block
17 | - include: content-block
18 | header:
19 | - match: ^(WEBVTT)(?=$|\s)
20 | comment-block:
21 | # https://www.w3.org/TR/webvtt1/#introduction-comments
22 | - match: '^(NOTE)(?=$|\s)'
23 | captures:
24 | 1: punctuation.definition.comment.vtt
25 | push:
26 | - meta_scope: comment.vtt
27 | - match: '{{blank_line}}'
28 | pop: 1
29 | content-block:
30 | - match: ^(\d+)\s*$
31 | scope: constant.numeric.sequence.vtt
32 | - match: '(?=^((?:\d{2}:)?\d{2}:\d{2}[,.]\d{3})\s*(-->)\s*((?:\d{2}:)?\d{2}:\d{2}[,.]\d{3}))'
33 | push:
34 | - match: '{{blank_line}}'
35 | pop: 1
36 | - match: '^((?:\d{2}:)?\d{2}:\d{2}[,.]\d{3})\s*(-->)\s*((?:\d{2}:)?\d{2}:\d{2}[,.]\d{3})'
37 | captures:
38 | 1: variable.parameter.vtt
39 | 2: constant.character.vtt
40 | 3: variable.parameter.vtt
41 | push:
42 | - match: '([^: ]+)\s*(:)\s*([^: ]+)'
43 | captures:
44 | 1: storage.type.vtt
45 | - match: $
46 | pop: 1
47 | - match: \<(b)\>
48 | captures:
49 | 1: entity.name.tag.vtt
50 | push:
51 | - match: \<\/(b)\>
52 | captures:
53 | 1: entity.name.tag.vtt
54 | pop: 1
55 | - include: main
56 | - match: .
57 | scope: markup.bold.vtt
58 | - match: \<(i)\>
59 | captures:
60 | 1: entity.name.tag.vtt
61 | push:
62 | - match: \<\/(i)\>
63 | captures:
64 | 1: entity.name.tag.vtt
65 | pop: 1
66 | - include: main
67 | - match: .
68 | scope: markup.italic.vtt
69 | - match: \<(u)\>
70 | captures:
71 | 1: entity.name.tag.vtt
72 | push:
73 | - match: \<\/(u)\>
74 | captures:
75 | 1: entity.name.tag.vtt
76 | pop: 1
77 | - include: main
78 | - match: .
79 | scope: markup.underline.vtt
80 | # unknown tags
81 | - match: \?([^<>]+)\>
82 | captures:
83 | 0: comment.vtt, meta.unknown-tag.vtt
84 | 1: entity.name.tag.vtt
85 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/CoffeeScript (Gulpfile).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: CoffeeScript (Gulpfile)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - gulpfile.coffee
9 | scope: source.coffee.gulpfile
10 | contexts:
11 | main:
12 | - include: scope:source.coffee
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Groovy (Gradle).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Groovy (Gradle)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - gradle
9 | scope: source.groovy.gradle
10 | contexts:
11 | main:
12 | - include: scope:source.groovy
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/JSON (Babel).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: JSON (Babel)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .babelrc
9 | scope: source.json.babel
10 | contexts:
11 | main:
12 | - include: scope:source.json
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/JSON (Bower).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: JSON (Bower)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - bower.json
9 | - .bowerrc
10 | scope: source.json.bower
11 | contexts:
12 | main:
13 | - include: scope:source.json
14 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/JSON (Composer).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: JSON (Composer)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - composer.json
9 | - composer.lock
10 | - symfony.lock
11 | scope: source.json.composer
12 | contexts:
13 | main:
14 | - include: scope:source.json
15 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/JSON (ESLint).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: JSON (ESLint)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .eslintrc
9 | - .eslintrc.json
10 | scope: source.json.eslint
11 | contexts:
12 | main:
13 | - include: scope:source.json
14 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/JSON (NPM).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: JSON (NPM)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - package.json
9 | scope: source.json.npm
10 | contexts:
11 | main:
12 | - include: scope:source.json
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/JSON (PostCSS).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: JSON (PostCSS)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .postcssrc
9 | scope: source.json.postcss
10 | contexts:
11 | main:
12 | - include: scope:source.json
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/JSON (Settings).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: JSON (Settings)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .jshintrc
9 | - .jsbeautifyrc
10 | scope: source.json.settings
11 | contexts:
12 | main:
13 | - include: scope:source.json
14 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/JSON (Stylelint).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: JSON (Stylelint)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .stylelintrc
9 | - .stylelintrc.json
10 | scope: source.json.stylelint
11 | contexts:
12 | main:
13 | - include: scope:source.json
14 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/JSON (Tern JS).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: JSON (Tern JS)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .tern-project
9 | - .tern-config
10 | scope: source.json.tern
11 | contexts:
12 | main:
13 | - include: scope:source.json
14 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/JavaScript (ESLint).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: JavaScript (ESLint)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .eslintrc.js
9 | scope: source.js.eslint
10 | contexts:
11 | main:
12 | - include: scope:source.js
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/JavaScript (Gruntfile).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: JavaScript (Gruntfile)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - gruntfile.js
9 | scope: source.js.gruntfile
10 | contexts:
11 | main:
12 | - include: scope:source.js
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/JavaScript (Gulpfile).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: JavaScript (Gulpfile)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - gulpfile.js
9 | - gulpfile.babel.js
10 | scope: source.js.gulpfile
11 | contexts:
12 | main:
13 | - include: scope:source.js
14 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/JavaScript (PostCSS).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: JavaScript (PostCSS)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - postcss.config.js
9 | scope: source.js.postcss
10 | contexts:
11 | main:
12 | - include: scope:source.js
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/JavaScript (Stylelint).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: JavaScript (Stylelint)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .stylelintrc.js
9 | - stylelint.config.js
10 | scope: source.js.stylelint
11 | contexts:
12 | main:
13 | - include: scope:source.js
14 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/JavaScript (Webpack).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: JavaScript (Webpack)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - webpack.config.js
9 | - webpack.config.babel.js
10 | - webpack.mix.js
11 | scope: source.js.webpack
12 | contexts:
13 | main:
14 | - include: scope:source.js
15 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Markdown (License).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Markdown (License)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - license.md
9 | scope: text.html.markdown.license
10 | contexts:
11 | main:
12 | - include: scope:text.html.markdown
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (Adobe After Effects).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (Adobe After Effects)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - aep
9 | - aet
10 | scope: text.plain.ae
11 | contexts:
12 | main:
13 | - include: scope:text.plain
14 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (Adobe Illustrator).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (Adobe Illustrator)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - ai
9 | scope: text.plain.ai
10 | contexts:
11 | main:
12 | - include: scope:text.plain
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (Adobe InDesign).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (Adobe InDesign)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - indd
9 | - indl
10 | - indt
11 | - indb
12 | - inx
13 | - idml
14 | scope: text.plain.indesign
15 | contexts:
16 | main:
17 | - include: scope:text.plain
18 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (Adobe Photoshop).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (Adobe Photoshop)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - psb
9 | - psd
10 | scope: text.plain.ps
11 | contexts:
12 | main:
13 | - include: scope:text.plain
14 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (Adobe Premiere Pro).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (Adobe Premiere Pro)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - prel
9 | - prproj
10 | - psq
11 | scope: text.plain.premiere
12 | contexts:
13 | main:
14 | - include: scope:text.plain
15 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (Archive).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (Archive)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - 7z
9 | - 7zip
10 | - gz
11 | - pzip
12 | - rar
13 | - saz
14 | - tar
15 | - tgz
16 | - wim
17 | - zip
18 | scope: text.plain.archive
19 | contexts:
20 | main:
21 | - include: scope:text.plain
22 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (Audio).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (Audio)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - mp3
9 | - m4p
10 | - aac
11 | - aiff
12 | - au
13 | - flac
14 | - m4a
15 | - mpc
16 | - mp+
17 | - mpp
18 | - oga
19 | - opus
20 | - ra
21 | - rm
22 | - wav
23 | - wma
24 | scope: text.plain.audio
25 | contexts:
26 | main:
27 | - include: scope:text.plain
28 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (Buildpacks).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (Buildpacks)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .buildpacks
9 | scope: text.plain.buildpacks
10 | contexts:
11 | main:
12 | - include: scope:text.plain
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (ESLint).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (ESLint)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .eslintcache
9 | scope: text.plain.eslint
10 | contexts:
11 | main:
12 | - include: scope:text.plain
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (Font).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (Font)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - eot
9 | - otf
10 | - ttf
11 | - woff
12 | - woff2
13 | scope: text.plain.font
14 | contexts:
15 | main:
16 | - include: scope:text.plain
17 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (License).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (License)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - license
9 | scope: text.plain.license
10 | contexts:
11 | main:
12 | - include: scope:text.plain
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (Microsoft Access).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (Microsoft Access)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - adn
9 | - accdb
10 | - accdr
11 | - accdt
12 | - accda
13 | - mdw
14 | - accde
15 | - mam
16 | - maq
17 | - mar
18 | - mat
19 | - maf
20 | - laccdb
21 | scope: text.plain.access
22 | contexts:
23 | main:
24 | - include: scope:text.plain
25 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (Microsoft Excel).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (Microsoft Excel)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - xls
9 | - xlsx
10 | - xlsm
11 | - xlsb
12 | - xlt
13 | scope: text.plain.excel
14 | contexts:
15 | main:
16 | - include: scope:text.plain
17 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (Microsoft OneNote).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (Microsoft OneNote)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - one
9 | scope: text.plain.onenote
10 | contexts:
11 | main:
12 | - include: scope:text.plain
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (Microsoft PowerPoint).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (Microsoft PowerPoint)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - ppt
9 | - pptx
10 | - pps
11 | - ppsx
12 | scope: text.plain.powerpoint
13 | contexts:
14 | main:
15 | - include: scope:text.plain
16 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (Microsoft Word).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (Microsoft Word)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - doc
9 | - docx
10 | - docm
11 | - docxml
12 | - dotm
13 | - dotx
14 | - wri
15 | scope: text.plain.word
16 | contexts:
17 | main:
18 | - include: scope:text.plain
19 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (NodeJS).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (NodeJS)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .node-version
9 | - .nvmrc
10 | scope: text.plain.nodejs
11 | contexts:
12 | main:
13 | - include: scope:text.plain
14 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (PDF).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (PDF)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - pdf
9 | scope: text.plain.pdf
10 | contexts:
11 | main:
12 | - include: scope:text.plain
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (Ruby).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (Ruby)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .ruby-version
9 | - .ruby-gemset
10 | - .rspec
11 | scope: text.plain.ruby
12 | contexts:
13 | main:
14 | - include: scope:text.plain
15 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (Sketch).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (Sketch)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - sketch
9 | scope: text.plain.sketch
10 | contexts:
11 | main:
12 | - include: scope:text.plain
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (Video).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (Video)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - avi
9 | - mp4
10 | - mov
11 | - mkv
12 | - h264
13 | - webm
14 | - wmv
15 | - ogv
16 | - ogg
17 | - 3gp
18 | - m4v
19 | - mpg
20 | - mpeg
21 | - 3gpp
22 | - ogm
23 | scope: text.plain.video
24 | contexts:
25 | main:
26 | - include: scope:text.plain
27 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Plain Text (Windows Shortcut).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Plain Text (Windows Shortcut)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - lnk
9 | scope: text.plain.lnk
10 | contexts:
11 | main:
12 | - include: scope:text.plain
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Shell Script (ESLint).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Shell Script (ESLint)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .eslintignore
9 | scope: source.shell.eslint
10 | contexts:
11 | main:
12 | - include: scope:source.shell
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Shell Script (NPM).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Shell Script (NPM)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .npmignore
9 | - .npmrc
10 | scope: source.shell.npm
11 | contexts:
12 | main:
13 | - include: scope:source.shell
14 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Shell Script (Ruby).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Shell Script (Ruby)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .rvmrc
9 | scope: source.shell.ruby
10 | contexts:
11 | main:
12 | - include: scope:source.shell
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Shell Script (Stylelint).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Shell Script (Stylelint)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .stylelintignore
9 | scope: source.shell.stylelint
10 | contexts:
11 | main:
12 | - include: scope:source.shell
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/Vimrc (VimL).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: Vimrc (VimL)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .vimrc
9 | - .gvimrc
10 | - _vimrc
11 | - _gvimrc
12 | scope: source.viml.vimrc
13 | contexts:
14 | main:
15 | - include: scope:source.viml
16 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/XML (SVG).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: XML (SVG)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - svg
9 | scope: text.xml.svg
10 | contexts:
11 | main:
12 | - include: scope:text.xml
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/YAML (CircleCI).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: YAML (CircleCI)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - circle.yml
9 | scope: source.yaml.circleci
10 | contexts:
11 | main:
12 | - include: scope:source.yaml
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/YAML (Docker).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: YAML (Docker)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - docker-compose.yml
9 | scope: source.yaml.docker
10 | contexts:
11 | main:
12 | - include: scope:source.yaml
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/YAML (ESLint).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: YAML (ESLint)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .eslintrc.yaml
9 | - .eslintrc.yml
10 | scope: source.yaml.eslint
11 | contexts:
12 | main:
13 | - include: scope:source.yaml
14 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/YAML (Lock).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: YAML (Lock)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - Gemfile.lock
9 | - Berksfile.lock
10 | scope: source.yaml.lock
11 | contexts:
12 | main:
13 | - include: scope:source.yaml
14 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/YAML (Procfile).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: YAML (Procfile)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - Procfile
9 | scope: source.yaml.procfile
10 | contexts:
11 | main:
12 | - include: scope:source.yaml
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/YAML (Stylelint).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: YAML (Stylelint)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - .stylelintrc.yaml
9 | - .stylelintrc.yml
10 | scope: source.yaml.stylelint
11 | contexts:
12 | main:
13 | - include: scope:source.yaml
14 |
--------------------------------------------------------------------------------
/Packages/User/my_language/aliases/YAML (Yarn).sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | name: YAML (Yarn)
5 | version: 2
6 | hidden: true
7 | file_extensions:
8 | - yarn.lock
9 | scope: source.yaml.yarn
10 | contexts:
11 | main:
12 | - include: scope:source.yaml
13 |
--------------------------------------------------------------------------------
/Packages/User/my_language/requirements-txt/Comments.tmPreferences:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | name
5 | Comments
6 | scope
7 | source.pip-requirements
8 | settings
9 |
10 | shellVariables
11 |
12 |
13 | name
14 | TM_COMMENT_START
15 | value
16 | #
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/Packages/User/my_language/requirements-txt/pip-requirements.sublime-syntax:
--------------------------------------------------------------------------------
1 | %YAML 1.2
2 | ---
3 | # http://www.sublimetext.com/docs/syntax.html
4 | # derived from "ms-python.python-2024.11.2024071901/syntaxes/pip-requirements.tmLanguage.json"
5 | name: pip requirements
6 | scope: source.pip-requirements
7 | version: 2
8 |
9 | file_extensions:
10 | - requirements-dev.txt
11 | - requirements-development.txt
12 | - requirements-linux.txt
13 | - requirements-mac.txt
14 | - requirements-prod.txt
15 | - requirements-production.txt
16 | - requirements-win.txt
17 | - requirements-windows.txt
18 | - requirements.txt
19 | - requirements-dev.in
20 | - requirements-development.in
21 | - requirements-linux.in
22 | - requirements-mac.in
23 | - requirements-prod.in
24 | - requirements-production.in
25 | - requirements-win.in
26 | - requirements-windows.in
27 | - requirements.in
28 |
29 | contexts:
30 | main:
31 | - match: \s*\\s*$
32 | comment: explanation
33 | scope: constant.character.escape
34 | - match: '#.*'
35 | scope: comment.line.number-sign
36 | - match: "'"
37 | push:
38 | - meta_scope: string.quoted.single
39 | - match: "'"
40 | pop: 1
41 | - match: '"'
42 | push:
43 | - meta_scope: string.quoted.double
44 | - match: '"'
45 | pop: 1
46 | - match: /?(\S+/)+\S*
47 | scope: string.path
48 | - comment: project name
49 | match: '^\s*([A-Za-z0-9][A-Za-z0-9._-]*[A-Za-z0-9]|[A-Za-z0-9])'
50 | captures:
51 | 1: entity.name.class
52 | - comment: extras
53 | match: '\[([^\]]+)\]'
54 | captures:
55 | 1: entity.name.tag
56 | - comment: version specification
57 | match: '(<|<=|!=|==|>=|>|~=|===)\s*([\w.*+!-]+)'
58 | captures:
59 | 1: keyword.operator.comparison
60 | 2: constant.numeric
61 | - comment: environment markers
62 | match: ;\s*(python_version|python_full_version|os_name|sys_platform|platform_release|platform_system|platform_version|platform_machine|platform_python_implementation|implementation_name|implementation_version|extra)\s*(<|<=|!=|==|>=|>|~=|===)
63 | captures:
64 | 1: entity.name.selector
65 | 2: keyword.operator.comparison
66 | - comment: command-line options (e.g. `--no-links` or `-c`)
67 | match: '(?:^|\s)-[^\s=]+'
68 | scope: entity.other.attribute-name
69 |
--------------------------------------------------------------------------------
/Packages/User/my_theme/.gitignore:
--------------------------------------------------------------------------------
1 | #################
2 | ## Eclipse
3 | #################
4 |
5 | *.pydevproject
6 | .project
7 | .metadata
8 | bin/
9 | tmp/
10 | *.tmp
11 | *.bak
12 | *.swp
13 | *~.nib
14 | local.properties
15 | .classpath
16 | .settings/
17 | .loadpath
18 |
19 | # External tool builders
20 | .externalToolBuilders/
21 |
22 | # Locally stored "Eclipse launch configurations"
23 | *.launch
24 |
25 | # CDT-specific
26 | .cproject
27 |
28 | # PDT-specific
29 | .buildpath
30 |
31 |
32 | #################
33 | ## Visual Studio
34 | #################
35 |
36 | ## Ignore Visual Studio temporary files, build results, and
37 | ## files generated by popular Visual Studio add-ons.
38 |
39 | # User-specific files
40 | *.suo
41 | *.user
42 | *.sln.docstates
43 |
44 | # Build results
45 |
46 | [Dd]ebug/
47 | [Rr]elease/
48 | x64/
49 | build/
50 | [Bb]in/
51 | [Oo]bj/
52 |
53 | # MSTest test Results
54 | [Tt]est[Rr]esult*/
55 | [Bb]uild[Ll]og.*
56 |
57 | *_i.c
58 | *_p.c
59 | *.ilk
60 | *.meta
61 | *.obj
62 | *.pch
63 | *.pdb
64 | *.pgc
65 | *.pgd
66 | *.rsp
67 | *.sbr
68 | *.tlb
69 | *.tli
70 | *.tlh
71 | *.tmp
72 | *.tmp_proj
73 | *.log
74 | *.vspscc
75 | *.vssscc
76 | .builds
77 | *.pidb
78 | *.log
79 | *.scc
80 |
81 | # Visual C++ cache files
82 | ipch/
83 | *.aps
84 | *.ncb
85 | *.opensdf
86 | *.sdf
87 | *.cachefile
88 |
89 | # Visual Studio profiler
90 | *.psess
91 | *.vsp
92 | *.vspx
93 |
94 | # Guidance Automation Toolkit
95 | *.gpState
96 |
97 | # ReSharper is a .NET coding add-in
98 | _ReSharper*/
99 | *.[Rr]e[Ss]harper
100 |
101 | # TeamCity is a build add-in
102 | _TeamCity*
103 |
104 | # DotCover is a Code Coverage Tool
105 | *.dotCover
106 |
107 | # NCrunch
108 | *.ncrunch*
109 | .*crunch*.local.xml
110 |
111 | # Installshield output folder
112 | [Ee]xpress/
113 |
114 | # DocProject is a documentation generator add-in
115 | DocProject/buildhelp/
116 | DocProject/Help/*.HxT
117 | DocProject/Help/*.HxC
118 | DocProject/Help/*.hhc
119 | DocProject/Help/*.hhk
120 | DocProject/Help/*.hhp
121 | DocProject/Help/Html2
122 | DocProject/Help/html
123 |
124 | # Click-Once directory
125 | publish/
126 |
127 | # Publish Web Output
128 | *.Publish.xml
129 | *.pubxml
130 |
131 | # NuGet Packages Directory
132 | ## TODO: If you have NuGet Package Restore enabled, uncomment the next line
133 | #packages/
134 |
135 | # Windows Azure Build Output
136 | csx
137 | *.build.csdef
138 |
139 | # Windows Store app package directory
140 | AppPackages/
141 |
142 | # Others
143 | sql/
144 | *.Cache
145 | ClientBin/
146 | [Ss]tyle[Cc]op.*
147 | ~$*
148 | *~
149 | *.dbmdl
150 | *.[Pp]ublish.xml
151 | *.pfx
152 | *.publishsettings
153 |
154 | # RIA/Silverlight projects
155 | Generated_Code/
156 |
157 | # Backup & report files from converting an old project file to a newer
158 | # Visual Studio version. Backup files are not needed, because we have git ;-)
159 | _UpgradeReport_Files/
160 | Backup*/
161 | UpgradeLog*.XML
162 | UpgradeLog*.htm
163 |
164 | # SQL Server files
165 | App_Data/*.mdf
166 | App_Data/*.ldf
167 |
168 | #############
169 | ## Windows detritus
170 | #############
171 |
172 | # Windows image file caches
173 | Thumbs.db
174 | ehthumbs.db
175 |
176 | # Folder config file
177 | Desktop.ini
178 |
179 | # Recycle Bin used on file shares
180 | $RECYCLE.BIN/
181 |
182 | # Mac crap
183 | .DS_Store
184 |
185 |
186 | #############
187 | ## Python
188 | #############
189 |
190 | *.py[co]
191 |
192 | # Packages
193 | *.egg
194 | *.egg-info
195 | dist/
196 | build/
197 | eggs/
198 | parts/
199 | var/
200 | sdist/
201 | develop-eggs/
202 | .installed.cfg
203 |
204 | # Installer logs
205 | pip-log.txt
206 |
207 | # Unit test / coverage reports
208 | .coverage
209 | .tox
210 |
211 | #Translations
212 | *.mo
213 |
214 | #Mr Developer
215 | .mr.developer.cfg
216 |
--------------------------------------------------------------------------------
/Packages/User/my_theme/git_badges/added.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/User/my_theme/git_badges/added.png
--------------------------------------------------------------------------------
/Packages/User/my_theme/git_badges/added@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/User/my_theme/git_badges/added@2x.png
--------------------------------------------------------------------------------
/Packages/User/my_theme/git_badges/added@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/User/my_theme/git_badges/added@3x.png
--------------------------------------------------------------------------------
/Packages/User/my_theme/git_badges/modified.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/User/my_theme/git_badges/modified.png
--------------------------------------------------------------------------------
/Packages/User/my_theme/git_badges/modified@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/User/my_theme/git_badges/modified@2x.png
--------------------------------------------------------------------------------
/Packages/User/my_theme/git_badges/modified@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/User/my_theme/git_badges/modified@3x.png
--------------------------------------------------------------------------------
/Packages/User/my_theme/git_badges/src.txt:
--------------------------------------------------------------------------------
1 | https://github.com/arxeiss/Sublime-GitBadgesLikeVSCode
--------------------------------------------------------------------------------
/Packages/User/my_theme/git_badges/staged.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/User/my_theme/git_badges/staged.png
--------------------------------------------------------------------------------
/Packages/User/my_theme/git_badges/staged@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/User/my_theme/git_badges/staged@2x.png
--------------------------------------------------------------------------------
/Packages/User/my_theme/git_badges/staged@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/User/my_theme/git_badges/staged@3x.png
--------------------------------------------------------------------------------
/Packages/User/my_theme/git_badges/untracked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/User/my_theme/git_badges/untracked.png
--------------------------------------------------------------------------------
/Packages/User/my_theme/git_badges/untracked@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/User/my_theme/git_badges/untracked@2x.png
--------------------------------------------------------------------------------
/Packages/User/my_theme/git_badges/untracked@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/User/my_theme/git_badges/untracked@3x.png
--------------------------------------------------------------------------------
/Packages/User/my_theme/gutters/right_arrow_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/User/my_theme/gutters/right_arrow_green.png
--------------------------------------------------------------------------------
/Packages/User/my_theme/gutters/right_arrow_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/User/my_theme/gutters/right_arrow_red.png
--------------------------------------------------------------------------------
/Packages/User/my_theme/gutters/right_arrow_yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jfcherng-sublime/ST-my-settings/dfeb70b1771160bbebd5e2621ee9cd4f9da8be13/Packages/User/my_theme/gutters/right_arrow_yellow.png
--------------------------------------------------------------------------------
/Packages/User/scope_hunter.sublime-settings:
--------------------------------------------------------------------------------
1 | {
2 | // Show the scope backtrace (ST >= 4087)
3 | "context_backtrace": true,
4 |
5 | // Show color and style at the given point
6 | "styling": true,
7 |
8 | // Show current syntax and color scheme paths
9 | // (click to open if using tooltips)
10 | "file_paths": true,
11 | }
12 |
--------------------------------------------------------------------------------
/Packages/my_demo_38/.python-version:
--------------------------------------------------------------------------------
1 | 3.8
2 |
--------------------------------------------------------------------------------
/Packages/my_demo_38/Default.sublime-commands:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "caption": "My Text Input Handler Demo",
4 | "command": "my_text_input_handler_demo"
5 | }
6 | ]
7 |
--------------------------------------------------------------------------------
/Packages/my_demo_38/TextInputHandlerDemo.py:
--------------------------------------------------------------------------------
1 | from typing import Any, Dict
2 |
3 | import sublime
4 | import sublime_plugin
5 |
6 |
7 | class MyTextInputHandlerDemoCommand(sublime_plugin.TextCommand):
8 | def __init__(self, view):
9 | self.view = view
10 | self.input_handler = MyTestInputHandler()
11 |
12 | def input(self, args: Dict[str, Any] = {}) -> sublime_plugin.CommandInputHandler:
13 | return self.input_handler
14 |
15 | def run(self, edit: sublime.Edit, **args: Dict[str, Any]) -> None:
16 | print(f"{self.name()} run args: {args}")
17 |
18 | if self.input_handler.name() in args:
19 | return
20 |
21 | if window := self.view.window():
22 | window.run_command("show_overlay", {"overlay": "command_palette", "command": self.name()})
23 |
24 | def input_description(self) -> str:
25 | return "Here's input_description"
26 |
27 |
28 | class MyTestInputHandler(sublime_plugin.TextInputHandler):
29 | def placeholder(self) -> str:
30 | return "Here's placeholder"
31 |
32 | def preview(self, text: str) -> sublime.Html:
33 | return sublime.Html(
34 | f"{text[:2]} / {text[2:4]} / {text[4:6]} / {text[6:]}"
35 | + 'Link to Google'
36 | + '
Here is a new line'
37 | )
38 |
39 | def validate(self, text: str) -> bool:
40 | is_valid = text == "pass"
41 |
42 | if not is_valid:
43 | sublime.error_message(f"invalid input: {text}")
44 |
45 | return is_valid
46 |
47 | def cancel(self) -> None:
48 | sublime.message_dialog("canceled")
49 |
50 | def confirm(self, text: str) -> None:
51 | sublime.message_dialog(f"confirmed: {text}")
52 |
53 | def description(self, text: str) -> str:
54 | return f"My command description: {text}"
55 |
--------------------------------------------------------------------------------
/Packages/my_demo_38/pyproject.toml:
--------------------------------------------------------------------------------
1 | [tool.ruff]
2 | preview = true
3 | line-length = 120
4 | target-version = 'py38'
5 | exclude = [
6 | "*/libs/*",
7 | ".git",
8 | ".mypy_cache",
9 | ".venv",
10 | ".venv-*",
11 | "branch-*",
12 | "stubs",
13 | "tests/files",
14 | "typings",
15 | "vendor",
16 | "venv",
17 | "venv-*",
18 | ]
19 |
20 | [tool.ruff.lint]
21 | select = ["E", "F", "W", "I", "UP"]
22 | ignore = ["E203"]
23 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/.python-version:
--------------------------------------------------------------------------------
1 | 3.8
2 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/0_lsp_utils.py:
--------------------------------------------------------------------------------
1 | from __future__ import annotations
2 |
3 | import ctypes
4 | from typing import Tuple
5 |
6 | from more_itertools import first_true
7 |
8 | ELECTRON_VER_STR = str
9 | GLIBC_VER_TUPLE = Tuple[int, int]
10 | NODE_VER_STR = str
11 |
12 |
13 | def get_glibc_version() -> GLIBC_VER_TUPLE | None:
14 | try:
15 | libc = ctypes.CDLL("libc.so.6")
16 | gnu_get_libc_version = libc.gnu_get_libc_version
17 | gnu_get_libc_version.restype = ctypes.c_char_p
18 | version_str = gnu_get_libc_version().decode("utf-8")
19 | return tuple(map(int, version_str.split(".")))
20 | except Exception:
21 | return None
22 |
23 |
24 | def revise_node_electron_version() -> None:
25 | from lsp_utils import node_runtime
26 |
27 | # To know the min glibc version requirement of "THE_BIN_FILE", run
28 | # $ objdump -T "THE_BIN_FILE" | command grep -Eo 'GLIBC_[0-9.]+' | sort -uV | tail -1
29 |
30 | # @see https://nodejs.org/en/download/prebuilt-binaries/
31 | node_min_reqs: tuple[tuple[GLIBC_VER_TUPLE, NODE_VER_STR], ...] = (
32 | # ((min_glibc_version), "node_version"),
33 | ((2, 28), "22.13.0"),
34 | ((2, 17), "17.9.1"),
35 | )
36 | # @see https://github.com/electron/electron/releases
37 | electron_min_reqs: tuple[tuple[GLIBC_VER_TUPLE, ELECTRON_VER_STR, NODE_VER_STR], ...] = (
38 | # ((min_glibc_version), "electron_version", "node_version"),
39 | ((2, 25), "37.0.0-alpha.1", "22.14.0"),
40 | ((2, 18), "29.4.6", "20.9.0"),
41 | ((2, 17), "28.3.3", "18.18.2"),
42 | )
43 |
44 | glibc_ver = get_glibc_version() or (99999, 0)
45 |
46 | if node_min_req := first_true(node_min_reqs, pred=lambda x: glibc_ver >= x[0]):
47 | node_runtime.NODE_RUNTIME_VERSION = node_min_req[1]
48 | else:
49 | print("[ERROR] glibc is too old for Node.js...")
50 |
51 | if electron_min_req := first_true(electron_min_reqs, pred=lambda x: glibc_ver >= x[0]):
52 | node_runtime.ELECTRON_RUNTIME_VERSION = electron_min_req[1]
53 | node_runtime.ELECTRON_NODE_VERSION = electron_min_req[2]
54 | else:
55 | print("[ERROR] glibc is too old for Electron...")
56 |
57 |
58 | try:
59 | revise_node_electron_version()
60 | except Exception as e:
61 | print(__file__, e)
62 |
63 | # Shell script for finding min glibc version
64 | """
65 | #!/usr/bin/env bash
66 |
67 | find_glibc() {
68 | local file=$1
69 |
70 | echo "[INFO] The min GLIBC version is..."
71 | objdump -T "${file}" | command grep -Eo 'GLIBC_[0-9.]+' | sort -uV | tail -1
72 | }
73 |
74 | find_glibc_node() {
75 | local v=$1
76 |
77 | wget "https://nodejs.org/dist/v${v}/node-v${v}-linux-x64.tar.xz"
78 | tar axf "node-v${v}-linux-x64.tar.xz"
79 | find_glibc "node-v${v}-linux-x64/bin/node"
80 | }
81 |
82 | find_glibc_electron() {
83 | local v=$1
84 |
85 | wget "https://github.com/electron/electron/releases/download/v${v}/electron-v${v}-linux-x64.zip"
86 | unzip -oq "electron-v${v}-linux-x64.zip" -d "electron-v${v}-linux-x64"
87 | find_glibc "electron-v${v}-linux-x64/electron"
88 | }
89 | """
90 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/Default.sublime-commands:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "caption": "My Plugin: Expand JSON",
4 | "command": "expand_json",
5 | },
6 | {
7 | "caption": "My Plugin: Flatten JSON",
8 | "command": "flatten_json",
9 | },
10 | ]
11 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/always_indent_command.py:
--------------------------------------------------------------------------------
1 | from __future__ import annotations
2 |
3 | import sublime
4 | import sublime_plugin
5 |
6 |
7 | class AlwaysIndentCommand(sublime_plugin.TextCommand):
8 | def run(self, edit: sublime.Edit) -> None:
9 | for sel in reversed(self.view.sel()):
10 | for line in reversed(self.view.lines(sel)):
11 | self.view.insert(edit, line.begin(), "\t")
12 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/console_exec_command.py:
--------------------------------------------------------------------------------
1 | from __future__ import annotations
2 |
3 | import os
4 | import shlex
5 | import subprocess
6 | import tempfile
7 | import textwrap
8 | from typing import Any
9 |
10 | import sublime
11 | import sublime_plugin
12 |
13 | PLUGIN_NAME = os.path.basename(__file__)
14 |
15 |
16 | def reformat(s: str) -> str:
17 | return textwrap.dedent(s).lstrip()
18 |
19 |
20 | class ConsoleExecCommand(sublime_plugin.WindowCommand):
21 | """
22 | Execute a command and redirect its output into a console window.
23 | This is based on the default exec command.
24 | """
25 |
26 | def run(
27 | self,
28 | cmd: list[str] = [],
29 | env: dict[str, str] = {},
30 | path: str = "",
31 | shell: bool = False,
32 | working_dir: str | None = None,
33 | win_console: list[str] | None = None,
34 | unix_console: list[str] | None = None,
35 | **kwargs: Any,
36 | ) -> None:
37 | if not (view := self.window.active_view()):
38 | return
39 |
40 | sublime.status_message(f"Running {' '.join(cmd)}")
41 |
42 | if os.name == "nt":
43 | console = win_console or ["cmd.exe", "/c"]
44 | pause = ["pause"]
45 | console_cmd = console + cmd + ["&"] + pause
46 | else:
47 | with tempfile.NamedTemporaryFile("w", encoding="utf-8", prefix="st-exec-", delete=False) as f:
48 | f.write(self.generate_linux_script(cmd))
49 | os.chmod(f.name, 0o777)
50 | console = unix_console or self.get_unix_console()
51 | console_cmd = console + [f.name]
52 |
53 | self.debug_print(f"reconstructed {console_cmd = }")
54 |
55 | # default to the current file's directory if no working directory was provided
56 | if working_dir:
57 | cwd = working_dir
58 | else:
59 | cwd = os.path.dirname(filename) if (filename := view.file_name()) else os.getcwd()
60 |
61 | self.debug_print(f"{cwd = }")
62 |
63 | # get environment
64 | if user_env := view.settings().get("build_env"):
65 | env.update(user_env)
66 |
67 | # get executing environment
68 | proc_env = {**os.environ, **env}
69 | for key in proc_env:
70 | proc_env[key] = os.path.expandvars(proc_env[key])
71 |
72 | # run in new console
73 | old_path: str | None = None
74 | try:
75 | # set temporary PATH to locate executable
76 | if path:
77 | old_path = os.environ["PATH"]
78 | os.environ["PATH"] = os.path.expandvars(path)
79 | subprocess.Popen(console_cmd, env=proc_env, cwd=cwd, shell=shell)
80 | finally:
81 | if old_path:
82 | os.environ["PATH"] = old_path
83 |
84 | def get_unix_console(self) -> list[str]:
85 | sessions = ["gnome-session", "ksmserver", "xfce4-session", "lxqt-session", "lxsession"]
86 | ps = f'ps -eo comm | grep -E "{"|".join(sessions)}"'
87 | # get the first found session or an empty string
88 | session_found = os.popen(ps).read().partition("\n")[0]
89 | # Gnome
90 | if session_found == "gnome-session":
91 | console = ["gnome-terminal", "-e"]
92 | # XDE
93 | elif session_found == "xfce4-session":
94 | console = ["terminal", "-e"]
95 | # KDE
96 | elif session_found == "ksmserver":
97 | console = ["konsole", "-e"]
98 | # LXDE
99 | elif session_found == "lxsession":
100 | console = ["lxterminal", "-e"]
101 | # LXQT
102 | elif session_found == "lxqt-session":
103 | console = ["qterminal", "-e"]
104 | # default
105 | else:
106 | console = ["xterm", "-e"]
107 | return console
108 |
109 | @staticmethod
110 | def generate_linux_script(cmd: list[str]) -> str:
111 | escaped_cmd = " ".join(map(shlex.quote, cmd))
112 | return reformat(f"""
113 | #!/usr/bin/env bash
114 | {escaped_cmd}
115 | echo
116 | echo "Press any key to continue..."
117 | read -n1
118 | """)
119 |
120 | def debug_print(self, *arg: Any, **kwargs: Any) -> None:
121 | print(f"[{PLUGIN_NAME}]", *arg, **kwargs)
122 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/copy_without_newline_command.py:
--------------------------------------------------------------------------------
1 | from __future__ import annotations
2 |
3 | import sublime
4 | import sublime_plugin
5 |
6 |
7 | class CopyWithoutNewlineCommand(sublime_plugin.TextCommand):
8 | def run(self, _: sublime.Edit) -> None:
9 | if self.view.has_non_empty_selection_region():
10 | self.view.run_command("copy")
11 | return
12 |
13 | sublime.set_clipboard(
14 | "\n".join(
15 | self.view.substr(self.view.line(r))
16 | for r in self.view.sel()
17 | # ...
18 | )
19 | )
20 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/dependencies.json:
--------------------------------------------------------------------------------
1 | {
2 | "*": {
3 | "*": [
4 | "more-itertools",
5 | "typing-extensions"
6 | ]
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/deselect_command.py:
--------------------------------------------------------------------------------
1 | # Sublime Deselect plugin
2 | #
3 | # based on a forum post by C0D312:
4 | # https://www.sublimetext.com/forum/viewtopic.php?f=2&t=4716#p21219
5 |
6 | from __future__ import annotations
7 |
8 | import sublime
9 | import sublime_plugin
10 |
11 |
12 | class DeselectCommand(sublime_plugin.TextCommand):
13 | def run(self, edit: sublime.Edit) -> None:
14 | if len(sel := self.view.sel()) == 0:
15 | return
16 |
17 | end = sel[0].b
18 |
19 | sel.clear()
20 | sel.add(end)
21 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/dev_mode.py:
--------------------------------------------------------------------------------
1 | from __future__ import annotations
2 |
3 | import functools
4 | from collections.abc import Callable
5 | from typing import Any, TypeVar, cast
6 |
7 | import sublime
8 | import sublime_plugin
9 |
10 | _T_AnyCallable = TypeVar("_T_AnyCallable", bound=Callable)
11 |
12 | PLUGIN_NAME = "jfcherng_dev_mode"
13 |
14 | VIEW_STATUS_KEY_SHOW_SEL = "VIEW_STATUS_KEY_SHOW_SEL"
15 | VIEW_STATUS_KEY_SHOW_WSVB_IDS = "VIEW_STATUS_KEY_SHOW_WSVB_IDS"
16 |
17 |
18 | def plugin_loaded() -> None:
19 | """Executed when this plugin is loaded."""
20 |
21 | def _on_st_settings_changed() -> None:
22 | if not is_in_dev_mode():
23 | cleanup()
24 |
25 | st_settings = get_st_settings()
26 | st_settings.add_on_change(PLUGIN_NAME, _on_st_settings_changed)
27 |
28 |
29 | def plugin_unloaded() -> None:
30 | """Executed when this plugin is unloaded."""
31 | cleanup()
32 |
33 |
34 | def cleanup() -> None:
35 | for window in sublime.windows():
36 | for view in window.views(include_transient=True):
37 | view.erase_status(VIEW_STATUS_KEY_SHOW_SEL)
38 | view.erase_status(VIEW_STATUS_KEY_SHOW_WSVB_IDS)
39 |
40 |
41 | def get_st_settings() -> sublime.Settings:
42 | return sublime.load_settings("Preferences.sublime-settings")
43 |
44 |
45 | def is_in_dev_mode() -> bool:
46 | return get_st_settings().get("dev_mode", False)
47 |
48 |
49 | def must_in_dev_mode(*, failed_return: Any = None) -> Callable[[_T_AnyCallable], _T_AnyCallable]:
50 | def _decorator(func: _T_AnyCallable) -> _T_AnyCallable:
51 | @functools.wraps(func)
52 | def _wrapped(*args, **kwargs) -> None:
53 | if not is_in_dev_mode():
54 | return failed_return
55 | return func(*args, **kwargs)
56 |
57 | return cast(_T_AnyCallable, _wrapped)
58 |
59 | return _decorator
60 |
61 |
62 | class JfcherngDevModeListener(sublime_plugin.EventListener):
63 | @must_in_dev_mode()
64 | def on_selection_modified(self, view: sublime.View) -> None:
65 | self.show_sel(view)
66 |
67 | @must_in_dev_mode()
68 | def on_activated(self, view: sublime.View) -> None:
69 | self.show_wsvb_ids(view)
70 |
71 | def show_sel(self, view: sublime.View) -> None:
72 | region_reprs: list[str] = []
73 | for region in view.sel():
74 | region_reprs.append(f"{region.a}" if region.empty() else f"{region.a}-{region.b}")
75 |
76 | status_text = ",".join(region_reprs)
77 | view.set_status(VIEW_STATUS_KEY_SHOW_SEL, f"sel({status_text})")
78 |
79 | def show_wsvb_ids(self, view: sublime.View) -> None:
80 | window_id = window.id() if (window := view.window()) else "?"
81 | sheet_id = sheet.id() if (sheet := view.sheet()) else "?"
82 | view_id = view.id()
83 | buffer_id = view.buffer_id()
84 |
85 | view.set_status(VIEW_STATUS_KEY_SHOW_WSVB_IDS, f"w{window_id}/s{sheet_id}/v{view_id}/b{buffer_id}")
86 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/extend_selection_to_previous_line_command.py:
--------------------------------------------------------------------------------
1 | from __future__ import annotations
2 |
3 | import sublime
4 | import sublime_plugin
5 |
6 |
7 | class ExtendSelectionToPreviousLineCommand(sublime_plugin.TextCommand):
8 | """
9 | Similar to `ctrl+l` but the selection is upward.
10 |
11 | Recommended keybinding:
12 | ```js
13 | { "keys": ["..."], "command": "extend_selection_to_previous_line" },
14 | ```
15 | """
16 |
17 | def run(self, edit: sublime.Edit) -> None:
18 | v = self.view
19 | sel = v.sel()
20 |
21 | regions: list[sublime.Region] = []
22 | for r in sel:
23 | row, col = v.rowcol(old_end := r.end())
24 | new_begin = max(old_end, v.line(r).end()) if col else old_end
25 |
26 | row, col = v.rowcol(old_begin := r.begin())
27 | new_end = v.text_point(row + 1, 0) if col else old_begin
28 |
29 | regions.append(sublime.Region(new_begin, new_end))
30 |
31 | sel.clear()
32 | sel.add_all(regions)
33 |
34 | v.run_command("move", {"by": "lines", "extend": True, "forward": False})
35 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/find_and_replace.py:
--------------------------------------------------------------------------------
1 | from __future__ import annotations
2 |
3 | import functools
4 | import re
5 | from dataclasses import dataclass
6 |
7 | import sublime
8 | import sublime_plugin
9 |
10 |
11 | @dataclass
12 | class FindReplacePair:
13 | find: str | None = None
14 | replace: str | None = None
15 | flags: str | None = None
16 |
17 |
18 | class FindAndReplaceCommand(sublime_plugin.WindowCommand):
19 | _input_captions = {
20 | "find": "Find (regex): ",
21 | "replace": "Replace (regex): ",
22 | "flags": "Flags (regex): ",
23 | }
24 |
25 | def run(
26 | self,
27 | find: str | None = None,
28 | replace: str | None = None,
29 | flags: str | None = None,
30 | ) -> None:
31 | fr = FindReplacePair(find, replace, flags)
32 | self._ask_attr_and_replace(fr)
33 |
34 | def _ask_attr_and_replace(self, fr: FindReplacePair) -> None:
35 | for attr in self._input_captions.keys():
36 | if getattr(fr, attr, None) is None:
37 | return self._ask_user_input(attr, fr)
38 | self._do_replace(fr)
39 |
40 | def _ask_user_input(self, attr: str, fr: FindReplacePair) -> None:
41 | self.window.show_input_panel(
42 | self._input_captions[attr],
43 | "",
44 | on_done=functools.partial(self._user_input_done, attr=attr, fr=fr),
45 | on_change=None,
46 | on_cancel=None,
47 | )
48 |
49 | def _user_input_done(self, user_input: str, attr: str, fr: FindReplacePair) -> None:
50 | setattr(fr, attr, user_input)
51 | self._ask_attr_and_replace(fr)
52 |
53 | def _do_replace(self, fr: FindReplacePair) -> None:
54 | if not (v := self.window.active_view()):
55 | return
56 |
57 | v.run_command(
58 | "find_and_replace_worker",
59 | {
60 | "find": fr.find,
61 | "replace": fr.replace,
62 | "flags": fr.flags,
63 | },
64 | )
65 |
66 |
67 | class FindAndReplaceWorkerCommand(sublime_plugin.TextCommand):
68 | def run(self, edit: sublime.Edit, find: str, replace: str, flags: str = "") -> None:
69 | whole_region = sublime.Region(0, self.view.size())
70 |
71 | try:
72 | new_text = re.sub(
73 | find,
74 | replace,
75 | self.view.substr(whole_region),
76 | 0,
77 | self._parse_regex_flags(flags),
78 | )
79 | except re.error as e:
80 | return sublime.error_message(str(e))
81 |
82 | sel = self.view.sel()
83 | seletions = list(sel)
84 | self.view.replace(edit, whole_region, new_text)
85 | sel.clear()
86 | sel.add_all(seletions)
87 |
88 | @staticmethod
89 | def _parse_regex_flags(flags: str) -> int:
90 | """
91 | Parse string regex flags into an int value.
92 |
93 | Valid flags are:
94 | `A (ASCII)`, `I (IGNORECASE)`, `L (LOCALE)`, `M (MULTILINE)`,
95 | `S (DOTALL)`, `X (VERBOSE)`, `U (UNICODE)`.
96 |
97 | @see https://docs.python.org/3.8/library/re.html#re.A
98 | """
99 | return functools.reduce(lambda c, el: c | el, (getattr(re, flag, 0) for flag in flags), 0)
100 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/focus_active_output_panel_command.py:
--------------------------------------------------------------------------------
1 | from __future__ import annotations
2 |
3 | import sublime_plugin
4 |
5 |
6 | class FocusActiveOutputPanelCommand(sublime_plugin.WindowCommand):
7 | def run(self) -> None:
8 | if not (panel_name := self.window.active_panel()):
9 | return
10 |
11 | self.window.run_command("show_panel", {"panel": panel_name})
12 |
13 | if not panel_name.startswith("output."):
14 | return
15 |
16 | panel_name = panel_name[len("output.") :]
17 | panel = self.window.find_output_panel(panel_name)
18 | assert panel
19 | self.window.focus_view(panel)
20 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/goto_symbol_command.py:
--------------------------------------------------------------------------------
1 | """
2 | This command allows to navigate between symbols, which are listed in Ctrl+R.
3 |
4 | Example keybindings:
5 |
6 | ```json
7 | { "keys": ["ctrl+shift+,"], "command": "goto_symbol", "args": {"step": -1, "cycle": false} },
8 | { "keys": ["ctrl+shift+."], "command": "goto_symbol", "args": {"step": 1, "cycle": false} },
9 | ```
10 | """
11 |
12 | from __future__ import annotations
13 |
14 | import bisect
15 | from collections.abc import Sequence
16 | from typing import Literal
17 |
18 | import sublime
19 | import sublime_plugin
20 |
21 |
22 | class GotoSymbolCommand(sublime_plugin.TextCommand):
23 | def run(self, edit: sublime.Edit, *, step: Literal[-1, 1] = -1, cycle: bool = False) -> None:
24 | if not ((sel := self.view.sel()) and (sym_regions := self.view.symbol_regions())):
25 | return
26 | caret = sel[0].b
27 |
28 | found_idx = self._find_symbol_region_index(caret, sym_regions, step)
29 | if cycle:
30 | found_idx %= len(sym_regions)
31 | if not (0 <= found_idx < len(sym_regions)):
32 | return
33 |
34 | self._goto_symbol_region(sym_regions[found_idx])
35 |
36 | def _find_symbol_region_index(self, point: int, sym_regions: Sequence[sublime.SymbolRegion], step: int) -> int:
37 | """
38 | Finds a symbol region index.
39 |
40 | :param point: The point to find the symbol region index for.
41 | :param sym_regions: The symbol regions.
42 | :param step: The step value. `-1` for the previous symbol region, `1` for the next symbol region.
43 |
44 | :returns: The symbol region index. Ranged from `-1` to `len(sym_regions)`.
45 |
46 | :raises ValueError: If `step` is invalid.
47 | """
48 | symbol_points = tuple(r.region.a for r in sym_regions)
49 |
50 | # prev
51 | if step == -1:
52 | return bisect.bisect_left(symbol_points, point) - 1
53 | # next
54 | if step == 1:
55 | return bisect.bisect_right(symbol_points, point)
56 |
57 | raise ValueError(f"Invalid step value: {step}")
58 |
59 | def _goto_symbol_region(self, sym_region: sublime.SymbolRegion) -> None:
60 | point = sym_region.region.a
61 |
62 | self.view.sel().clear()
63 | self.view.sel().add(point)
64 | self.view.show_at_center(point)
65 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/just_one_space_command.py:
--------------------------------------------------------------------------------
1 | from __future__ import annotations
2 |
3 | from collections.abc import Generator, Iterable
4 |
5 | import sublime
6 | import sublime_plugin
7 |
8 |
9 | class JustOneSpaceCommand(sublime_plugin.TextCommand):
10 | def run(self, edit: sublime.Edit, *, space_chars: str = " ", replacement: str = " ") -> None:
11 | sel = self.view.sel()
12 |
13 | space_regions = list(self.extend_space_regions(regions=sel, space_chars=space_chars))
14 |
15 | sel.clear()
16 | for region in reversed(space_regions):
17 | if region:
18 | self.view.replace(edit, region, replacement)
19 | sel.add(region.a)
20 |
21 | def extend_space_regions(
22 | self,
23 | *,
24 | regions: Iterable[sublime.Region],
25 | space_chars: str,
26 | ) -> Generator[sublime.Region, None, None]:
27 | def extend_space_region(region: sublime.Region) -> sublime.Region:
28 | view_size = self.view.size()
29 | pt_l = pt_r = region.b # the visual caret position
30 | while pt_l > 0 and self.view.substr(pt_l - 1) in space_chars:
31 | pt_l -= 1
32 | while pt_r < view_size and self.view.substr(pt_r) in space_chars:
33 | pt_r += 1
34 | return sublime.Region(pt_l, pt_r)
35 |
36 | yield from self.merge_overlapped_regions(sorted(map(extend_space_region, regions)))
37 |
38 | @staticmethod
39 | def merge_overlapped_regions(regions: Iterable[sublime.Region]) -> Generator[sublime.Region, None, None]:
40 | # assume `regions` is sorted and regions in it are normalized (.a <= .b)
41 | prev_ = next_ = None
42 |
43 | for region in regions:
44 | next_ = region
45 |
46 | if prev_ is not None:
47 | if prev_.intersects(next_):
48 | prev_ = sublime.Region(prev_.a, next_.b)
49 | continue
50 | yield prev_
51 |
52 | prev_ = next_
53 |
54 | if prev_ is not None:
55 | yield prev_
56 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/pyproject.toml:
--------------------------------------------------------------------------------
1 | [tool.basedpyright]
2 | pythonVersion = "3.8"
3 |
4 | [tool.pyright]
5 | pythonVersion = "3.8"
6 |
7 | [tool.ruff]
8 | preview = true
9 | line-length = 120
10 | target-version = "py38"
11 | exclude = [
12 | "*/libs/*",
13 | ".git",
14 | ".mypy_cache",
15 | ".venv",
16 | ".venv-*",
17 | "branch-*",
18 | "stubs",
19 | "tests/files",
20 | "typings",
21 | "vendor",
22 | "venv",
23 | "venv-*",
24 | ]
25 |
26 | [tool.ruff.lint]
27 | select = ["E", "F", "W", "I", "UP"]
28 | ignore = ["E203"]
29 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/run_async_command.py:
--------------------------------------------------------------------------------
1 | from __future__ import annotations
2 |
3 | import sublime
4 | import sublime_plugin
5 |
6 |
7 | class RunAsyncCommand(sublime_plugin.WindowCommand):
8 | """Run a given command asynchronously."""
9 |
10 | def run(self, command: str, args: dict | None = None, timeout_ms: float = 0) -> None:
11 | sublime.set_timeout_async(lambda: self.window.run_command(command, args or {}), timeout_ms)
12 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/selection_to_top_command.py:
--------------------------------------------------------------------------------
1 | from __future__ import annotations
2 |
3 | import sublime
4 | import sublime_plugin
5 |
6 |
7 | class SelectionToTopCommand(sublime_plugin.TextCommand):
8 | """
9 | Jump the viewport in the file so that the selection is at the top of the
10 | file display area. Handy while conducting reviews.
11 |
12 | @see https://stackoverflow.com/a/70942374/4643765
13 | """
14 |
15 | def run(self, edit: sublime.Edit) -> None:
16 | region = self.view.sel()[0]
17 |
18 | offs = self.view.rowcol(region.begin())[0] * self.view.line_height()
19 | self.view.set_viewport_position((0.0, offs), True)
20 |
21 | self.view.sel().clear()
22 | self.view.sel().add(region)
23 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/step_tab_cycle_command.py:
--------------------------------------------------------------------------------
1 | """
2 | Modified from https://github.com/ahuff44/sublime-better-tab-cycling
3 |
4 | Keybinding example:
5 |
6 | // go to the previous tab sheet
7 | { "keys": ["ctrl+super+j"], "command": "step_tab_cycle", "args": { "steps": -1 } },
8 | // go to the next tab sheet
9 | { "keys": ["ctrl+super+l"], "command": "step_tab_cycle", "args": { "steps": 1 } },
10 | """
11 |
12 | from __future__ import annotations
13 |
14 | import sublime_plugin
15 |
16 |
17 | class StepTabCycleCommand(sublime_plugin.WindowCommand):
18 | """
19 | Switch to the next tab in the active pane.
20 | Like sublime's builtin next_sheet, but stays within the active pane
21 | """
22 |
23 | def run(self, steps: int) -> None:
24 | window = self.window
25 |
26 | if not (sheet := window.active_sheet()):
27 | return
28 |
29 | group_index, sheet_index = window.get_sheet_index(sheet)
30 | sheets = window.sheets_in_group(group_index)
31 | sheet_index_focus = (sheet_index + steps) % len(sheets)
32 | window.focus_sheet(sheets[sheet_index_focus])
33 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/toggle_all_inline_diffs_command.py:
--------------------------------------------------------------------------------
1 | from __future__ import annotations
2 |
3 | import sublime
4 | import sublime_plugin
5 |
6 |
7 | class ToggleAllInlineDiffsCommand(sublime_plugin.TextCommand):
8 | """A command to toggle all inline diffs in a view."""
9 |
10 | def run(self, edit: sublime.Edit) -> None:
11 | sel = self.view.sel()
12 | regions_backup: tuple[sublime.Region, ...] = tuple(sel)
13 |
14 | # toggle the whole file inline diff
15 | sel.clear()
16 | sel.add(sublime.Region(0, self.view.size()))
17 | self.view.run_command("toggle_inline_diff", {"args": {"prefer_hide": True}})
18 |
19 | # add back previous selection
20 | sel.clear()
21 | sel.add_all(regions_backup)
22 |
--------------------------------------------------------------------------------
/Packages/my_plugin_38/toggle_readonly_command.py:
--------------------------------------------------------------------------------
1 | from __future__ import annotations
2 |
3 | from typing import Any
4 |
5 | import sublime
6 | import sublime_plugin
7 |
8 | STATUS_KEY = __file__
9 |
10 |
11 | def update_status_bar(view: sublime.View) -> None:
12 | if view.is_read_only():
13 | view.set_status(STATUS_KEY, "🔒")
14 | else:
15 | view.erase_status(STATUS_KEY)
16 |
17 |
18 | class ToggleReadOnlyCommand(sublime_plugin.TextCommand):
19 | def run(self, edit: sublime.Edit, *, value: Any = None) -> None:
20 | if value is None:
21 | self.view.set_read_only(not self.view.is_read_only())
22 | else:
23 | self.view.set_read_only(bool(value))
24 |
25 |
26 | class ReadOnlyStatusListener(sublime_plugin.ViewEventListener):
27 | def on_activated(self) -> None:
28 | update_status_bar(self.view)
29 |
30 | def on_post_text_command(self, command_name: str, args: dict[str, Any] | None) -> None:
31 | # why "revert" command makes the view read-only for a moment?
32 | if command_name not in {"revert"}:
33 | update_status_bar(self.view)
34 |
--------------------------------------------------------------------------------
/my_dependencies/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "dependencies": {
4 | "@babel/eslint-parser": "^7",
5 | "diagnostic-languageserver": "^1",
6 | "eslint": "^9",
7 | "eslint-config-prettier": "^10",
8 | "eslint-plugin-prettier": "^5",
9 | "less": "^4",
10 | "markdownlint-cli": "^0",
11 | "prettier": "^3",
12 | "sass": "^1"
13 | },
14 | "packageManager": "yarn@1.22.22+sha256.c17d3797fb9a9115bf375e31bfd30058cac6bc9c3b8807a3d8cb2094794b51ca"
15 | }
16 |
--------------------------------------------------------------------------------
/my_dependencies/requirements.txt:
--------------------------------------------------------------------------------
1 | certifi
2 | compdb
3 | compiledb
4 | httpie
5 | ipython
6 |
7 | build
8 | pip-tools
9 | setuptools
10 | vendorize
--------------------------------------------------------------------------------
/my_dependencies/update.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
4 |
5 | (
6 | export UV_SYSTEM_PYTHON=1
7 |
8 | cd "${SCRIPT_DIR}" || exit 1
9 |
10 | uv self update
11 | uv pip install --upgrade -r requirements.txt
12 | )
13 |
14 | (
15 | yarn_dir="$(yarn global dir)"
16 | if [[ -d ${yarn_dir} ]]; then
17 | cd "${yarn_dir}" || exit 1
18 | yarn upgrade
19 | fi
20 | )
21 |
--------------------------------------------------------------------------------
/scripts/.gitignore:
--------------------------------------------------------------------------------
1 | /LSP/
2 |
--------------------------------------------------------------------------------
/scripts/mirror_official_docs.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
4 | NOW="$(date +'%Y/%m/%d %H:%M:%S')"
5 | TODAY="$(date +'%Y%m%d')"
6 |
7 | # ------ #
8 | # colors #
9 | # ------ #
10 |
11 | if [[ ${FORCE_COLOR} == "0" ]]; then
12 | C_RESET=""
13 | H_DEBUG="[DEBUG]"
14 | H_INFO="[INFO]"
15 | H_WARNING="[WARNING]"
16 | H_ERROR="[ERROR]"
17 | else
18 | C_RESET="\e[0m"
19 | H_DEBUG="[\e[0;30;47mDEBUG${C_RESET}]"
20 | H_INFO="[\e[0;37;44mINFO${C_RESET}]"
21 | H_WARNING="[\e[0;30;43mWARNING${C_RESET}]"
22 | H_ERROR="[\e[0;37;41mERROR${C_RESET}]"
23 | fi
24 |
25 | #---------#
26 | # configs #
27 | #---------#
28 |
29 | HTTRACK=${HTTRACK:-"httrack"}
30 | USER_AGENT=${USER_AGENT-"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36"}
31 | FOOTER=${FOOTER-"Snapshot on ${NOW}
"}
32 |
33 | function mirror() {
34 | local output_dir="$1"
35 | local start_url="$2"
36 |
37 | rm -rf "${output_dir}"
38 |
39 | pushd "${SCRIPT_DIR}" || exit
40 |
41 | echo -e "${H_INFO} ⌛ Downloading..."
42 |
43 | "${HTTRACK}" \
44 | --path "${output_dir}" \
45 | --user-agent "${USER_AGENT}" \
46 | --referer "${start_url}" \
47 | --mirror "${start_url}" \
48 | --footer "${FOOTER}" \
49 | --stay-on-same-address \
50 | --display \
51 | --quiet \
52 | --max-rate=0 \
53 | +*.png +*.gif +*.jpg +*.jpeg +*.webp +*.svg +*.css +*.js \
54 | -ad.doubleclick.net/*
55 |
56 | # redirect index page to website index
57 | index_file="${output_dir}/index.html"
58 | if [ -f "${index_file}" ]; then
59 | index_url=$(sed -zE 's/.* HREF="([^"]+)".*/\1/g' "${index_file}")
60 | echo "" \
61 | >"${output_dir}/index.html"
62 | fi
63 |
64 | cleanup "${output_dir}"
65 |
66 | popd || exit
67 | }
68 |
69 | function cleanup() {
70 | local output_dir="$1"
71 |
72 | pushd "${output_dir}" || exit
73 |
74 | echo -e "${H_INFO} 🧹 Clean up..."
75 |
76 | rm -rf \
77 | hts-cache/ \
78 | hts-log.txt \
79 | ./*.gif
80 |
81 | popd || exit
82 | }
83 |
84 | mirror \
85 | "${SCRIPT_DIR}/docs/ST_official_docs_${TODAY}" \
86 | "https://www.sublimetext.com/docs/index.html"
87 |
88 | mirror \
89 | "${SCRIPT_DIR}/docs/SM_official_docs_${TODAY}" \
90 | "https://www.sublimemerge.com/docs/index.html"
91 |
--------------------------------------------------------------------------------
/scripts/update_lsp.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
4 |
5 | ST_LSP_PACKAGE_PATH="${SCRIPT_DIR}/../Installed Packages/LSP.sublime-package"
6 | INTERESTED_REF=${1:-main}
7 | TMP_DIR="${SCRIPT_DIR}/tmp"
8 |
9 | cleanup() {
10 | rm -rf "${TMP_DIR}"
11 | }
12 |
13 | if [ ! -f "${ST_LSP_PACKAGE_PATH}" ]; then
14 | echo "LSP package not found..."
15 | exit 1
16 | fi
17 |
18 | cleanup
19 | mkdir -p "${TMP_DIR}"
20 |
21 | git clone "https://github.com/sublimelsp/LSP.git" \
22 | --single-branch \
23 | --branch="${INTERESTED_REF}" \
24 | --depth=1 \
25 | "${TMP_DIR}/LSP"
26 |
27 | if [[ $? != "0" ]]; then
28 | echo "Failed to clone LSP with ref: ${INTERESTED_REF}"
29 | exit 1
30 | fi
31 |
32 | pushd "${TMP_DIR}/LSP" || exit
33 |
34 | # create package
35 | git archive HEAD -o out.zip
36 | 7za x -aoa "${ST_LSP_PACKAGE_PATH}" "package-metadata.json"
37 | 7za a -aoa out.zip "package-metadata.json"
38 |
39 | # replace ST's package
40 | mv -f out.zip "${ST_LSP_PACKAGE_PATH}"
41 |
42 | popd || exit
43 |
44 | cleanup
45 |
--------------------------------------------------------------------------------