├── logo.png ├── PythonScripts ├── RemedyBG │ ├── RemedyBG_Install.bat │ └── README.md ├── UE_Snippets │ ├── UESnippets.gif │ └── README.md ├── AutoDarkMode │ ├── README.md │ └── AutoDarkMode.py ├── ClangFormat │ ├── README.md │ └── ClangFormat.py ├── OpenInExternalEditor │ ├── README.md │ └── OpenInExternalEditor.py ├── SignatureCreator │ ├── README.md │ ├── UtilitiesTests.py │ └── SignatureCreator.py ├── FormatOnSave │ ├── README.md │ └── FormatOnSave.py ├── PVS-Studio │ ├── README.md │ └── PVS_Studio.py ├── AddForwardDeclaration │ ├── README.md │ └── AddForwardDeclaration.py ├── CompileDbCmd │ ├── README.md │ └── CompileDbCmd.py ├── InstallHeaders │ ├── README.md │ └── InstallHeaders.py ├── SmoothScroll │ ├── README.md │ └── SmoothScroll.py ├── QuickPane │ └── QuickPane.py ├── Untabify │ └── Untabify.py ├── SortLines │ └── SortLines.py ├── Vim │ ├── README.md │ └── VimUser.py ├── README.md ├── GenerateVSProjectFiles │ ├── UE_GenerateVSProjectFiles.py │ └── README.md ├── TortoiseSVN │ └── TortoiseSVN.py ├── SmartSpace │ └── SmartSpace.py ├── LLMHelper │ ├── README.md │ └── LLM_Helper.py ├── PythonAutopep8 │ └── PythonAutopep8.py └── PythonBlack │ └── PythonBlack.py ├── SyntaxHighlighting ├── asm.10x_syntax ├── ini.10x_syntax ├── html.10x_syntax ├── xml.10x_syntax ├── md.10x_syntax ├── json.10x_syntax ├── 10x_settings.10x_syntax ├── diff.10x_syntax ├── cmake.10x_syntax ├── lua.10x_syntax ├── golang.10x_syntax ├── python.10x_syntax ├── zig.10x_syntax ├── jai.10x_syntax ├── rust.10x_syntax ├── c3.10x_syntax ├── java.10x_syntax ├── php.10x_syntax ├── cs.10x_syntax ├── cpp.10x_syntax ├── shader.10x_syntax └── bat.10x_syntax ├── README.md └── ColorSchemes ├── Kanagawa.10x_settings ├── Pink.10x_settings ├── SolarizedDark.10x_settings ├── RDRDark.10x_settings ├── Gold.10x_settings ├── Moss.10x_settings ├── Moriarty.10x_settings ├── VS+VAX Light.10x_settings ├── Brassica.10x_settings ├── Spice.10x_settings └── GruvboxDark.10x_settings /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slynch8/10x/HEAD/logo.png -------------------------------------------------------------------------------- /PythonScripts/RemedyBG/RemedyBG_Install.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | copy /y %~dp0\RemedyBG.py %APPDATA%\10x\PythonScripts -------------------------------------------------------------------------------- /PythonScripts/UE_Snippets/UESnippets.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slynch8/10x/HEAD/PythonScripts/UE_Snippets/UESnippets.gif -------------------------------------------------------------------------------- /PythonScripts/AutoDarkMode/README.md: -------------------------------------------------------------------------------- 1 | ## auto dark mode plugin for 10x 2 | 3 | ### Settings 4 | - **AutoDarkMode.Enabled**: True or False 5 | - **AutoDarkMode.Light**: Any light color scheme you prefer without '' 6 | - **AutoDarkMode.Dark**: Any dark color scheme you prefer without '' 7 | -------------------------------------------------------------------------------- /PythonScripts/ClangFormat/README.md: -------------------------------------------------------------------------------- 1 | ## clang-format plugin for 10x 2 | 3 | ### Settings 4 | - **ClangFormat.Path**: Path to clang-format executable, default: "clang-format.exe" 5 | - **ClangFormat.Stlye**: One of 'LLVM', 'GNU', 'Google', 'Chromium', 'Microsoft', 'Mozilla', 'WebKit' values, Or 'file' if you are providing .clang-format file in your project 6 | -------------------------------------------------------------------------------- /PythonScripts/OpenInExternalEditor/README.md: -------------------------------------------------------------------------------- 1 | ## OpenInExternalEditor 2 | 3 | Adds a command with the same name to open the current file in external editor 4 | 5 | By default, "OpenInExternalEditor" opens the current file with shell command, so whatever the default editor is for the file. 6 | Unless you specify your preferred editor path with "ExternalEditor" Setting 7 | 8 | -------------------------------------------------------------------------------- /PythonScripts/SignatureCreator/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Simple Signature Creator 3 | Adds a command that will automatically implement selected header function 4 | inside the implementation file. 5 | 6 | Simply select the function, press Cntrl+Shift+X and type in Define 7 | 8 | - Doesn't work if the function is multiple lines long 9 | Might have other limitations, this is a quite naive implementation -------------------------------------------------------------------------------- /PythonScripts/FormatOnSave/README.md: -------------------------------------------------------------------------------- 1 | # Format On Save 2 | This plugin will add three options for handling formating and saving files when they loose focus. 3 | 4 | You can add them to ur Settings.json 5 | 6 | // Saves the file when it looses focus 7 | SaveOnFocusLost: true 8 | 9 | // Formats the file when it looses focus 10 | FormatOnFocusLost: true 11 | 12 | // Formats the file when it's saved 13 | FormatOnSave: true 14 | -------------------------------------------------------------------------------- /PythonScripts/PVS-Studio/README.md: -------------------------------------------------------------------------------- 1 | # PVS Studio 2 | [PVS-Studio](https://pvs-studio.com/en/) 3 | Show result of analyze on `10XOutput` pannel. 4 | Available only on project loaded with `solution` visual studio. 5 | 6 | # Installation 7 | - Copy `PVS_Studio.py` into `%appdata%\10x\PythonScripts` 8 | - Assign `PVSStudioCmd` to command. 9 | 10 | 11 | ## SAST Tools 12 | [PVS-Studio](https://pvs-studio.com/pvs-studio/?utm_source=website&utm_medium=github&utm_campaign=open_source) - static analyzer for C, C++, C#, and Java code. 13 | -------------------------------------------------------------------------------- /PythonScripts/AddForwardDeclaration/README.md: -------------------------------------------------------------------------------- 1 | 2 | # AddForwardDeclaration 3 | This script will automatically add a forward declaration named after the token the cursor is currently over. 4 | 5 | For example, given this code: 6 | 7 | ``` 8 | #pragma once 9 | 10 | /** 11 | * 12 | */ 13 | class Test 14 | { 15 | protected: 16 | NeedForwardDecl* yo; 17 | }; 18 | ``` 19 | 20 | if you place the cursor somewhere inside the `NeedForwardDecl` token and execute the AddForwardDeclation script via a key bind, the result will be: 21 | 22 | ``` 23 | #pragma once 24 | class NeedForwardDecl; 25 | 26 | /** 27 | * 28 | */ 29 | class Test 30 | { 31 | protected: 32 | NeedForwardDecl* yo; 33 | }; 34 | ``` -------------------------------------------------------------------------------- /PythonScripts/CompileDbCmd/README.md: -------------------------------------------------------------------------------- 1 | # CompileDb single file compiler 2 | 3 | This scripts opens a compilation database file (compile_commands.json) and uses it's commands to compile files in the workspace. 4 | For questions or suggestions, please contact `septag@pm.me` ([github profile](https://github.com/septag)) 5 | 6 | ## Configuration 7 | 8 | Add these to your *10x_settings* file: 9 | 10 | - `CompileDb.Path`: Path to generated `compile_commands.json` file. Valid variables that you can use in path: `$(WorkspaceDirectory)`. (Default=`$(WorkspaceDirectory)/build/compile_commands.json`) 11 | 12 | ## Commands 13 | 14 | - **CompDbCompile**: Compiles currently focused file, if the source file can be found in the compilation database 15 | 16 | 17 | -------------------------------------------------------------------------------- /PythonScripts/InstallHeaders/README.md: -------------------------------------------------------------------------------- 1 | # WindowsHeaders 2 | Installs a lightweight version of commonly used system headers. Downloads and extracts headers into Workspace AppData folder (%appdata%/10x/Workspace/${workspace}) and add the directory to workspace include directories. 3 | 4 | ## Usage 5 | - **Windows Headers**: Run `InstallHeadersWindows` command. Downloads lightweight headers from [WindowsHModular github page](https://github.com/Leandros/WindowsHModular) 6 | - **Standard C headers**: Run `InstallHeadersC` command. Downloads lightweight headers from [C-std-headres github page](https://github.com/eliphatfs/c-std-headers) 7 | - **Vulkan Headers**: Run `InstallHeadersVulkan` command. Downloads headers from [Vulkan-Headers github page](https://github.com/KhronosGroup/Vulkan-Headers) 8 | -------------------------------------------------------------------------------- /SyntaxHighlighting/asm.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: *.asm 16 | 17 | #---------------------------------------------- 18 | # colour rules 19 | 20 | Language.Comment: 21 | REGEX(;.*) 22 | 23 | -------------------------------------------------------------------------------- /PythonScripts/UE_Snippets/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Unreal Engine MACRO Snippets 3 | This script provides code completion support for Unreal Engine Macros. This include UPROPERTY, UFUNCTION, UCLASS, UINTERFACE, UDELEGATE, and USTRUCT. Simply use 10x auto completion to insert one of the macros, then place your cursor inside the parens and hit CONTROL+Space. Do that for as many parameters as you would like for that Macro type. 4 | 5 | While inside one of these macros, you can also hook the MetaMacroCompletion() command to a hotkey in order to insert `meta = ()` syntax that is also aware of valid meta tags associated with the outer macro type. 6 | 7 | Hit the Escape key to exit the completion state. Most of the time, hitting tab will also end the completion state, unless there is a value associated with a parameter that is looking for code completion. Tab will take you to the $1 replacement parameter. -------------------------------------------------------------------------------- /PythonScripts/SmoothScroll/README.md: -------------------------------------------------------------------------------- 1 | # SmoothScroll 10x-editor script 2 | 3 | With this script, you can add the ability to scroll faster with keyboard shortcuts. It also mimics smooth scrolling, more like mousewheel scrolling. 4 | 5 | ## Usage 6 | Copy the script into `%AppData%\Roaming\10x\PythonScripts`. Open "Key bindings" and assign any shortcuts to `SmoothScrollUp` and `SmoothScrollDown` commands. Example: 7 | 8 | ``` 9 | PageUp: SmoothScrollUp 10 | PageDown: SmoothScrollDown 11 | ``` 12 | 13 | ## Customization 14 | There are two global variables in `SmoothScroll.py` that you can modify to customize the speed and amount of scrolling. 15 | 16 | ``` 17 | SMOOTHSCROLL_PAGE_SIZE:int = 15 18 | SMOOTHSCROLL_SCROLL_SPEED:int = 3 19 | ``` 20 | 21 | `SMOOTHSCROLL_PAGE_SIZE` is the number of lines it does at each scroll. And `SMOOTHSCROLL_SCROLL_SPEED` is the speed of scrolling. 22 | 23 | 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 10x Editor 2 | ![10x_logo](logo.png) 3 | 4 | 10x is a new code editor from *[PureDev Software](https://puredevsoftware.com/)*, written by Stewart Lynch. [www.10xeditor.com](https://www.10xeditor.com) 5 | 6 | This repository is mainly for 10x bug and feature tracking. It also contains python scripts contributed by the community. 7 | 8 | - **Features and Roadmap:** https://www.10xeditor.com/roadmap.htm 9 | - **Upload Crash Dumps:** https://www.puredevsoftware.com/upload.htm 10 | - **FAQ:** https://www.10xeditor.com/latest.htm 11 | - **Developer blog:** https://10xeditor.com/devlog/devlog.htm 12 | - **Live streams:** https://10xeditor.com/vlog.htm 13 | - **Python scripts:** The scripts are in [PythonScripts](PythonScripts) folder. Copy them to `%appdata%/10x/PythonScripts` and restart the editor to use them. 14 | 15 | 16 | If you like 10x, you can support the project here: https://www.10xeditor.com/support_10x.htm 17 | -------------------------------------------------------------------------------- /PythonScripts/OpenInExternalEditor/OpenInExternalEditor.py: -------------------------------------------------------------------------------- 1 | # By default, "OpenInExternalEditor" opens the current file with shell command, so whatever the default editor is for the file 2 | # Unless you specify your preferred editor path with "ExternalEditor" Setting 3 | from N10X import Editor 4 | 5 | import subprocess 6 | 7 | SETTING_EditorPath:str = "" 8 | 9 | def _OED_SettingsChanged(): 10 | global SETTING_EditorPath 11 | SETTING_EditorPath = Editor.GetSetting("ExternalEditor") 12 | 13 | def OpenInExternalEditor(): 14 | if SETTING_EditorPath: 15 | subprocess.Popen(SETTING_EditorPath + ' ' + Editor.GetCurrentFilename(), shell=True, stdin=None, stdout=None, stderr=None, close_fds=True) 16 | else: 17 | subprocess.Popen(Editor.GetCurrentFilename(), shell=True, stdin=None, stdout=None, stderr=None, close_fds=True) 18 | 19 | Editor.AddOnSettingsChangedFunction(_OED_SettingsChanged) 20 | Editor.CallOnMainThread(_OED_SettingsChanged) 21 | -------------------------------------------------------------------------------- /SyntaxHighlighting/ini.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: .ini 16 | 17 | #---------------------------------------------- 18 | # colour rules 19 | 20 | Language.Comment: 21 | REGEX(;.*) 22 | REGEX(#.*) 23 | 24 | # section 25 | Language.Preprocessor: 26 | REGEX(^\s*\[.*\]) 27 | 28 | # key name 29 | Language.Variable: 30 | REGEX((\w+)\s*=) 31 | 32 | Language.Operator: 33 | TEXT(=) 34 | TEXT(+) 35 | TEXT(@) 36 | TEXT(!) 37 | -------------------------------------------------------------------------------- /SyntaxHighlighting/html.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: .html,.htm,.svelte 16 | 17 | BlockCommentStart: 20 | 21 | #---------------------------------------------- 22 | # colour rules 23 | 24 | Html.ElementName: 25 | REGEX(<(/?\s*[a-zA-Z0-9\-]+)[\s>]) 26 | 27 | Html.String: 28 | REGEX([a-zA-Z0-9]+\s*=\s*(".*?")) 29 | REGEX([a-zA-Z0-9]+\s*=\s*('.*?')) 30 | 31 | Html.AttributeName: 32 | REGEX(([a-zA-Z0-9\-:]+)\s*=\s*["']) 33 | TEXT() 38 | TEXT(=) 39 | -------------------------------------------------------------------------------- /SyntaxHighlighting/xml.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: .xml,.natvis,.10x,.vcxproj,.vcproj,.sln 16 | 17 | BlockCommentStart: 20 | 21 | #---------------------------------------------- 22 | # colour rules 23 | 24 | Html.ElementName: 25 | REGEX(<(/?\s*[a-zA-Z0-9\-]+)[\s>]) 26 | 27 | Html.String: 28 | REGEX([a-zA-Z0-9]+\s*=\s*(".*?")) 29 | REGEX([a-zA-Z0-9]+\s*=\s*('.*?')) 30 | 31 | Html.AttributeName: 32 | REGEX(([a-zA-Z0-9\-:]+)\s*=\s*["']) 33 | TEXT() 38 | TEXT(=) -------------------------------------------------------------------------------- /SyntaxHighlighting/md.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: .md 16 | 17 | #---------------------------------------------- 18 | # colour rules 19 | 20 | Language.Heading: 21 | REGEX(^#.*) 22 | REGEX(^--+) 23 | REGEX(^=+) 24 | 25 | Language.Bold: 26 | REGEX(\*\*.*\*\*) 27 | REGEX(__.*__) 28 | 29 | Language.Italic: 30 | REGEX(\*.*\*) 31 | 32 | Language.Blockquote: 33 | REGEX(^>+.*) 34 | 35 | Language.ListItem: 36 | REGEX([0-9]+\.\s.*) 37 | REGEX(^\s*[-*]\s.*) 38 | 39 | Language.Link: 40 | REGEX(\[.*?\]\(.*?\)) 41 | 42 | Language.CodeBlock: 43 | REGEX(`.*?`) 44 | 45 | Language.Operator: 46 | TEXT(-) 47 | -------------------------------------------------------------------------------- /SyntaxHighlighting/json.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: .json 16 | 17 | #---------------------------------------------- 18 | # colour rules 19 | 20 | Language.Brace: 21 | TEXT({) 22 | TEXT(}) 23 | 24 | Language.Bracket: 25 | TEXT(() 26 | TEXT()) 27 | 28 | Language.SquareBracket: 29 | TEXT([) 30 | TEXT(]) 31 | 32 | Language.Comma: 33 | TEXT(,) 34 | 35 | Language.Variable: 36 | REGEX(".*?"\s*:) 37 | 38 | Language.String: 39 | REGEX(".*?") 40 | 41 | Language.Operator: 42 | TEXT(:) 43 | 44 | Language.Number: 45 | REGEX([0-9]+) 46 | 47 | Language.Keywords: 48 | WORD(null) 49 | WORD(true) 50 | WORD(false) 51 | 52 | -------------------------------------------------------------------------------- /SyntaxHighlighting/10x_settings.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: .10x_settings,.10x_syntax 16 | 17 | #---------------------------------------------- 18 | # colour rules 19 | 20 | Language.Comment: 21 | REGEX(#.*) 22 | 23 | Language.String: 24 | REGEX(REGEX\((.*)\)) 25 | REGEX(WORD\((.*)\)) 26 | REGEX(WORDI\((.*)\)) 27 | REGEX(TEXT\((.*)\)) 28 | REGEX(TEXTI\((.*)\)) 29 | 30 | 10x.Setting.Keyword: 31 | WORD(REGEX) 32 | WORD(TEXT) 33 | WORD(TEXTI) 34 | WORD(WORD) 35 | WORD(WORDI) 36 | 37 | 10x.Setting.Name: 38 | REGEX(^.+:(?:\s|$)) 39 | 40 | Language.Operator: 41 | TEXT(:) 42 | 43 | Language.Bracket: 44 | TEXT(() 45 | TEXT()) 46 | 47 | 10x.Setting.True: 48 | TEXT(true) 49 | 50 | 10x.Setting.False: 51 | TEXT(false) 52 | 53 | -------------------------------------------------------------------------------- /SyntaxHighlighting/diff.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # 4 | # Valid settings for colour rules: 5 | # REGEX() A regular expression. Colours entire match or first group. 6 | # WORD() Matches a word (case sensitive) 7 | # WORDI() Matches a word (case insensitive) 8 | # TEXT() Match any text in the line (case sensitive) 9 | # TEXTI() Match any text in the line (case insensitive) 10 | 11 | #---------------------------------------------- 12 | # settings 13 | 14 | Extensions: .diff 15 | 16 | #---------------------------------------------- 17 | # colour rules 18 | 19 | Language.Custom2: 20 | REGEX(^-.*) 21 | REGEX(^<.*) 22 | REGEX(^>.*) 23 | REGEX(^! .*) 24 | 25 | Language.Custom4: 26 | REGEX(^\+.*) 27 | REGEX(^\<\d\+\>.*) 28 | REGEX(^\*\*\*\*.*) 29 | REGEX(^---$) 30 | 31 | # Some versions of diff have lines like "#c#" and "#d#" (where # is a number) 32 | Language.Custom5: 33 | REGEX( @@..*) 34 | REGEX(^@.*) 35 | REGEX(^\d\+\(,\d\+\)\=[cda]\d\+\>.*) 36 | 37 | Language.Custom7: 38 | REGEX(^diff\>.*) 39 | REGEX(^+++ .*) 40 | REGEX(^Index: .*) 41 | REGEX(^==== .*) 42 | REGEX(^\*\*\* .*) 43 | REGEX(^--- .*) 44 | 45 | # Used by git 46 | Language.Custom1: 47 | REGEX(^index \x\x\x\x.*) 48 | 49 | Language.Custom6: 50 | REGEX(^#.*) -------------------------------------------------------------------------------- /PythonScripts/QuickPane/QuickPane.py: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------ 2 | import os 3 | import N10X 4 | 5 | #------------------------------------------------------------------------ 6 | # This script tries to simulate vim's "vsplit" and "only" commands 7 | # for 2 panes. I.e. "split current window into 2 panes and duplicate current 8 | # buffer to the other pane" and "only one pane, with current buffer" 9 | 10 | # Stick this file in your 10x PythonScripts folder, 11 | # typically \users\USERNAME\AppData\Roaming\10x\PythonScripts 12 | # For this to work, please map two keys to QuickPane1() and QuickPane2() in 13 | # key bindings (KeyMappings.10x_settings). F1 and F2 are recommended, 14 | # but they need to be unmapped from other uses first! 15 | 16 | #------------------------------------------------------------------------ 17 | # Switches to single column 18 | def QuickPane1(): 19 | N10X.Editor.ExecuteCommand("MovePanelLeft") 20 | N10X.Editor.ExecuteCommand("SetRowCount1") 21 | N10X.Editor.ExecuteCommand("SetColumnCount1") 22 | N10X.Editor.ExecuteCommand("CloseAllOtherTabs") 23 | 24 | # Switches to dual column and duplicates the current tab into the other panel. 25 | def QuickPane2(): 26 | N10X.Editor.ExecuteCommand("SetColumnCount2") 27 | N10X.Editor.ExecuteCommand("DuplicatePanelRight") 28 | 29 | -------------------------------------------------------------------------------- /SyntaxHighlighting/cmake.10x_syntax: -------------------------------------------------------------------------------- 1 | # oringal author: @Andersama 2 | # Format: : 3 | # Setting name must appear at start of line and there must be whitespace after the colon. 4 | # Multiple values can be comma separated or on subsequent lines. 5 | # 6 | # Valid settings for colour rules: 7 | # REGEX() A regular expression. Colours entire match or first group. 8 | # WORD() Matches a word (case sensitive) 9 | # WORDI() Matches a word (case insensitive) 10 | # TEXT() Match any text in the line (case sensitive) 11 | # TEXTI() Match any text in the line (case insensitive) 12 | 13 | #---------------------------------------------- 14 | # settings 15 | 16 | Extensions: CMakeLists.txt,*.cmake 17 | 18 | #---------------------------------------------- 19 | # colour rules 20 | 21 | Language.Brace: 22 | TEXT({) 23 | TEXT(}) 24 | 25 | Language.Bracket: 26 | TEXT(() 27 | TEXT()) 28 | 29 | Language.SquareBracket: 30 | TEXT([) 31 | TEXT(]) 32 | 33 | Language.Comma: 34 | TEXT(,) 35 | 36 | Language.Comment: 37 | REGEX(#.*) 38 | 39 | Language.Keyword: 40 | WORD(if) 41 | WORD(endif) 42 | WORD(else) 43 | WORD(elseif) 44 | WORD(foreach) 45 | WORD(endforeach) 46 | 47 | #${CMAKE_INSTALL_CONFIG_NAME} 48 | 49 | Language.Function: 50 | REGEX(\b([a-zA-Z_]+\w*)\s*\() 51 | 52 | Language.String: 53 | REGEX(L?"[^"\\]*(?:\\.[^"\\]*)*") 54 | REGEX(L?'[^'\\]*(?:\\.[^'\\]*)*') 55 | 56 | Language.Variable: 57 | REGEX(\b[a-zA-Z_]+\w*\b) 58 | 59 | -------------------------------------------------------------------------------- /PythonScripts/Untabify/Untabify.py: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------ 2 | import N10X 3 | import array 4 | 5 | #------------------------------------------------------------------------ 6 | g_TabWidth = 0 7 | g_OnSettingsChangedRegistered = False 8 | 9 | #------------------------------------------------------------------------ 10 | def GetTabWidth(): 11 | return int(N10X.Editor.GetSetting("TabWidth")) 12 | 13 | #------------------------------------------------------------------------ 14 | def OnSettingsChanged(): 15 | global g_TabWidth 16 | 17 | g_TabWidth = GetTabWidth() 18 | 19 | #------------------------------------------------------------------------ 20 | def UntabifyLines(fn): 21 | global g_TabWidth 22 | global g_OnSettingsChangedRegistered 23 | 24 | if not g_OnSettingsChangedRegistered: 25 | g_TabWidth = GetTabWidth() 26 | 27 | N10X.Editor.AddOnSettingsChangedFunction(OnSettingsChanged) 28 | g_OnSettingsChangedRegistered = True 29 | 30 | N10X.Editor.PushUndoGroup() 31 | N10X.Editor.BeginTextUpdate() 32 | 33 | line_count = N10X.Editor.GetLineCount() 34 | 35 | sequence = [' '] * g_TabWidth 36 | width = ''.join(sequence) 37 | 38 | for i in range(line_count): 39 | line = N10X.Editor.GetLine(i) 40 | line = line.replace('\t', width) 41 | N10X.Editor.SetLine(i, line) 42 | 43 | N10X.Editor.EndTextUpdate() 44 | N10X.Editor.PopUndoGroup() 45 | 46 | #------------------------------------------------------------------------ 47 | # uncomment this line to replace all tabs with 'TabWidth' spaces on save 48 | #N10X.Editor.AddPreFileSaveFunction(UntabifyLines) 49 | -------------------------------------------------------------------------------- /PythonScripts/SortLines/SortLines.py: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------ 2 | # From https://gitlab.com/bogez57/10x_editor/-/blob/main/PythonScripts/Utils.py 3 | # (expired link) 4 | 5 | import N10X 6 | 7 | def SortLines(CaseInsensitive=True): 8 | 9 | N10X.Editor.PushUndoGroup() 10 | 11 | lines = [] 12 | line_count = N10X.Editor.GetLineCount() 13 | 14 | for i in range(line_count): 15 | lines.append(N10X.Editor.GetLine(i)) 16 | 17 | if CaseInsensitive == True: 18 | lines.sort(key=str.lower) 19 | else: 20 | lines.sort() 21 | 22 | 23 | for i in range(line_count): 24 | N10X.Editor.SetLine(i, lines[i]) 25 | 26 | N10X.Editor.PopUndoGroup() 27 | 28 | def SortSelectedLines(CaseInsensitive=True): 29 | 30 | N10X.Editor.PushUndoGroup() 31 | 32 | start_pos = N10X.Editor.GetSelectionStart() 33 | end_pos = N10X.Editor.GetSelectionEnd() 34 | 35 | # +1 due to indexing starting at 0 36 | line_count = end_pos[1] - start_pos[1] + 1 37 | 38 | # strange indexing causes strange behaviour 39 | # remove prior +1 to ignore to jank line 40 | if end_pos[0] == 0: 41 | line_count -= 1 42 | 43 | # ignore if there are no lines to sort 44 | if line_count == 0: 45 | return 46 | 47 | lines = [] 48 | 49 | for i in range(line_count): 50 | lines.append(N10X.Editor.GetLine(i + start_pos[1])) 51 | 52 | if CaseInsensitive == True: 53 | lines.sort(key=str.lower) 54 | else: 55 | lines.sort() 56 | 57 | for i in range(line_count): 58 | N10X.Editor.SetLine(i + start_pos[1], lines[i]) 59 | 60 | N10X.Editor.PopUndoGroup() 61 | -------------------------------------------------------------------------------- /PythonScripts/InstallHeaders/InstallHeaders.py: -------------------------------------------------------------------------------- 1 | import N10X 2 | import os 3 | import tempfile 4 | import shutil 5 | import subprocess 6 | 7 | WINDOWSH_URL:str = 'https://github.com/Leandros/WindowsHModular/archive/refs/heads/master.zip' 8 | WINDOWSH_NAME:str = 'WindowsHModular-master' 9 | 10 | CH_URL:str = 'https://github.com/eliphatfs/c-std-headers/archive/refs/heads/main.zip' 11 | CH_NAME:str = 'c-std-headers-main' 12 | 13 | VULKANH_URL:str = 'https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/heads/main.zip' 14 | VULKANH_NAME:str = 'Vulkan-Headers-main' 15 | 16 | def _InstallHeaders(url, name, include_subdir): 17 | if N10X.Editor.GetWorkspaceOpenComplete()[0]: 18 | headers_tempfile = os.path.join(tempfile.gettempdir(), tempfile.gettempprefix() + name + '.zip') 19 | result = subprocess.run(['powershell', 'Invoke-WebRequest', url, '-O', headers_tempfile]) 20 | if result.returncode == 0: 21 | shutil.unpack_archive(headers_tempfile, N10X.Editor.GetAppDataWorkspacePath()) 22 | includes_dir = os.path.join(N10X.Editor.GetAppDataWorkspacePath(), name, include_subdir) 23 | N10X.Editor.AddWorkspaceAdditionalInclude(includes_dir.replace('\\', '/')) 24 | print('InstallHeaders: Added include directory "' + os.path.normpath(includes_dir) + '"') 25 | else: 26 | print('InstallHeaders: No workspace is opened') 27 | 28 | def InstallHeadersWindows(): 29 | _InstallHeaders(WINDOWSH_URL, WINDOWSH_NAME, os.path.join('include', 'win32')) 30 | 31 | def InstallHeadersC(): 32 | _InstallHeaders(CH_URL, CH_NAME, 'include') 33 | 34 | def InstallHeadersVulkan(): 35 | _InstallHeaders(VULKANH_URL, VULKANH_NAME, os.path.join('include', 'vulkan')) -------------------------------------------------------------------------------- /PythonScripts/SmoothScroll/SmoothScroll.py: -------------------------------------------------------------------------------- 1 | from N10X import Editor 2 | 3 | g_ssCurScroll:int = -1 4 | g_ssTargetScroll:int = -1 5 | g_ssScrollSpeed:int = 0 6 | g_ssScrollOffset:int = 0 7 | SMOOTH_PAGE_SIZE:int = 15 8 | SMOOTH_SCROLL_SPEED:int = 3 9 | 10 | def SmoothScrollDown(): 11 | global g_ssCurScroll, g_ssTargetScroll, g_ssScrollSpeed, g_ssScrollOffset 12 | if g_ssScrollSpeed == 0: 13 | col, line = Editor.GetCursorPos() 14 | g_ssCurScroll = line 15 | g_ssTargetScroll = g_ssCurScroll + SMOOTH_PAGE_SIZE 16 | g_ssScrollSpeed = SMOOTH_SCROLL_SPEED 17 | g_ssScrollOffset = Editor.GetCursorPos()[1] - Editor.GetScrollLine() 18 | 19 | def SmoothScrollUp(): 20 | global g_ssCurScroll, g_ssTargetScroll, g_ssScrollSpeed, g_ssScrollOffset 21 | if g_ssScrollSpeed == 0: 22 | col, line = Editor.GetCursorPos() 23 | g_ssCurScroll = line 24 | g_ssTargetScroll = g_ssCurScroll - SMOOTH_PAGE_SIZE 25 | g_ssScrollSpeed = -SMOOTH_SCROLL_SPEED 26 | g_ssScrollOffset = Editor.GetCursorPos()[1] - Editor.GetScrollLine() 27 | 28 | def _SmoothScrollUpdate(): 29 | global g_ssCurScroll, g_ssTargetScroll, g_ssScrollSpeed 30 | if g_ssScrollSpeed != 0: 31 | g_ssCurScroll = g_ssCurScroll + g_ssScrollSpeed 32 | if g_ssScrollSpeed > 0: 33 | g_ssCurScroll = g_ssTargetScroll if g_ssCurScroll > g_ssTargetScroll else g_ssCurScroll 34 | elif g_ssScrollSpeed < 0: 35 | g_ssCurScroll = g_ssTargetScroll if g_ssCurScroll < g_ssTargetScroll else g_ssCurScroll 36 | 37 | Editor.SetScrollLine(g_ssCurScroll - g_ssScrollOffset) 38 | if g_ssCurScroll == g_ssTargetScroll: 39 | Editor.SetCursorPos((0, g_ssTargetScroll)) 40 | g_ssScrollSpeed = 0 41 | 42 | Editor.AddUpdateFunction(_SmoothScrollUpdate) 43 | -------------------------------------------------------------------------------- /ColorSchemes/Kanagawa.10x_settings: -------------------------------------------------------------------------------- 1 | ## Need: 2 | # 1. Support for `T x = ...`, T is just "text" 3 | # 2. Have another variable for argument colors, right now it's `Language.Variable` 4 | # 3. Have a `Language.Quote`, right now it's using `Language.String` 5 | # 4. Differentiate creating macro's and using macro's 6 | # 5. Have another keyword for `return`? 7 | # These are just to get a 1:1 match, but it's close enough. 8 | 9 | ## UI 10 | UI.UI: 363646 11 | UI.UI Text: dddddd 12 | 13 | UI.Panels.Active Tab: 323242 14 | UI.Panels.Inactive Tab: 323242 15 | 16 | UI.Panels.Scrollbar Bar: 39364a 17 | UI.Panels.Scrollbar Bar (hover): 39394a 18 | UI.Panels.Scrollbar Bar (drag): 47476ccc 19 | 20 | ## Menu 21 | UI.Menu: 16161D 22 | UI.Menu (highlighted): 2a2a37 23 | UI.Menu (selected): 2a2a37 24 | 25 | ## Editor 26 | Editor.Background: 1f1f28 27 | Editor.Selection Back: 223249 28 | 29 | Editor.Current Line: 2a2a37 30 | 31 | Editor.BraceDepth1: eeac31 32 | Editor.BraceDepth2: 659db2 33 | Editor.BraceDepth3: e9669e 34 | # Reset 35 | Editor.BraceDepth4: eeac31 36 | Editor.BraceDepth5: 659db2 37 | Editor.BraceDepth6: e9669e 38 | 39 | ## Language 40 | Language.Comment: 727169 41 | Language.Preprocessor: 9b9b9b 42 | Language.Text: 9b9b9b 43 | Language.Variable: 9cdcfe 44 | 45 | Language.String: 98bb6c 46 | Language.Comma: c0a36e 47 | Language.Operator: c0a36e 48 | 49 | Language.Brace: 51ade4 50 | Language.Bracket: 51ade4 51 | Language.SquareBracket: ab6e36 52 | 53 | Language.MemberFunction: dbd8a1 54 | Language.MemberVariable: dddddd 55 | 56 | Language.Function: dbd8a1 57 | Language.Type: 957fb8 58 | Language.Keyword: 957fb8 59 | Language.Class: 4ac8aa 60 | Language.SemiColon: c0a36e 61 | 62 | Language.Typedef: 4ac8aa 63 | Language.Namespace: c8c8c8 64 | Language.Number: d17b87 65 | 66 | # Green: 4ac8aa 67 | # Rose: d17b87 -------------------------------------------------------------------------------- /PythonScripts/FormatOnSave/FormatOnSave.py: -------------------------------------------------------------------------------- 1 | import N10X 2 | import os 3 | 4 | SAVE_ON_FOCUS_LOST_SETTING = "SaveOnFocusLost" 5 | FORMAT_ON_SAVE_SETTING = "FormatOnSave" 6 | 7 | g_conf_save_on_focus_lost = False 8 | g_conf_format_on_save = False 9 | 10 | skip_next_update = False 11 | prev_focused_file = 'empty' 12 | focused_file = 'empty' 13 | 14 | def OnFocusLost(file_path): 15 | if file_path == 'empty' or file_path == '': 16 | return 17 | N10X.Editor.SaveFile() 18 | 19 | def InitSettings(): 20 | global g_conf_save_on_focus_lost 21 | global g_conf_format_on_save 22 | 23 | g_conf_save_on_focus_lost = N10X.Editor.GetSetting(SAVE_ON_FOCUS_LOST_SETTING) == "true" 24 | g_conf_format_on_save = N10X.Editor.GetSetting(FORMAT_ON_SAVE_SETTING) == "true" 25 | 26 | def OnUpdate(): 27 | global g_conf_save_on_focus_lost 28 | if not g_conf_save_on_focus_lost: 29 | return 30 | 31 | global skip_next_update 32 | global focused_file 33 | global prev_focused_file 34 | 35 | if skip_next_update: 36 | skip_next_update = False 37 | return 38 | 39 | if focused_file == N10X.Editor.GetCurrentFilename(): 40 | return 41 | 42 | skip_next_update = True 43 | prev_focused_file = focused_file 44 | focused_file = N10X.Editor.GetCurrentFilename() 45 | if focused_file == 'empty' or focused_file == '': 46 | return 47 | 48 | if prev_focused_file == 'empty': 49 | return 50 | 51 | N10X.Editor.FocusFile(prev_focused_file) 52 | OnFocusLost(prev_focused_file) 53 | N10X.Editor.FocusFile(focused_file) 54 | return 55 | 56 | def OnPreSave(file_path): 57 | global g_conf_format_on_save 58 | if not g_conf_format_on_save: 59 | return 60 | N10X.Editor.ExecuteCommand("FormatFile") 61 | print('[saved]') 62 | 63 | N10X.Editor.AddOnSettingsChangedFunction(InitSettings) 64 | N10X.Editor.CallOnMainThread(InitSettings) 65 | N10X.Editor.AddUpdateFunction(OnUpdate) 66 | N10X.Editor.AddPreFileSaveFunction(OnPreSave) -------------------------------------------------------------------------------- /PythonScripts/AutoDarkMode/AutoDarkMode.py: -------------------------------------------------------------------------------- 1 | """ 2 | auto dark mode for 10x (10xeditor.com) 3 | Version: 0.1.0 4 | Original Script author: https://github.com/krupitskas 5 | 6 | To get started go to Settings.10x_settings, and enable plugin, by adding these line: 7 | AutoDarkMode.Enabled: True 8 | 9 | Then specify color schemes you like as example below: 10 | 11 | AutoDarkMode.Light: Light 12 | AutoDarkMode.Dark: Sunset 13 | """ 14 | 15 | import winreg 16 | 17 | from N10X import Editor 18 | 19 | class AutoDarkModePlugin(): 20 | is_enabled = False 21 | last_theme = None 22 | light_theme = False 23 | dark_theme = False 24 | reg_key = None 25 | 26 | autodark_plugin = None 27 | 28 | def IntializeAutoDarkMode(): 29 | global autodark_plugin 30 | 31 | autodark_plugin = AutoDarkModePlugin() 32 | 33 | autodark_plugin.is_enabled = Editor.GetSetting('AutoDarkMode.Enabled').strip().lower() == 'true' 34 | autodark_plugin.light_theme = Editor.GetSetting('AutoDarkMode.Light').strip() 35 | autodark_plugin.dark_theme = Editor.GetSetting('AutoDarkMode.Dark').strip() 36 | autodark_plugin.reg_key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Windows\CurrentVersion\Themes\Personalize") 37 | 38 | CheckCurrentTheme() 39 | 40 | def CheckCurrentTheme(): 41 | global autodark_plugin 42 | 43 | if not autodark_plugin.is_enabled: 44 | return 45 | 46 | value, _ = winreg.QueryValueEx(autodark_plugin.reg_key, "AppsUseLightTheme") 47 | 48 | is_light = value == 1 49 | 50 | if autodark_plugin.last_theme != is_light: 51 | if is_light: 52 | Editor.SetSetting('ColorScheme', autodark_plugin.light_theme) 53 | else: 54 | Editor.SetSetting('ColorScheme', autodark_plugin.dark_theme) 55 | 56 | autodark_plugin.last_theme = is_light 57 | 58 | Editor.CallOnMainThread(IntializeAutoDarkMode) 59 | Editor.AddUpdateFunction(CheckCurrentTheme) 60 | -------------------------------------------------------------------------------- /PythonScripts/Vim/README.md: -------------------------------------------------------------------------------- 1 | # Vim Script 2 | 3 | The vim script provides the most common vim functionality for 10x but note that it is not a complete implementation. 4 | This script is still in development but is also very usable. 5 | We welcome pull requests for fixes and features and discussion can be found in the Vim channel of the 10x Discord. 6 | 7 | Vim modes supported: 8 | - Command 9 | - Insert 10 | - Visual 11 | - Visual Line/Block 12 | - Commandline 13 | 14 | 15 | ## Vim Settings 16 | 17 | Vim specific settings that can be added to 10x settings 18 | 19 | |Setting |Value |Description| 20 | |:--- |:--- |:--- | 21 | Vim |bool |Enables vim script 22 | VimExitInsertModeCharSequence |2 or 3 chars |Char sequence to exit insert mode, e.g. `jk ` 23 | VimUse10xCommandPanel |bool |Use 10x command panel for commandline mode, i.e. when typing `:` 24 | VimUse10xFindPanel |bool |Use 10x find panel for searching, i.e. when typing `/` 25 | VimSneakEnabled |bool |Enable vim-sneak motion with `s` and `S` 26 | VimCommandlineFilteredHistory |bool |When navigating through commandline history, the history is filtered based on what is already typed. True by default. 27 | VimDisplayCurrentScopeName |bool |Toggles display of current code scope name in status bar 28 | 29 | ## Customizing vim 30 | 31 | **Due to the way 10x updates python scripts it will not update Vim.py if you have local edits, because of this we recommend that you try to customize vim in the following way.** 32 | 33 | The vim script provides some level of key binding customization without modifying the core script (Vim.py) with the help of VimUser.py. 34 | VimUser.py is rarely edited by maintainers and is designed to have local modifications, allowing the core script to be updated without conflicts. 35 | Inside VimUser.py there are multiple handlers with example code showing you how to use these functions. 36 | 37 | 38 | -------------------------------------------------------------------------------- /PythonScripts/README.md: -------------------------------------------------------------------------------- 1 | 2 | **Python Scripts** 3 | 4 | These scripts are contributions from the 10x community and not directly maintained by PureDev Software. 5 | 6 | To use these scripts copy them to the %appdata%\10x\PythonScripts folder. 7 | 8 | |Script name |Description| 9 | |--- |:---: | 10 | AddForwardDeclaration.py |Generates a forward declation of the token the cursor is over 11 | AddInclude.py |Adds include path for current symbol 12 | AutoDarkMode.py |Track active windows theme and sets appropriate color scheme 13 | ClangFormat.py |clang-format plugin for 10x 14 | CMakeIntegration.py |Builds cmake projects using cmake commandline 15 | CompileDbCmd.py |Single file compile command for projects with compile commands database 16 | FormatOnSave.py |Format On Save 17 | InstallHeaders.py |Installs a lightweight version of commonly used system headers 18 | PythonBlack.py |Formats python scripts using black after saving 19 | PythonAutopep.py |Formats python scripts using autopep after saving 20 | QuickPane.py |This script tries to simulate vim's "vsplit" and "only" commands 21 | RemedyBG.py |RemedyBG debugger integration 22 | SmoothScroll.py |With this script, you can add the ability to scroll faster with keyboard shortcuts. It also mimics smooth scrolling, more like mousewheel scrolling. 23 | SortLines.py |Sort the current selection of lines alphabetically 24 | TortoiseSVN.py |TortoiseSVN integration 25 | UE_GenerateVSProjectFiles.py |Regenerates the Visual Studio projects files using the UnrealEngineBuild tool 26 | Vim.py |Vim style editing. To enable Vim editing set Vim to true in the 10x settings file 27 | SignatureCreator.py |Creates a signature or an implementation of a function defined in the header on the CPP file 28 | -------------------------------------------------------------------------------- /SyntaxHighlighting/lua.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: *.lua 16 | 17 | BlockCommentStart: --[[ 18 | BlockCommentEnd: --]] 19 | 20 | #---------------------------------------------- 21 | # colour rules 22 | 23 | Language.Comment: 24 | REGEX(--.*) 25 | 26 | Language.String: 27 | REGEX("[^"\\]*(?:\\.[^"\\]*)*") 28 | REGEX('[^'\\]*(?:\\.[^'\\]*)*') 29 | 30 | Language.Number: 31 | REGEX([0-9]+) 32 | REGEX([0-9]+\.[0-9]*) 33 | REGEX(\b0[xX][a-fA-F0-9]+\b) 34 | 35 | Language.Brace: 36 | TEXT({) 37 | TEXT(}) 38 | 39 | Language.Bracket: 40 | TEXT(() 41 | TEXT()) 42 | 43 | Language.SquareBracket: 44 | TEXT([) 45 | TEXT(]) 46 | 47 | Language.SemiColon: 48 | TEXT(;) 49 | 50 | Language.Comma: 51 | TEXT(,) 52 | 53 | Language.Keyword: 54 | WORD(and) 55 | WORD(break) 56 | WORD(do) 57 | WORD(else) 58 | WORD(elseif) 59 | WORD(end) 60 | WORD(false) 61 | WORD(for) 62 | WORD(function) 63 | WORD(if) 64 | WORD(in) 65 | WORD(local) 66 | WORD(nil) 67 | WORD(not) 68 | WORD(or) 69 | WORD(repeat) 70 | WORD(return) 71 | WORD(them) 72 | WORD(true) 73 | WORD(until) 74 | WORD(while) 75 | WORD(then) 76 | 77 | Language.Operator: 78 | TEXT(.) 79 | TEXT(:) 80 | TEXT(-) 81 | TEXT(>) 82 | TEXT(=) 83 | TEXT(+) 84 | TEXT(-) 85 | TEXT(*) 86 | TEXT(/) 87 | TEXT(%) 88 | TEXT(<) 89 | TEXT(>) 90 | TEXT(.) 91 | TEXT(!) 92 | TEXT(|) 93 | TEXT(&) 94 | TEXT(:) 95 | TEXT(~) 96 | TEXT(^) 97 | TEXT(#) 98 | 99 | Language.Function: 100 | REGEX(\bfunction\s+([a-zA-Z_]+\w*)) 101 | REGEX(\b([a-zA-Z_]+\w*)\() 102 | 103 | Language.Variable: 104 | REGEX(\b[a-zA-Z_]+\w*\b) 105 | -------------------------------------------------------------------------------- /PythonScripts/PVS-Studio/PVS_Studio.py: -------------------------------------------------------------------------------- 1 | import subprocess 2 | import threading 3 | import xml.etree.ElementTree as ET 4 | from N10X import Editor as editor 5 | 6 | """ 7 | PVS-Studio: https://pvs-studio.com/en/docs/manual/0035/ 8 | """ 9 | 10 | def __print(msg: str): 11 | editor.LogToBuildOutput(msg) 12 | editor.LogToBuildOutput('\n') 13 | 14 | def __read_plog(plog_file): 15 | tree = ET.parse(plog_file) 16 | root = tree.getroot() 17 | 18 | sln_path = root.find('Solution_Path') 19 | if sln_path: 20 | sln_ver = sln_path.find('SolutionVersion') 21 | plog_ver = sln_path.find('PlogVersion') 22 | __print(f'Visual Studio: {sln_ver.text}') 23 | __print(f'Plog Version: {sln_ver.text}') 24 | 25 | for it in root.findall('PVS-Studio_Analysis_Log'): 26 | project_name = it.find('Project').text 27 | error_code = it.find('ErrorCode').text 28 | short_file = it.find('ShortFile').text 29 | line = it.find('Line').text 30 | false_alarm = it.find('FalseAlarm').text 31 | message = it.find('Message').text 32 | 33 | __print(f'Project[{project_name}] - Error[{error_code}] - Alarm[{false_alarm}]') 34 | __print(f'\t{short_file} - {line}') 35 | __print(f'\t{message}') 36 | 37 | 38 | def __pvs_studio_run(cmd: str, plog_file: str): 39 | __print(f'{cmd}\n') 40 | process = subprocess.Popen(cmd) 41 | process.wait() 42 | __read_plog(plog_file) 43 | 44 | def PVSStudioCmd(): 45 | editor.ClearBuildOutput() 46 | editor.Clear10xOutput() 47 | 48 | editor.ShowBuildOutput() 49 | 50 | __print('===== PVS-STUDIO =====') 51 | 52 | workspace = editor.GetWorkspaceFilename() 53 | exe = 'C:\Program Files (x86)\PVS-Studio\PVS-Studio_Cmd.exe' 54 | arg_sln = f'--target "{workspace}"' 55 | arg_log = f'--output "{workspace}.plog"' 56 | arg_cfg = f'--configuration {editor.GetBuildConfig()}' 57 | arg_plat = f'--platform {editor.GetBuildPlatform()}' 58 | cmd = f'{exe} {arg_sln} {arg_cfg} {arg_plat} {arg_log}' 59 | 60 | plog_file = f'{editor.GetWorkspaceFilename()}.plog' 61 | 62 | t = threading.Thread( 63 | target=__pvs_studio_run, 64 | args=(cmd, plog_file,)) 65 | t.start() 66 | -------------------------------------------------------------------------------- /PythonScripts/SignatureCreator/UtilitiesTests.py: -------------------------------------------------------------------------------- 1 | from Utilities import * 2 | 3 | def Test_Compare(TestName: str, A, B): 4 | if A == B: 5 | print(f'Test {TestName} PASSED') 6 | else: 7 | print(f'Test {TestName} FAILED\n {A} != {B}') 8 | 9 | def _TestSourceCodeLine(): 10 | Line = SourceCodeLine("const ENGINE_API ENGINE_API int* const ENGINE_API ComplexFunc(FVector a = (4.f, 2.f), int b = 42);", 11 | 0) 12 | Test_Compare("Initial len is 1", Line.PartsCount(), 1) 13 | 14 | # Test Split 15 | Line.Split(",") 16 | 17 | Test_Compare("Split result is 3 parts", Line.PartsCount(), 3) 18 | 19 | # Test each part is correctly splitted 20 | Test_Compare("Test each part is correctly splitted No. 0", str(Line.Head), 21 | "const ENGINE_API ENGINE_API int* const ENGINE_API ComplexFunc(FVector a = (4.f") 22 | Test_Compare("Test each part is correctly splitted No. 1", str(Line.Head.Next), 23 | " 2.f)") 24 | Test_Compare("Test each part is correctly splitted No. 2", str(Line.Head.Next.Next), 25 | " int b = 42);") 26 | 27 | Test_Compare("Joined str of all parts is correct", str(Line), 28 | "const ENGINE_API ENGINE_API int* const ENGINE_API ComplexFunc(FVector a = (4.f 2.f) int b = 42);") 29 | 30 | SubLine = SourceCodeLine("FVector a = (4.f, 2.f), int b = 42", 31 | 0, 62) 32 | 33 | SubLine.Split(",") 34 | 35 | Test_Compare("Split result is 3 parts", SubLine.PartsCount(), 3) 36 | 37 | # Test each part is correctly splitted 38 | Test_Compare("Test each part is correctly splitted No. 0", str(SubLine.Head), 39 | "FVector a = (4.f") 40 | Test_Compare("Test each part is correctly splitted No. 1", str(SubLine.Head.Next), 41 | " 2.f)") 42 | Test_Compare("Test each part is correctly splitted No. 2", str(SubLine.Head.Next.Next), 43 | " int b = 42") 44 | 45 | Test_Compare("Joined str of all parts is correct", str(SubLine), 46 | "FVector a = (4.f 2.f) int b = 42") 47 | 48 | 49 | def _RunSignatureCreatorTests(): 50 | _TestSourceCodeLine() 51 | 52 | # Run tests on startup may fail it we test N10X specific editor functionality 53 | # RunTests() -------------------------------------------------------------------------------- /SyntaxHighlighting/golang.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: .go 16 | 17 | #---------------------------------------------- 18 | # colour rules 19 | 20 | Language.Comment: 21 | REGEX(//.*) 22 | 23 | Language.String: 24 | REGEX([ubrf]?"(?:(?:[^"\\])*(?:\\\")*(?:\\\\)*)*") 25 | 26 | Language.Number: 27 | REGEX((0[xX][a-zA-Z0-9]+)) 28 | REGEX((0[bB][0-9]+)) 29 | REGEX([0-9]+[fd]*[uUlLzZfFdD]*) 30 | REGEX([0-9]+\.[0-9]*[fd]*[uUlLzZfFdD]*) 31 | REGEX([0-9]*\.[0-9]+[fd]*[uUlLzZfFdD]*) 32 | 33 | Language.Brace: 34 | TEXT({) 35 | TEXT(}) 36 | 37 | Language.Bracket: 38 | TEXT(() 39 | TEXT()) 40 | 41 | Language.SquareBracket: 42 | TEXT([) 43 | TEXT(]) 44 | 45 | Language.Keyword: 46 | WORD(break) 47 | WORD(case) 48 | WORD(chan) 49 | WORD(const) 50 | WORD(continue) 51 | WORD(default) 52 | WORD(defer) 53 | WORD(else) 54 | WORD(fallthrough) 55 | WORD(for) 56 | WORD(func) 57 | WORD(go) 58 | WORD(goto) 59 | WORD(if) 60 | WORD(import) 61 | WORD(interface) 62 | WORD(map) 63 | WORD(package) 64 | WORD(range) 65 | WORD(return) 66 | WORD(select) 67 | WORD(struct) 68 | WORD(switch) 69 | WORD(type) 70 | WORD(var) 71 | 72 | Language.Operator: 73 | TEXT(.) 74 | TEXT(:) 75 | TEXT(-) 76 | TEXT(>) 77 | TEXT(=) 78 | TEXT(+) 79 | TEXT(-) 80 | TEXT(*) 81 | TEXT(/) 82 | TEXT(%) 83 | TEXT(<) 84 | TEXT(>) 85 | TEXT(.) 86 | TEXT(!) 87 | TEXT(|) 88 | TEXT(&) 89 | TEXT(:) 90 | TEXT(~) 91 | TEXT(?) 92 | TEXT(^) 93 | 94 | Language.Function: 95 | REGEX(func\s+([a-zA-Z_]+\w*)) 96 | REGEX(\b([a-zA-Z_]+\w*)\() 97 | 98 | Language.Preprocessor: 99 | REGEX(^\s*package) 100 | REGEX(^\s*import) 101 | 102 | Language.Variable: 103 | REGEX(\b[a-zA-Z_]+\w*\b) 104 | 105 | -------------------------------------------------------------------------------- /PythonScripts/Vim/VimUser.py: -------------------------------------------------------------------------------- 1 | import N10X 2 | from Vim import UserHandledResult, Key 3 | 4 | #------------------------------------------------------------------------ 5 | # VimUser - Comes with handlers to override default Vim bindings. 6 | # Designed to be edited locally so users can avoid having to merge Vim.py 7 | #------------------------------------------------------------------------ 8 | 9 | """ 10 | Key handler for command mode 11 | """ 12 | def UserHandleCommandModeKey(key: Key) -> UserHandledResult: 13 | 14 | # 15 | # Testing/Examples 16 | # 17 | do_test = False 18 | if do_test: 19 | # Testing - pass ctrl+h back to 10x to open find and replace. 20 | if key == Key("H", control=True): 21 | return UserHandledResult.PASS_TO_10X 22 | 23 | # Testing - handle ctrl+u and print Hello World 24 | if key == Key("U", control=True): 25 | print("Hello World") 26 | return UserHandledResult.HANDLED 27 | 28 | # 29 | # Add own keybindings below 30 | # 31 | 32 | 33 | # Default - do nothing 34 | return UserHandledResult.UNHANDLED 35 | 36 | """ 37 | Key handler for insert mode 38 | """ 39 | def UserHandleInsertModeKey(key: Key) -> UserHandledResult: 40 | 41 | # 42 | # Testing/Examples 43 | # 44 | do_test = False 45 | if do_test: 46 | # Testing - pass ctrl+z back to 10x to undo 47 | if key == Key("V", control=True): 48 | return UserHandledResult.PASS_TO_10X 49 | 50 | # 51 | # Add own keybindings below 52 | # 53 | 54 | # Default - do nothing 55 | return UserHandledResult.UNHANDLED 56 | 57 | 58 | """ 59 | Command handler for commandline mode, e.g. :q, :w, etc. 60 | """ 61 | def UserHandleCommandline(command) -> UserHandledResult: 62 | 63 | # 64 | # Testing/Examples 65 | # 66 | do_test = False 67 | if do_test: 68 | # Testing - print current filename. 69 | if command == ":filename": 70 | print(N10X.Editor.GetCurrentFilename()) 71 | return UserHandledResult.HANDLED 72 | 73 | # Testing - print Hello World 74 | if command == ":hello": 75 | print("Hello World") 76 | return UserHandledResult.HANDLED 77 | 78 | # 79 | # Add own commands below 80 | # 81 | 82 | 83 | # Default - do nothing 84 | return UserHandledResult.UNHANDLED -------------------------------------------------------------------------------- /PythonScripts/CompileDbCmd/CompileDbCmd.py: -------------------------------------------------------------------------------- 1 | # Single file compile command for projects with compile commands database 2 | # For questions, bugs and suggestions, contact septag@pm.me 3 | 4 | import N10X 5 | import os 6 | import json 7 | import subprocess 8 | from typing import NamedTuple 9 | import time 10 | 11 | class CompileEntry(NamedTuple): 12 | cwd : str 13 | args : str 14 | 15 | compile_entries = {} 16 | 17 | def ParseCompDb(): 18 | global compile_entries 19 | 20 | workspace_dir:str = os.path.dirname(os.path.normpath(N10X.Editor.GetWorkspaceFilename())) 21 | compdb_path:str = N10X.Editor.GetSetting("CompileDb.Path") 22 | if compdb_path == "": 23 | compdb_path = os.path.join(workspace_dir, 'build', 'compile_commands.json') 24 | compdb_path = compdb_path.replace('$(WorkspaceDirectory)', workspace_dir) 25 | compdb_path = os.path.normpath(compdb_path) 26 | 27 | if os.path.isfile(compdb_path): 28 | print('[CompileDbCmd.py]: Parsing compilation database: ' + compdb_path) 29 | start : float = time.perf_counter() 30 | with open(compdb_path, 'r') as f: 31 | compiledb_data = json.load(f) 32 | f.close() 33 | 34 | for compile_entry in compiledb_data: 35 | compile_entries[compile_entry['file']] = CompileEntry(compile_entry['directory'], compile_entry['command']) 36 | print('[CompileDbCmd.py]: Parse time: %fs' % (time.perf_counter() - start)) 37 | 38 | def CompDbCompile(): 39 | cur_filename:str = N10X.Editor.GetCurrentFilename() 40 | if cur_filename in compile_entries: 41 | entry : CompileEntry = compile_entries[cur_filename] 42 | N10X.Editor.LogToBuildOutput(entry.args + '\n') 43 | result : subprocess.CompletedProcess = subprocess.run(entry.args, cwd=entry.cwd, shell=True, capture_output=True) 44 | if result.stderr != None and len(result.stderr) > 0: 45 | N10X.Editor.LogToBuildOutput(result.stderr.decode('UTF-8')) 46 | elif result.stdout != None and len(result.stdout) > 0: 47 | N10X.Editor.LogToBuildOutput(result.stdout.decode('UTF-8')) 48 | else: 49 | N10X.Editor.LogToBuildOutput('0 Errors, 0 Warnings\n') 50 | 51 | def CompDbReload(): 52 | global compile_entries 53 | if N10X.Editor.GetWorkspaceOpenComplete(): 54 | compile_entries.clear() 55 | ParseCompDb() 56 | 57 | N10X.Editor.AddOnWorkspaceOpenedFunction(ParseCompDb) 58 | -------------------------------------------------------------------------------- /PythonScripts/GenerateVSProjectFiles/UE_GenerateVSProjectFiles.py: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------ 2 | import N10X 3 | import os 4 | from datetime import datetime 5 | import threading 6 | 7 | 8 | 9 | # In order for this method to succeed, the following setting values need to be placed in the Settings.10x_settings file: 10 | 11 | # UE.Project: 12 | # UE.InstallDir: 13 | 14 | # # Use the value specified here for the UE.GenVSProjCommand. So just copy the following line and put directly into your settings file: 15 | # UE.GenVSProjCommand: dotnet "{ueInstallDir}\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" -projectfiles -project="{ueProject}" -game -engine -progress -log="{logPath}" 16 | 17 | # Once these settings are in place, create a new keystroke in your key map. For example: 18 | # Alt Shift Control G: UE_GenerateVSProjectFiles() 19 | 20 | 21 | def _genProjectFilesInBackground( command ): 22 | os.system(command) 23 | 24 | 25 | def UE_GenerateVSProjectFiles(): 26 | N10X.Editor.LogTo10XOutput("\n\n[UE] Generate Visual Studio Project\n") 27 | 28 | ueProject = N10X.Editor.GetSetting("UE.Project") 29 | ueInstallDir = N10X.Editor.GetSetting("UE.InstallDir") 30 | ueCommand = N10X.Editor.GetSetting("UE.GenVSProjCommand") 31 | 32 | 33 | index = ueProject.rindex("\\") 34 | if index == -1: 35 | index = ueProject.rindex("/") 36 | 37 | slice = len(ueProject) - index 38 | currentDateTime = datetime.now() 39 | timeStr = currentDateTime.strftime("%Y.%m.%d-%H.%M.%S") 40 | logPath = ueProject[:-slice] + f"\\Saved\\Logs\\10x-{timeStr}.log" 41 | 42 | fullCommand = ueCommand.format( ueProject = ueProject, ueInstallDir = ueInstallDir, logPath = logPath) 43 | #N10X.Editor.LogTo10XOutput(f"[UE] ueProject: {ueProject}\n[UE] ueInstallDir: {ueInstallDir}\n[UE] logPath: {logPath}\n[UE] ueCommand: {ueCommand}\n") 44 | #N10X.Editor.LogTo10XOutput("[UE] Full Command:" + fullCommand + "\n") 45 | 46 | N10X.Editor.SetStatusBarText(f"[UE_GenerateVSProjectFiles] Generating project files. The workspace will reopen momentarily.") 47 | 48 | thread = threading.Thread(target=_genProjectFilesInBackground, args=(fullCommand, )) 49 | thread.start() 50 | 51 | 52 | -------------------------------------------------------------------------------- /SyntaxHighlighting/python.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: .py,.scons 16 | 17 | #---------------------------------------------- 18 | # colour rules 19 | 20 | Language.Comment: 21 | REGEX(#.*) 22 | 23 | Language.String: 24 | REGEX([ubrf]?"[^"\\]*(?:\\.[^"\\]*)*") 25 | REGEX([ubrf]?'[^'\\]*(?:\\.[^'\\]*)*') 26 | 27 | 28 | Language.Number: 29 | REGEX((0[xX][a-zA-Z0-9]+)) 30 | REGEX((0[bB][0-9]+)) 31 | REGEX([0-9]+[fd]*[uUlLzZfFdD]*) 32 | REGEX([0-9]+\.[0-9]*[fd]*[uUlLzZfFdD]*) 33 | REGEX([0-9]*\.[0-9]+[fd]*[uUlLzZfFdD]*) 34 | 35 | Language.Brace: 36 | TEXT({) 37 | TEXT(}) 38 | 39 | Language.Bracket: 40 | TEXT(() 41 | TEXT()) 42 | 43 | Language.SquareBracket: 44 | TEXT([) 45 | TEXT(]) 46 | 47 | Language.Keyword: 48 | WORD(and) 49 | WORD(as) 50 | WORD(assert) 51 | WORD(break) 52 | WORD(class) 53 | WORD(continue) 54 | WORD(def) 55 | WORD(del) 56 | WORD(elif) 57 | WORD(else) 58 | WORD(except) 59 | WORD(False) 60 | WORD(finally) 61 | WORD(for) 62 | WORD(from) 63 | WORD(global) 64 | WORD(if) 65 | WORD(import) 66 | WORD(in) 67 | WORD(is) 68 | WORD(lambda) 69 | WORD(None) 70 | WORD(nonlocal) 71 | WORD(not) 72 | WORD(or) 73 | WORD(pass) 74 | WORD(raise) 75 | WORD(return) 76 | WORD(True) 77 | WORD(try) 78 | WORD(while) 79 | WORD(with) 80 | WORD(yield) 81 | 82 | Language.Operator: 83 | TEXT(.) 84 | TEXT(:) 85 | TEXT(-) 86 | TEXT(>) 87 | TEXT(=) 88 | TEXT(+) 89 | TEXT(-) 90 | TEXT(*) 91 | TEXT(/) 92 | TEXT(%) 93 | TEXT(<) 94 | TEXT(>) 95 | TEXT(.) 96 | TEXT(!) 97 | TEXT(|) 98 | TEXT(&) 99 | TEXT(:) 100 | TEXT(~) 101 | TEXT(?) 102 | TEXT(^) 103 | 104 | Language.Function: 105 | REGEX(def\s+([a-zA-Z_]+\w*)) 106 | REGEX(\b([a-zA-Z_]+\w*)\() 107 | 108 | Language.Class: 109 | REGEX(\b([a-zA-Z_]+\w*)\.[a-zA-Z_]+\w*) 110 | 111 | Language.Namespace: 112 | REGEX(import\s+([a-zA-Z_]+\w*)) 113 | REGEX(from\s+([a-zA-Z_]+\w*)\s+import) 114 | 115 | Language.Variable: 116 | REGEX(\b[a-zA-Z_]+\w*\b) 117 | 118 | -------------------------------------------------------------------------------- /PythonScripts/TortoiseSVN/TortoiseSVN.py: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------ 2 | import N10X 3 | import subprocess 4 | 5 | TORTOISE_EXE = "TortoiseProc.exe" 6 | 7 | class TortoiseSVN_Options(): 8 | def __init__(self): 9 | self.bin_path = N10X.Editor.GetSetting("TortoiseSVN.TortoisePath") 10 | 11 | def TortoiseSVNLog(): 12 | global _svn_options 13 | 14 | if (len(N10X.Editor.GetCurrentFilename()) == 0): 15 | return 16 | 17 | try: 18 | subprocess.Popen([_svn_options.bin_path, 19 | '/command:log', 20 | '/path:' + N10X.Editor.GetCurrentFilename()], 21 | shell=False, stdin=None, stdout=None, stderr=None, 22 | close_fds=True) 23 | except FileNotFoundError: 24 | print('[TortoiseSVN]: TortoiseProc executable "' + _svn_options.bin_path + '" could not be found') 25 | 26 | def TortoiseSVNDiff(): 27 | global _svn_options 28 | 29 | if (len(N10X.Editor.GetCurrentFilename()) == 0): 30 | return 31 | 32 | try: 33 | subprocess.Popen([_svn_options.bin_path, 34 | '/command:diff', 35 | '/path:' + N10X.Editor.GetCurrentFilename()], 36 | shell=False, stdin=None, stdout=None, stderr=None, 37 | close_fds=True) 38 | except FileNotFoundError: 39 | print('[TortoiseSVN]: TortoiseProc executable "' + _svn_options.bin_path + '" could not be found') 40 | 41 | def TortoiseSVNBlame(): 42 | global _svn_options 43 | 44 | if (len(N10X.Editor.GetCurrentFilename()) == 0): 45 | return 46 | 47 | try: 48 | subprocess.Popen([_svn_options.bin_path, 49 | '/command:blame', 50 | '/path:' + N10X.Editor.GetCurrentFilename(), 51 | '/line:' + str(N10X.Editor.GetCursorPos()[1] + 1), 52 | '/startrev:1', 53 | '/endrev:HEAD'], 54 | shell=False, stdin=None, stdout=None, stderr=None, 55 | close_fds=True) 56 | except FileNotFoundError: 57 | print('[TortoiseSVN]: TortoiseProc executable "' + _svn_options.bin_path + '" could not be found') 58 | 59 | 60 | def InitialiseTortoiseSVN(): 61 | global _svn_options 62 | _svn_options = TortoiseSVN_Options() 63 | if not N10X.Editor.GetSetting("TortoiseSVN.TortoisePath"): 64 | N10X.Editor.SetSetting("TortoiseSVN.TortoisePath", TORTOISE_EXE) 65 | 66 | N10X.Editor.CallOnMainThread(InitialiseTortoiseSVN) -------------------------------------------------------------------------------- /PythonScripts/GenerateVSProjectFiles/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Generate Visual Studio Project Files for Unreal Engine Projects 3 | This script can be used to generate the .sln file that 10x is using for a Visual Studio Workspace 4 | 5 | In order for this script to succeed, the following setting values need to be placed in the Settings.10x_settings file: 6 | 7 | UE.Project: 8 | UE.InstallDir: 9 | 10 | # Use the value specified here for the UE.GenVSProjCommand. So just copy the following line and put directly into your settings file: 11 | UE.GenVSProjCommand: dotnet "{ueInstallDir}\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" -projectfiles -project="{ueProject}" -game -engine -progress -log="{logPath}" 12 | 13 | Once these settings are in place, create a new keystroke in your key map. For example: 14 | Alt Shift Control G: GenerateVSProjectFiles() 15 | 16 | You will need to save your workspace prior to running this script. 17 | 18 | ## Do NOT turn of Intellisense generation 19 | 20 | I want to leave these instructions here so that at a later time it will be possible to turn off the generation of intellisense data, but unfortunately, as of 9/11/2025, 21 | generating Intellisense data has a side effect which generates the IncludePath tags in the project files, which is used by the AddInclude.py script to properly 22 | add header files for types under the cursor. 23 | 24 | Until I find a solution to this problem, reverting back to REQUIRING the bGenerateIntelliSenseData to `true` 25 | 26 | 27 | ## REFRAIN FROM THE FOLLOWING FOR NOW ( see note above ) 28 | 29 | Also, I highly recommend turning OFF Intellisense generation ( as we are using 10X after all! ) for your projects. 30 | 31 | You can do this by modifying the BuildConfiguration.xml file found in `/Saved/UnrealBuildTool/BuildConfiguration.xml`. 32 | 33 | By default, that file will look like this: 34 | 35 | ` 36 | 37 | ` 38 | 39 | Add the following between those `Configuration` tags: 40 | 41 | ` 42 | false 43 | ` 44 | 45 | so the default BuildConfiguration.xml file after the addition of the new tags should look like this: 46 | 47 | ` 48 | 49 | 50 | false 51 | 52 | ` 53 | -------------------------------------------------------------------------------- /SyntaxHighlighting/zig.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: .zig 16 | 17 | #---------------------------------------------- 18 | # colour rules 19 | 20 | Language.Comment: 21 | REGEX(//.*) 22 | 23 | Language.String: 24 | REGEX(L?"[^"\\]*(?:\\.[^"\\]*)*") 25 | REGEX(L?'[^'\\]*(?:\\.[^'\\]*)*') 26 | 27 | Language.Preprocessor: 28 | WORD(@import) 29 | 30 | Language.Number: 31 | REGEX((0[xX][a-zA-Z0-9]+)) 32 | REGEX((0[bB][0-9]+)) 33 | REGEX([0-9]+[fd]*[uUlLzZfFdD]*) 34 | REGEX([0-9]+\.[0-9]*[fd]*[fFdD]*) 35 | REGEX([0-9]*\.[0-9]+[fd]*[fFdD]*) 36 | 37 | Language.Brace: 38 | TEXT({) 39 | TEXT(}) 40 | 41 | Language.Bracket: 42 | TEXT(() 43 | TEXT()) 44 | 45 | Language.SquareBracket: 46 | TEXT([) 47 | TEXT(]) 48 | 49 | Language.SemiColon: 50 | TEXT(;) 51 | 52 | Language.Comma: 53 | TEXT(,) 54 | 55 | Language.Keyword: 56 | WORD(pub) 57 | WORD(fn) 58 | WORD(var) 59 | WORD(const) 60 | WORD(if) 61 | WORD(for) 62 | WORD(switch) 63 | WORD(try) 64 | WORD(void) 65 | WORD(i8) 66 | WORD(u8) 67 | WORD(i16) 68 | WORD(u16) 69 | WORD(i32) 70 | WORD(u32) 71 | WORD(i64) 72 | WORD(u64) 73 | WORD(i128) 74 | WORD(u128) 75 | WORD(isize) 76 | WORD(usize) 77 | WORD(c_short) 78 | WORD(c_ushort) 79 | WORD(c_int) 80 | WORD(c_uint) 81 | WORD(c_long) 82 | WORD(c_ulong) 83 | WORD(c_longlong) 84 | WORD(c_ulonglong) 85 | WORD(c_longdouble) 86 | WORD(f16) 87 | WORD(f32) 88 | WORD(f64) 89 | WORD(f80) 90 | WORD(f128) 91 | WORD(bool) 92 | WORD(anyopaque) 93 | WORD(void) 94 | WORD(noreturn) 95 | WORD(type) 96 | WORD(anyerror) 97 | WORD(comptime_int) 98 | WORD(comptime_float) 99 | 100 | Language.Operator: 101 | TEXT(.) 102 | TEXT(:) 103 | TEXT(-) 104 | TEXT(>) 105 | TEXT(=) 106 | TEXT(+) 107 | TEXT(-) 108 | TEXT(*) 109 | TEXT(/) 110 | TEXT(%) 111 | TEXT(<) 112 | TEXT(>) 113 | TEXT(.) 114 | TEXT(!) 115 | TEXT(|) 116 | TEXT(&) 117 | TEXT(:) 118 | TEXT(~) 119 | TEXT(?) 120 | TEXT(^) 121 | 122 | Language.MemberFunction: 123 | REGEX(fn ([a-zA-Z_]+\w*)) 124 | REGEX([a-zA-Z_]+\w*.([a-zA-Z_]+\w*)\() 125 | 126 | Language.Function: 127 | REGEX(\b([a-zA-Z_]+\w*)\() 128 | 129 | Language.Class: 130 | REGEX(([a-zA-Z_]+\w*)\.) 131 | 132 | Language.Variable: 133 | REGEX(\b[a-zA-Z_]+\w*\b) 134 | 135 | -------------------------------------------------------------------------------- /PythonScripts/SmartSpace/SmartSpace.py: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------ 2 | import N10X 3 | import os 4 | 5 | #------------------------------------------------------------------------ 6 | def IsSkipChar(c): 7 | return c == " " or c == "\t" 8 | 9 | #------------------------------------------------------------------------ 10 | def OnInterceptKey(key, shift, control, alt): 11 | if key == "Left": 12 | (x, y) = N10X.Editor.GetCursorPos() 13 | 14 | line = N10X.Editor.GetLine(y) 15 | count = len(line) 16 | 17 | if count == 2 and x != 0: 18 | # We are at the end of the current line. The next line is empty 19 | # count is two (\r\n) and the cursor still returns the end 20 | # position of the last line position and visually the cursor is 21 | # in the new line aligned with indentation by design. If you now 22 | # click on the left, it should jump from the visual position to 23 | # the beginning of the empty line. 24 | # 25 | # VisualEmptyLine: 26 | N10X.Editor.SetCursorPos((0, y+1)) 27 | elif count > 0 and x > count: 28 | N10X.Editor.SetCursorPos((0, y)) 29 | elif count > 0 and x < count and x-1 > -1 and IsSkipChar(line[x-1]): 30 | move = True 31 | a = 0 32 | 33 | # Look backward, but at least 2 spaces in row 34 | for i in range(int(x), -1, -1): 35 | a += 1; 36 | if not IsSkipChar(line[i-1]): 37 | if a < 2: 38 | move = False 39 | break 40 | 41 | if move: 42 | N10X.Editor.SetCursorPos((i, y)) 43 | return True 44 | 45 | elif key == "Right": 46 | (x, y) = N10X.Editor.GetCursorPos() 47 | 48 | line = N10X.Editor.GetLine(y) 49 | count = len(line) 50 | 51 | if count == 2 and x != 0: 52 | # VisualEmptyLine: 53 | N10X.Editor.SetCursorPos((0, y+1)) 54 | elif count > 0 and x < count and x+1 < count and IsSkipChar(line[x+1]): 55 | move = True 56 | a = 0 57 | 58 | # Look forward, but at least 2 spaces in row 59 | for i in range(int(x), count, 1): 60 | a += 1; 61 | if not IsSkipChar(line[i]): 62 | if a < 2: 63 | move = False 64 | break 65 | 66 | if move: 67 | N10X.Editor.SetCursorPos((i, y)) 68 | return True 69 | 70 | 71 | #------------------------------------------------------------------------ 72 | # uncomment this line to skip the largest possible number of spaces or tabs 73 | # while moving 74 | N10X.Editor.AddOnInterceptKeyFunction(OnInterceptKey) 75 | -------------------------------------------------------------------------------- /SyntaxHighlighting/jai.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: *.jai 16 | 17 | BlockCommentStart: /* 18 | BlockCommentEnd: */ 19 | 20 | #---------------------------------------------- 21 | # colour rules 22 | 23 | Language.Comment: 24 | REGEX(//.*) 25 | 26 | Language.String: 27 | REGEX(L?"[^"\\]*(?:\\.[^"\\]*)*") 28 | REGEX(L?'[^'\\]*(?:\\.[^'\\]*)*') 29 | 30 | Language.Preprocessor: 31 | REGEX(\s*#\s*[a-zA-Z_]+\w*) 32 | 33 | Language.Function: 34 | REGEX(\b([a-zA-Z_].*)::.*\() 35 | REGEX(\b([a-zA-Z_]+\w*)\() 36 | 37 | Language.Variable: 38 | REGEX(\b([a-zA-Z_].*)::.*;) 39 | # https://github.com/RobinWragg/JaiTools/blob/92c840d9525aeca0be456c6b17d3231d7e289b8d/Jai.sublime-syntax#L21C33-L21C33 40 | REGEX((?:\b|\$+)[a-zA-Z_]\w*) 41 | 42 | Language.MemberVariable: 43 | REGEX((?:\.)([a-zA-Z_]+\w*)) 44 | 45 | Language.MemberFunction: 46 | REGEX((?:\.)([a-zA-Z_]+\w*)\() 47 | 48 | Language.Brace: 49 | TEXT({) 50 | TEXT(}) 51 | 52 | Language.Bracket: 53 | TEXT(() 54 | TEXT()) 55 | 56 | Language.SquareBracket: 57 | TEXT([) 58 | TEXT(]) 59 | 60 | Language.SemiColon: 61 | TEXT(;) 62 | 63 | Language.Comma: 64 | TEXT(,) 65 | 66 | Language.Keyword: 67 | WORD(bool) 68 | WORD(int) 69 | WORD(u8) 70 | WORD(u16) 71 | WORD(u32) 72 | WORD(u64) 73 | WORD(s8) 74 | WORD(s16) 75 | WORD(s32) 76 | WORD(s64) 77 | WORD(float32) 78 | WORD(float64) 79 | WORD(f32) # Should hopefully get added soon? 80 | WORD(f64) # Should hopefully get added soon? 81 | WORD(string) 82 | WORD(struct) 83 | WORD(then) 84 | WORD(if) 85 | WORD(else) 86 | WORD(ifx) 87 | WORD(switch) 88 | WORD(case) 89 | WORD(using) 90 | WORD(null) 91 | WORD(is_constant) 92 | WORD(union) 93 | WORD(interface) 94 | WORD(code_of) 95 | WORD(defer) 96 | WORD(inline) 97 | WORD(no_inline) 98 | WORD(return) 99 | WORD(true) 100 | WORD(false) 101 | WORD(push_context) 102 | WORD(enum_flags) 103 | WORD(while) 104 | WORD(struct) 105 | WORD(break) 106 | WORD(continue) 107 | WORD(size_of) 108 | WORD(type_of) 109 | WORD(for) 110 | WORD(xx) 111 | 112 | Language.Operator: 113 | TEXT(.) 114 | TEXT(:) 115 | TEXT(-) 116 | TEXT(>) 117 | TEXT(=) 118 | TEXT(+) 119 | TEXT(-) 120 | TEXT(*) 121 | TEXT(<<) 122 | TEXT(/) 123 | TEXT(%) 124 | TEXT(<) 125 | TEXT(>) 126 | TEXT(.) 127 | TEXT($) 128 | TEXT(\) 129 | TEXT(!) 130 | TEXT(|) 131 | TEXT(:) 132 | TEXT(~) 133 | TEXT(?) -------------------------------------------------------------------------------- /SyntaxHighlighting/rust.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: .rs 16 | 17 | BlockCommentStart: /* 18 | 19 | BlockCommentEnd: */ 20 | 21 | #---------------------------------------------- 22 | # colour rules 23 | 24 | Language.Comment: 25 | REGEX(//.*) 26 | 27 | Language.String: 28 | REGEX("[^"\\]*(?:\\.[^"\\]*)*") 29 | REGEX('[^'\\]*(?:\\.[^'\\]*)*') 30 | 31 | Language.Namespace: 32 | REGEX(^\s*use\s+(.*)) 33 | 34 | Language.Number: 35 | REGEX((0[xX|oO][a-zA-Z0-9]+)) 36 | REGEX((0[bB][0-9]+)) 37 | REGEX([0-9]+[fd]*(?:u8|i8|u16|i16|u32|i32|u64|i64|u128|i128|usize|isize)?) 38 | REGEX([0-9]+\.[0-9]*[fd]*(?:f32|f64)*) 39 | REGEX([0-9]*\.[0-9]+[fd]*(?:f32|f64)*) 40 | 41 | Language.Brace: 42 | TEXT({) 43 | TEXT(}) 44 | 45 | Language.Bracket: 46 | TEXT(() 47 | TEXT()) 48 | 49 | Language.SquareBracket: 50 | TEXT([) 51 | TEXT(]) 52 | 53 | Language.SemiColon: 54 | TEXT(;) 55 | 56 | Language.Comma: 57 | TEXT(,) 58 | 59 | Language.Keyword: 60 | WORD(as) 61 | WORD(break) 62 | WORD(const) 63 | WORD(continue) 64 | WORD(crate) 65 | WORD(else) 66 | WORD(enum) 67 | WORD(extern) 68 | WORD(false) 69 | WORD(fn) 70 | WORD(for) 71 | WORD(if) 72 | WORD(impl) 73 | WORD(in) 74 | WORD(let) 75 | WORD(loop) 76 | WORD(match) 77 | WORD(mod) 78 | WORD(move) 79 | WORD(mut) 80 | WORD(pub) 81 | WORD(ref) 82 | WORD(return) 83 | WORD(self) 84 | WORD(Self) 85 | WORD(static) 86 | WORD(struct) 87 | WORD(super) 88 | WORD(trait) 89 | WORD(true) 90 | WORD(type) 91 | WORD(unsafe) 92 | WORD(use) 93 | WORD(where) 94 | WORD(while) 95 | WORD(abstract) 96 | WORD(become) 97 | WORD(box) 98 | WORD(do) 99 | WORD(final) 100 | WORD(macro) 101 | WORD(override) 102 | WORD(priv) 103 | WORD(typeof) 104 | WORD(unsized) 105 | WORD(virtual) 106 | WORD(yield) 107 | WORD(try) 108 | WORD(union) 109 | WORD(dyn) 110 | WORD('static) 111 | 112 | Language.Operator: 113 | TEXT(.) 114 | TEXT(:) 115 | TEXT(-) 116 | TEXT(>) 117 | TEXT(=) 118 | TEXT(+) 119 | TEXT(-) 120 | TEXT(*) 121 | TEXT(/) 122 | TEXT(%) 123 | TEXT(<) 124 | TEXT(>) 125 | TEXT(.) 126 | TEXT(!) 127 | TEXT(|) 128 | TEXT(&) 129 | TEXT(:) 130 | TEXT(~) 131 | TEXT(?) 132 | TEXT(^) 133 | 134 | Language.MemberFunction: 135 | REGEX(\.([a-zA-Z_]+\w*)\() 136 | REGEX([a-zA-Z_]+\w*::([a-zA-Z_]+\w*)\() 137 | 138 | Language.Function: 139 | REGEX(\bfn\s+([a-zA-Z_]+\w*)) 140 | REGEX(\b([a-zA-Z_]+\w*)\() 141 | 142 | Language.Class: 143 | REGEX(::([a-zA-Z_]+\w*)) 144 | 145 | Language.Variable: 146 | REGEX(\b[a-zA-Z_]+\w*\b) 147 | 148 | -------------------------------------------------------------------------------- /PythonScripts/ClangFormat/ClangFormat.py: -------------------------------------------------------------------------------- 1 | # clang-format plugin for 10x 2 | # Settings: 3 | # - "ClangFormat.Path": Path to clang-format executable, default: "clang-format.exe" 4 | # - "ClangFormat.Stlye": One of 'LLVM', 'GNU', 'Google', 'Chromium', 'Microsoft', 'Mozilla', 'WebKit' values 5 | # Or 'file' if you are providing .clang-format file in your project 6 | # 7 | import subprocess 8 | import os 9 | import N10X 10 | from typing import NamedTuple 11 | 12 | CLANGFORMAT_EXE = "clang-format.exe" 13 | 14 | class ClangFormatConfig(NamedTuple): 15 | bin_path : str 16 | style_name : str 17 | 18 | def _ClangFormatReadSettings(): 19 | bin_path = N10X.Editor.GetSetting("ClangFormat.Path") 20 | style_name = N10X.Editor.GetSetting("ClangFormat.Style") 21 | 22 | if not bin_path: 23 | bin_path = CLANGFORMAT_EXE 24 | 25 | if not style_name: 26 | style_name = "file" 27 | 28 | return ClangFormatConfig(bin_path, style_name) 29 | 30 | def ClangFormatSelection(): 31 | settings = _ClangFormatReadSettings() 32 | 33 | start = N10X.Editor.GetSelectionStart() 34 | end = N10X.Editor.GetSelectionEnd() 35 | if start[1] != end[1]: 36 | N10X.Editor.SaveFile() 37 | cwd = None 38 | if settings.style_name == 'file': 39 | cwd = os.path.dirname(settings.bin_path) 40 | try: 41 | process = subprocess.Popen([settings.bin_path, 42 | '--style=' + settings.style_name, 43 | '--lines=' + str(start[1]) + ':' + str(end[1]), 44 | '-i', 45 | N10X.Editor.GetCurrentFilename()], 46 | shell=True, stdin=None, stdout=None, stderr=None, 47 | close_fds=True, cwd=cwd) 48 | process.communicate() 49 | except FileNotFoundError: 50 | print('[ClangFormat]: clang-format executable "' + settings.bin_path + '" could not be found') 51 | N10X.Editor.CheckForModifiedFiles() 52 | 53 | #------------------------------------------------------------------------ 54 | def ClangFormatFile(): 55 | settings = _ClangFormatReadSettings() 56 | 57 | N10X.Editor.SaveFile() 58 | try: 59 | cwd = None 60 | if settings.style_name == 'file': 61 | cwd = os.path.dirname(settings.bin_path) 62 | process = subprocess.Popen([settings.bin_path, 63 | '-style=' + settings.style_name, 64 | '-i', 65 | N10X.Editor.GetCurrentFilename()], 66 | shell=True, stdin=None, stdout=None, stderr=None, 67 | close_fds=True, cwd=cwd) 68 | process.communicate() 69 | except FileNotFoundError: 70 | print('[ClangFormat]: clang-format executable "' + settings.bin_path + '" could not be found') 71 | N10X.Editor.CheckForModifiedFiles() 72 | 73 | -------------------------------------------------------------------------------- /SyntaxHighlighting/c3.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: *.c3 16 | 17 | BlockCommentStart: /* 18 | 19 | BlockCommentEnd: */ 20 | 21 | #---------------------------------------------- 22 | # colour rules 23 | 24 | Language.Comment: 25 | REGEX(//.*) 26 | 27 | Language.String: 28 | REGEX(L?"[^"\\]*(?:\\.[^"\\]*)*") 29 | REGEX(L?'[^'\\]*(?:\\.[^'\\]*)*') 30 | 31 | Language.Preprocessor: 32 | REGEX(\s*#\s*[a-zA-Z_]+\w*) 33 | REGEX(\$) 34 | 35 | Language.Keyword: 36 | WORD(asm) 37 | WORD(assert) 38 | WORD(bitstruct) 39 | WORD(break) 40 | WORD(case) 41 | WORD(catch) 42 | WORD(const) 43 | WORD(continue) 44 | WORD(def) 45 | WORD(default) 46 | WORD(defer) 47 | WORD(distinct) 48 | WORD(do) 49 | WORD(else) 50 | WORD(enum) 51 | WORD(extern) 52 | WORD(false) 53 | WORD(fault) 54 | WORD(for) 55 | WORD(foreach) 56 | WORD(foreach_r) 57 | WORD(fn) 58 | WORD(tlocal) 59 | WORD(if) 60 | WORD(inline) 61 | WORD(import) 62 | WORD(macro) 63 | WORD(module) 64 | WORD(nextcase) 65 | WORD(null) 66 | WORD(return) 67 | WORD(static) 68 | WORD(struct) 69 | WORD(switch) 70 | WORD(true) 71 | WORD(try) 72 | WORD(union) 73 | WORD(var) 74 | WORD(while) 75 | WORD(%switch) 76 | WORD($default) 77 | WORD($case) 78 | WORD($if) 79 | WORD($typeof) 80 | WORD($else) 81 | WORD($sizeof) 82 | WORD($for) 83 | WORD($case) 84 | 85 | Language.Enum: 86 | REGEX(enum\s+([A-Z_]+[a-zA-Z0-9_]*)) 87 | 88 | Language.Class: 89 | WORD(bool) 90 | WORD(char) 91 | WORD(ichar) 92 | WORD(short) 93 | WORD(ushort) 94 | WORD(int) 95 | WORD(uint) 96 | WORD(long) 97 | WORD(ulong) 98 | WORD(int128) 99 | WORD(uint128) 100 | WORD(isz) 101 | WORD(usz) 102 | WORD(iptr) 103 | WORD(uptr) 104 | WORD(float16) 105 | WORD(float) 106 | WORD(double) 107 | WORD(float128) 108 | REGEX(([A-Z_]+[a-zA-Z0-9_]*)) 109 | 110 | Language.Variable: 111 | REGEX(([a-z_]+[a-zA-Z0-9_]*)) 112 | 113 | Language.Number: 114 | REGEX((0[xX][a-zA-Z0-9]+)) 115 | REGEX((0[bB][0-9]+)) 116 | REGEX([0-9]+[fd]*[uUlLzZfFdD]*) 117 | REGEX([0-9]+\.[0-9]*[fd]*[fFdD]*) 118 | REGEX([0-9]*\.[0-9]+[fd]*[fFdD]*) 119 | 120 | Language.Brace: 121 | TEXT({) 122 | TEXT(}) 123 | 124 | Language.Bracket: 125 | TEXT(() 126 | TEXT()) 127 | 128 | Language.SquareBracket: 129 | TEXT([) 130 | TEXT(]) 131 | 132 | Language.SemiColon: 133 | TEXT(;) 134 | 135 | Language.Comma: 136 | TEXT(,) 137 | 138 | Language.Operator: 139 | TEXT(.) 140 | TEXT(:) 141 | TEXT(-) 142 | TEXT(>) 143 | TEXT(=) 144 | TEXT(+) 145 | TEXT(-) 146 | TEXT(*) 147 | TEXT(/) 148 | TEXT(%) 149 | TEXT(<) 150 | TEXT(>) 151 | TEXT(.) 152 | TEXT(!) 153 | TEXT(|) 154 | TEXT(&) 155 | TEXT(:) 156 | TEXT(~) 157 | TEXT(?) 158 | TEXT(^) 159 | -------------------------------------------------------------------------------- /SyntaxHighlighting/java.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: .java 16 | 17 | BlockCommentStart: /* 18 | 19 | BlockCommentEnd: */ 20 | 21 | #---------------------------------------------- 22 | # colour rules 23 | 24 | Language.Comment: 25 | REGEX(//.*) 26 | 27 | Language.String: 28 | REGEX("[^"\\]*(?:\\.[^"\\]*)*") 29 | REGEX('[^'\\]*(?:\\.[^'\\]*)*') 30 | 31 | Language.Namespace: 32 | REGEX(^\s*package\s+(.*)) 33 | 34 | Language.Number: 35 | REGEX((0[xX|oO][a-zA-Z0-9]+)) 36 | REGEX((0[bB][0-9]+)) 37 | REGEX([0-9]+[fd]*(?:u8|i8|u16|i16|u32|i32|u64|i64|u128|i128|usize|isize)?) 38 | REGEX([0-9]+\.[0-9]*[fd]*(?:f32|f64)*) 39 | REGEX([0-9]*\.[0-9]+[fd]*(?:f32|f64)*) 40 | 41 | Language.Brace: 42 | TEXT({) 43 | TEXT(}) 44 | 45 | Language.Bracket: 46 | TEXT(() 47 | TEXT()) 48 | 49 | Language.SquareBracket: 50 | TEXT([) 51 | TEXT(]) 52 | 53 | Language.SemiColon: 54 | TEXT(;) 55 | 56 | Language.Comma: 57 | TEXT(,) 58 | 59 | Language.Keyword: 60 | WORD(abstract) 61 | WORD(assert) 62 | WORD(boolean) 63 | WORD(break) 64 | WORD(byte) 65 | WORD(case) 66 | WORD(catch) 67 | WORD(char) 68 | WORD(class) 69 | WORD(continue) 70 | WORD(const) 71 | WORD(default) 72 | WORD(do) 73 | WORD(double) 74 | WORD(else) 75 | WORD(enum) 76 | WORD(exports) 77 | WORD(extends) 78 | WORD(final) 79 | WORD(finally) 80 | WORD(float) 81 | WORD(for) 82 | WORD(goto) 83 | WORD(if) 84 | WORD(implements) 85 | WORD(import) 86 | WORD(instanceof) 87 | WORD(int) 88 | WORD(interface) 89 | WORD(long) 90 | WORD(module) 91 | WORD(native) 92 | WORD(new) 93 | WORD(package) 94 | WORD(private) 95 | WORD(protected) 96 | WORD(public) 97 | WORD(requires) 98 | WORD(return) 99 | WORD(short) 100 | WORD(static) 101 | WORD(strictfp) 102 | WORD(super) 103 | WORD(switch) 104 | WORD(synchronized) 105 | WORD(this) 106 | WORD(throw) 107 | WORD(throws) 108 | WORD(transient) 109 | WORD(try) 110 | WORD(var) 111 | WORD(void) 112 | WORD(volatile) 113 | WORD(while) 114 | WORD(true) 115 | WORD(false) 116 | WORD(null) 117 | 118 | Language.Operator: 119 | TEXT(.) 120 | TEXT(:) 121 | TEXT(-) 122 | TEXT(>) 123 | TEXT(=) 124 | TEXT(+) 125 | TEXT(-) 126 | TEXT(*) 127 | TEXT(/) 128 | TEXT(%) 129 | TEXT(<) 130 | TEXT(>) 131 | TEXT(.) 132 | TEXT(!) 133 | TEXT(|) 134 | TEXT(&) 135 | TEXT(:) 136 | TEXT(~) 137 | TEXT(?) 138 | TEXT(^) 139 | 140 | Language.MemberFunction: 141 | REGEX(\.([a-zA-Z_]+\w*)\() 142 | REGEX([a-zA-Z_]+\w*::([a-zA-Z_]+\w*)\() 143 | 144 | Language.Function: 145 | REGEX(\bfn\s+([a-zA-Z_]+\w*)) 146 | REGEX(\b([a-zA-Z_]+\w*)\() 147 | 148 | Language.Class: 149 | REGEX(public\s+class\s+([a-zA-Z_]+\w*)) 150 | REGEX(::([a-zA-Z_]+\w*)) 151 | 152 | Language.Variable: 153 | REGEX(\b[a-zA-Z_]+\w*\b) 154 | 155 | -------------------------------------------------------------------------------- /SyntaxHighlighting/php.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: .php 16 | 17 | #---------------------------------------------- 18 | # colour rules 19 | 20 | Language.Comment: 21 | REGEX(//.*) 22 | 23 | Language.String: 24 | REGEX("[^"\\]*(?:\\.[^"\\]*)*") 25 | REGEX('[^'\\]*(?:\\.[^'\\]*)*') 26 | 27 | Language.Number: 28 | REGEX((0[xX][a-zA-Z0-9]+)) 29 | REGEX((0[bB][0-9]+)) 30 | REGEX([0-9]+[fd]*[uUlLzZfFdD]*) 31 | REGEX([0-9]+\.[0-9]*[fd]*[uUlLzZfFdD]*) 32 | REGEX([0-9]*\.[0-9]+[fd]*[uUlLzZfFdD]*) 33 | 34 | Language.Brace: 35 | TEXT({) 36 | TEXT(}) 37 | 38 | Language.Bracket: 39 | TEXT(() 40 | TEXT()) 41 | 42 | Language.SquareBracket: 43 | TEXT([) 44 | TEXT(]) 45 | 46 | Language.Namespace: 47 | REGEX(\s*use\s+(.*)) 48 | 49 | Language.Keyword: 50 | WORD(__halt_compiler()) 51 | WORD(abstract) 52 | WORD(and) 53 | WORD(array()) 54 | WORD(as) 55 | WORD(break) 56 | WORD(callable) 57 | WORD(case) 58 | WORD(catch) 59 | WORD(class) 60 | WORD(clone) 61 | WORD(const) 62 | WORD(continue) 63 | WORD(declare) 64 | WORD(default) 65 | WORD(die()) 66 | WORD(do) 67 | WORD(echo) 68 | WORD(else) 69 | WORD(elseif) 70 | WORD(empty()) 71 | WORD(enddeclare) 72 | WORD(endfor) 73 | WORD(endforeach) 74 | WORD(endif) 75 | WORD(endswitch) 76 | WORD(endwhile) 77 | WORD(eval()) 78 | WORD(exit()) 79 | WORD(extends) 80 | WORD(final) 81 | WORD(finally) 82 | WORD(fn) 83 | WORD(for) 84 | WORD(foreach) 85 | WORD(function) 86 | WORD(global) 87 | WORD(goto) 88 | WORD(if) 89 | WORD(implements) 90 | WORD(include) 91 | WORD(include_once) 92 | WORD(instanceof) 93 | WORD(insteadof) 94 | WORD(interface) 95 | WORD(isset()) 96 | WORD(list()) 97 | WORD(match) 98 | WORD(namespace) 99 | WORD(new) 100 | WORD(or) 101 | WORD(print) 102 | WORD(private) 103 | WORD(protected) 104 | WORD(public) 105 | WORD(readonly) 106 | WORD(require) 107 | WORD(require_once) 108 | WORD(return) 109 | WORD(static) 110 | WORD(switch) 111 | WORD(throw) 112 | WORD(trait) 113 | WORD(try) 114 | WORD(unset()) 115 | WORD(use) 116 | WORD(var) 117 | WORD(while) 118 | WORD(xor) 119 | WORD(yield) 120 | WORD(Exception) 121 | 122 | Language.Preprocessor: 123 | TEXT() 125 | 126 | Language.Operator: 127 | TEXT(.) 128 | TEXT(:) 129 | TEXT(-) 130 | TEXT(>) 131 | TEXT(=) 132 | TEXT(+) 133 | TEXT(-) 134 | TEXT(*) 135 | TEXT(/) 136 | TEXT(%) 137 | TEXT(<) 138 | TEXT(>) 139 | TEXT(.) 140 | TEXT(!) 141 | TEXT(|) 142 | TEXT(&) 143 | TEXT(:) 144 | TEXT(~) 145 | TEXT(?) 146 | TEXT(^) 147 | 148 | Language.Function: 149 | REGEX(\b([a-zA-Z_]+\w*)\() 150 | 151 | Language.Class: 152 | REGEX(\b([a-zA-Z_]+\w*)\.[a-zA-Z_]+\w*) 153 | 154 | Language.Namespace: 155 | REGEX(import\s+([a-zA-Z_]+\w*)) 156 | REGEX(from\s+([a-zA-Z_]+\w*)\s+import) 157 | 158 | Language.Variable: 159 | REGEX(\$[a-zA-Z_]+\w*\b) 160 | REGEX(\b([a-zA-Z_]+\w*)\b) 161 | 162 | -------------------------------------------------------------------------------- /PythonScripts/RemedyBG/README.md: -------------------------------------------------------------------------------- 1 | 2 | # RemedyBG debugger integration 3 | RemedyBG: https://remedybg.handmade.network/ 4 | 5 | Note that this script only works with RemedyBG version 0.3.8 and above. Some features might also be unavailable for the early versions. It is recommended to get the latest version of RemedyBG. 6 | 7 | ## Features 8 | 9 | - Replaces visual-studio debugger integration with RemedyBG 10 | - Supports RemedyBG session files. Saving a session file while debugger is open will bind the session file to your specific Config/Platform and preserves all extra debugger session data on the next runs 11 | - Two way breakpoint syncing between RemedyBG / 10x 12 | - Cursor position syncing in 10x when execution suspends 13 | - Resolves breakpoints on the RemedyBG side, so invalid or unreachable breakpoints will be cleaned out from the editor 14 | - Can execute custom 10x commands when debugging target is started or stopped 15 | - StepInto/StepOut/StepOver/RunToCursor commands 16 | - Can divert all debugger output text into 10x output window 17 | - AddSelectionToWatch: Adds a selected text in 10x to debugger's watch window 18 | - GotoCursor: RemedyBG will jump to the current cursor in 10x editor 19 | 20 | ## Installation 21 | 22 | - First, Copy the script file (RemedyBG.py) in to `%appdata%\10x\PythonScripts\` directory or just run `RemedyBG_Install.bat` and then restart 10x editor. 23 | - By this time, you should be able to see `RDBG_` family of commands in command panel (CTRL+SHIFT+X). 24 | - Set `RemedyBG.Path` setting to the correct path of your remedybg.exe binary 25 | - Now you can add the setting `RemedyBG.Hook: true` to hook RemedyBG instead of the default visual-studio debugger. So every time you run debugging commands like "Start debugger (F5)" a new RemedyBG session will be opened. If you wish to keep visual-studio debugger integration, you can just assign different shortcuts to `RDBG_StartDebugging`/`RDBG_StopDebugging` and `RDBG_RestartDebugging` commands. 26 | 27 | ## Additional settings and commands 28 | 29 | For more details on additional settings and commands. Please refer to the comments section in the script itself [here](./RemedyBG.py). 30 | 31 | # RemedyBG Debugger Updater 32 | Version: 0.1.0 33 | 34 | **Note that you don't need the updater to use the debugger, the steps below are optional** 35 | 36 | Requires the following python modules to be installed: 37 | - requests 38 | - BeautifulSoup4 39 | 40 | To install these modules in 10x's python use the pip command with python3 and set 41 | the target to be 10x's installation directory: 42 | 43 | > python3 -m pip install --target="C:\Program Files\PureDevSoftware\10x\Lib\site-packages" 44 | > requests 45 | 46 | > python3 -m pip install --target="C:\Program Files\PureDevSoftware\10x\Lib\site-packages" 47 | > BeautifulSoup4 48 | 49 | **You can get the Portal Token from the itch.io download page url for RemedyBG:** 50 | - in any browser login to itch.io 51 | - navigate to https://remedybg.itch.io/remedybg 52 | - if you havnt purchased RemedyBG, do so now. Support the dev! 53 | - click the "Download" button 54 | - The PortalToken value will be in the url for the downloads page 55 | e.g: https://remedybg.itch.io/remedybg/download/{PortalToken} 56 | 57 | 58 | 59 | **You can get the Itch.io Login Cookie and Token by reading the saved cookies via your browser:** 60 | - in chrome login to itch.io 61 | - press f12 and go to the "application" tab 62 | - under "storage" expand "Cookies" 63 | - use the "itchio" value for RemedyBG_Updater.ItchLoginCookie 64 | - use the "itchio_token" value for RemedyBG_Updater.ItchLoginToken 65 | -------------------------------------------------------------------------------- /PythonScripts/AddForwardDeclaration/AddForwardDeclaration.py: -------------------------------------------------------------------------------- 1 | from N10X import Editor as Editor 2 | import re 3 | 4 | def _GetForwardDeclInsertionPos(startPos, endPos, symName, symType): 5 | 6 | #Editor.SetSelection(startPos, endPos) 7 | 8 | lineToInsert = -1 9 | column = 0 10 | prefix = symType 11 | firstBlankLinePos = -1 12 | existingDeclsFound = False 13 | 14 | for i in range(startPos[1], endPos[1], 1): 15 | line = Editor.GetLine(i) 16 | #print(f"LINE: {i} Value: `{line.lstrip().rstrip()}`") 17 | if len(line.lstrip().rstrip()) == 0 and lineToInsert == -1: 18 | lineToInsert = i 19 | firstBlankLinePos = i 20 | else: 21 | result = re.search(".*\\bclass\\b.*(\\w);", line) if symType == "class" else re.search(".*\\bstruct\\b.*(\\w);", line) 22 | 23 | if result: 24 | declName = result.group().lstrip().removeprefix(prefix) 25 | #print(f"declName {declName}") 26 | if declName.rstrip()[-1] == ";": 27 | if declName.lstrip().removesuffix(";") == symName: 28 | # Forward Declaration already present 29 | column = -1; 30 | break; 31 | else: 32 | # Found another decl, so let's keep looking to place 33 | # new decl after the last forward declaration 34 | existingDeclsFound = True 35 | lineToInsert = i+1 36 | 37 | #print(f"\tLine To Insert: {lineToInsert}") 38 | 39 | if existingDeclsFound == False or lineToInsert == -1: 40 | lineToInsert = startPos[1]+1 41 | 42 | return (column,lineToInsert) 43 | 44 | 45 | 46 | def _GetEndOfIncludesPos(): 47 | x = 0 48 | y = 0 49 | 50 | for i in range(Editor.GetLineCount() - 1, 0, -1): 51 | line = Editor.GetLine(i) 52 | result = re.search("#include", line) 53 | if result: 54 | # -2 to also trim the newline char 55 | Editor.SetCursorPos((len(line)-2,i)) 56 | # Make sure the cursor is placed at the end of the line, even if there is ws 57 | Editor.ExecuteCommand("MoveToLineEnd") 58 | pos = Editor.GetCursorPos() 59 | return pos 60 | 61 | return (0,0) 62 | 63 | def _FindInsertionPoint( currentScopePos, symName, symType ): 64 | includePos = _GetEndOfIncludesPos() 65 | insertPos = _GetForwardDeclInsertionPos(includePos, currentScopePos, symName, symType ) 66 | 67 | return insertPos 68 | 69 | # Adds a forward declaration of whatever token the cursor is currently on 70 | def AddForwardDeclaration(): 71 | Editor.PushUndoGroup() 72 | origPos = Editor.GetCursorPos() 73 | 74 | Editor.ExecuteCommand("SelectCurrentWord") 75 | symName = Editor.GetSelection() 76 | symType = Editor.GetSymbolType(origPos).lower() 77 | Editor.ExecuteCommand("SelectCurrentScope") 78 | currentScopePos = Editor.GetSelectionStart() 79 | 80 | insertPos = _FindInsertionPoint( currentScopePos, symName, symType ) 81 | 82 | if insertPos[0] != -1: 83 | 84 | #print(f"Insert POS: {insertPos}") 85 | 86 | output = f"{symType} {symName};\n" 87 | 88 | Editor.BeginTextUpdate() 89 | Editor.SetCursorPos(insertPos) 90 | 91 | Editor.InsertText(f"{output}") 92 | Editor.SetCursorPos((origPos[0], origPos[1]+1)) 93 | Editor.EndTextUpdate() 94 | else: 95 | Editor.LogTo10XOutput(f"[AddForwardDeclaration] {symName} alread present as a forward declaration") 96 | Editor.SetCursorPos(origPos) 97 | 98 | Editor.PopUndoGroup() 99 | -------------------------------------------------------------------------------- /PythonScripts/LLMHelper/README.md: -------------------------------------------------------------------------------- 1 | # LLMHelper - 10x Editor Plugin 2 | 3 | A plugin for the [10x Editor](https://10xeditor.com/) that integrates Ollama LLM directly into your workflow. Send selected code or text to your local Ollama instance and get AI responses directly in the editor's output panel. 4 | 5 | ## Features 6 | 7 | - 🤖 **Direct Ollama Integration**: Send selected text to Ollama with a simple keyboard shortcut 8 | - ⚡ **Fast & Local**: Uses your local Ollama instance - no internet required 9 | - 🔧 **Configurable**: Choose any Ollama model via environment variables 10 | - 📝 **Print Output**: Responses appear in the 10x Editor output panel 11 | - 🎯 **Simple API**: Single command to call from key bindings 12 | 13 | ## Prerequisites 14 | 15 | - [10x Editor](https://10xeditor.com/) installed 16 | - [Ollama](https://ollama.ai/) installed and running locally 17 | - At least one Ollama model downloaded (e.g., `ollama pull codellama`) 18 | 19 | ## Installation 20 | 21 | ### 1. Set up environment variables 22 | 23 | Add these environment variables to your system: 24 | 25 | **Windows (PowerShell):** 26 | ```powershell 27 | [System.Environment]::SetEnvironmentVariable('10X_LLM_HOST', 'http://localhost:11434', 'User') 28 | [System.Environment]::SetEnvironmentVariable('10X_LLM_MODEL', 'codellama', 'User') 29 | ``` 30 | 31 | **Windows (Command Prompt):** 32 | ```powershell 33 | setx 10X_LLM_HOST "http://localhost:11434" 34 | setx 10X_LLM_MODEL "codellama" 35 | ``` 36 | 37 | 2. Install the plugin 38 | 39 | - Copy LLMHelper.py to your 10x Editor workspace or plugins directory 40 | - Open 10x Editor 41 | - Press Ctrl+F9 to reload Python scripts 42 | 43 | You should see initialization messages in the output panel: 44 | ``` 45 | LLMHelper: ✅ LLM HOST found: 'http://localhost:11434' 46 | LLMHelper: ✅ LLM MODEL selected 'codellama' 47 | ``` 48 | 49 | 50 | 3. Configure keyboard shortcut 51 | 52 | Go to Settings → Key Bindings (or press Ctrl+K) 53 | Add this line: 54 | ``` 55 | Control F9: LLMHelperCmd() 56 | ``` 57 | Save and close 58 | 59 | ## Usage 60 | 61 | Select text in the editor (code, comments, questions, etc.) 62 | Press your configured shortcut (e.g., Ctrl+Alt+L) 63 | The selected text is sent to Ollama 64 | The response appears in the Output Panel 65 | 66 | 67 | ## Example 68 | Select this code: 69 | ```py 70 | def fibonacci(n): 71 | # TODO: implement 72 | pass 73 | ``` 74 | 75 | Press Ctrl+Alt+L, and Ollama will generate: 76 | ```py 77 | ✅ 🤖 Ollama (codellama): 78 | Here's an implementation of the fibonacci function: 79 | 80 | def fibonacci(n): 81 | if n <= 1: 82 | return n 83 | return fibonacci(n-1) + fibonacci(n-2) 84 | ``` 85 | 86 | 87 | ## Troubleshooting 88 | "⚠️ LLM HOST not found!" 89 | * Ensure environment variables are set correctly 90 | * Restart 10x Editor after setting environment variables 91 | * Check spelling: 10X_LLM_HOST (case-insensitive) 92 | 93 | "⚠️ LLM MODEL not found!" 94 | * Set the 10X_LLM_MODEL environment variable 95 | * Verify the model exists: ollama list 96 | 97 | "🛑 connection failed to http://localhost:11434" 98 | * Start Ollama: ollama serve (or ensure Ollama app is running) 99 | * Check if Ollama is listening: curl http://localhost:11434/api/tags 100 | 101 | "⚠️ no selection. Select text then retry." 102 | * You need to select text before triggering the command 103 | * Make sure text is highlighted in the editor 104 | 105 | "🛑 error retrieving selection" 106 | * The 10x API might have changed 107 | * Check the 10x documentation 108 | * File an issue with details 109 | 110 | 111 | ## Changelog 112 | **v1.0.0** 113 | * Initial release 114 | * Basic Ollama integration 115 | * Environment variable configuration 116 | * Print-only output mode 117 | -------------------------------------------------------------------------------- /PythonScripts/LLMHelper/LLM_Helper.py: -------------------------------------------------------------------------------- 1 | # LLMHelper.py — Ollama chat (print-only) + direct call via KeyBindings 2 | # To bind a shortcut: Settings → Key Bindings then add for example: 3 | # Control F9: LLM_SendSelectionToChat() 4 | # (The Python function is called directly by the keymap.) 5 | 6 | import os 7 | import json 8 | import urllib.request 9 | import urllib.error 10 | import N10X 11 | 12 | LLM_HOST: str | None = None 13 | LLM_MODEL: str | None = None 14 | 15 | ICON_OK = "✅" 16 | ICON_WRN = "⚠️" 17 | ICON_ERR = "🛑" 18 | ICON_BOT = "🤖" 19 | 20 | # ---------- Init provider (env -> globals) ---------- 21 | def __initialize_llm_provider(_dt: float = 0.0) -> None: 22 | global LLM_HOST, LLM_MODEL 23 | 24 | host = ( 25 | os.getenv("10X_LLM_HOST") 26 | or os.getenv("10x_LLM_HOST") 27 | or os.getenv("10x_llm_host") 28 | or "" 29 | ).strip() 30 | 31 | model = ( 32 | os.getenv("10X_LLM_MODEL") 33 | or os.getenv("10x_LLM_MODEL") 34 | or os.getenv("10x_llm_model") 35 | or "" 36 | ).strip() 37 | 38 | LLM_HOST = host if host else None 39 | LLM_MODEL = model if model else None 40 | 41 | if LLM_HOST: 42 | print(f"LLMHelper: {ICON_OK} LLM HOST found: '{LLM_HOST}'") 43 | else: 44 | print(f"LLMHelper: {ICON_WRN} LLM HOST not found!") 45 | 46 | if LLM_MODEL: 47 | print(f"LLMHelper: {ICON_OK} LLM MODEL selected '{LLM_MODEL}'") 48 | else: 49 | print(f"LLMHelper: {ICON_WRN} LLM MODEL not found!") 50 | 51 | try: 52 | N10X.Editor.RemoveUpdateFunction(__initialize_llm_provider) 53 | except Exception: 54 | pass 55 | 56 | # ---------- HTTP helper ---------- 57 | def __http_post_json(url: str, payload: dict, timeout: float = 60.0) -> dict: 58 | data = json.dumps(payload).encode("utf-8") 59 | req = urllib.request.Request( 60 | url, 61 | data=data, 62 | headers={"Content-Type": "application/json"}, 63 | method="POST", 64 | ) 65 | with urllib.request.urlopen(req, timeout=timeout) as resp: 66 | return json.loads(resp.read().decode("utf-8")) 67 | 68 | # ---------- Ollama chat ---------- 69 | def __llm_ollama_chat(question: str) -> str | None: 70 | """ 71 | Sends 'question' to Ollama via /api/chat with the LLM_MODEL model. 72 | Displays the response via print and returns it. 73 | """ 74 | global LLM_HOST, LLM_MODEL 75 | 76 | if not question or not question.strip(): 77 | print(f"{ICON_WRN} LLMHelper: empty question.") 78 | return None 79 | 80 | host = (LLM_HOST or "http://localhost:11434").rstrip("/") 81 | model = (LLM_MODEL or "").strip() 82 | 83 | if not model: 84 | print(f"{ICON_ERR} LLMHelper: no model (LLM_MODEL) is defined.") 85 | return None 86 | 87 | url = f"{host}/api/chat" 88 | body = { 89 | "model": model, 90 | "messages": [{"role": "user", "content": question.strip()}], 91 | "stream": False, 92 | } 93 | 94 | try: 95 | resp = __http_post_json(url, body, timeout=120.0) 96 | msg = resp.get("message") or {} 97 | content = (msg.get("content") or resp.get("response") or "").strip() 98 | 99 | if content: 100 | print(f"{ICON_OK} {ICON_BOT} Ollama ({model}):\n{content}") 101 | return content 102 | else: 103 | print(f"{ICON_WRN} LLMHelper: empty response from Ollama.") 104 | return None 105 | 106 | except urllib.error.HTTPError as e: 107 | try: 108 | detail = e.read().decode("utf-8") 109 | except Exception: 110 | detail = str(e) 111 | print(f"{ICON_ERR} LLMHelper: HTTP {e.code} on {url} — {detail}") 112 | except urllib.error.URLError as e: 113 | print(f"{ICON_ERR} LLMHelper: connection failed to {url} — {e.reason}") 114 | except Exception as e: 115 | print(f"{ICON_ERR} LLMHelper: unexpected error — {e}") 116 | 117 | return None 118 | 119 | # ---------- Selection utilities ---------- 120 | def __get_selection_text() -> str: 121 | try: 122 | # The correct 10x API to retrieve the selection 123 | return N10X.Editor.GetSelection() 124 | except Exception as e: 125 | print(f"{ICON_ERR} LLMHelper: error retrieving selection — {e}") 126 | return "" 127 | 128 | # ---------- Function called directly by the keybinding ---------- 129 | def LLMHelperCmd() -> None: 130 | sel = __get_selection_text() 131 | if not sel.strip(): 132 | print(f"{ICON_WRN} LLMHelper: no selection. Select text then retry.") 133 | return 134 | __llm_ollama_chat(sel) 135 | 136 | # ---------- Schedule init in the update cycle ---------- 137 | try: 138 | N10X.Editor.AddUpdateFunction(__initialize_llm_provider) 139 | except Exception: 140 | pass 141 | -------------------------------------------------------------------------------- /PythonScripts/PythonAutopep8/PythonAutopep8.py: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------------------ 2 | import sys 3 | import N10X 4 | import subprocess 5 | import re 6 | import os 7 | 8 | """ 9 | autopep8 python formatter for 10x (10xeditor.com) 10 | Version: 0.1.0 11 | Original Script author: https://github.com/andersama 12 | 13 | To get started go to Settings.10x_settings, and enable the hooks, by adding these lines: 14 | Autopep8.HookPostSave: true 15 | 16 | This script assumes autopep8.exe is in your path! To change this modify Autopep8.Path 17 | 18 | Autopep8_Options: 19 | - Autopep8.HookPostSave: (default=False) Hooks autopep8 into post save events 20 | - Autopep8.Path: Path to autopep8 executable or directory 21 | """ 22 | 23 | try: 24 | import autopep8 25 | except ImportError: 26 | # NOTE: this silently fails if autopep8 is missing requirements! 27 | # If you want to save some time, install autopep8.py and its requirements under 28 | # C:/Program Files/PureDevSoftware/10x/Lib/site-packages (this saves about .1 seconds per 10x launch) 29 | # pip install "--target=C:/Program Files/PureDevSoftware/10x/Lib/site-packages" autopep8 30 | pass 31 | 32 | 33 | def run_cmd(cmd_args, working_dir=None) -> str: 34 | if working_dir == None: 35 | process = subprocess.Popen( 36 | cmd_args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, encoding="utf8" 37 | ) 38 | else: 39 | process = subprocess.Popen( 40 | cmd_args, 41 | stdout=subprocess.PIPE, 42 | stderr=subprocess.STDOUT, 43 | cwd=working_dir, 44 | encoding="utf8", 45 | ) 46 | 47 | returncode = process.wait() 48 | result = process.stdout.read() 49 | return result 50 | 51 | 52 | def autopep8_installed(): 53 | autopep8_exe = N10X.Editor.GetSetting("Autopep8.Path").strip() 54 | if not autopep8_exe: 55 | autopep8_exe = "autopep8" 56 | if os.path.isdir(autopep8_exe): 57 | autopep8_exe = os.path.join(autopep8_exe, "autopep8.exe") 58 | 59 | txt = run_cmd([autopep8_exe, "--version"]) 60 | r = re.search(r"autopep8 .+", txt) 61 | return r != None and len(r.group(0)) > 0 62 | 63 | 64 | def autopep8_installed_py(): 65 | txt = run_cmd(["python", "-m", "autopep8", "--version"]) 66 | r = re.search(r"autopep8 .+", txt) 67 | return r != None and len(r.group(0)) > 0 68 | 69 | 70 | def OnPythonSavedCMD(filename: str): 71 | if filename.endswith(".py"): 72 | print("Formatting {0} using autopep8".format(filename)) 73 | stdtxt = run_cmd(["autopep8", "-i", filename]) 74 | 75 | 76 | def OnPythonSavedModule(filename: str): 77 | if filename.endswith(".py"): 78 | print("Formatting {0} using autopep8".format(filename)) 79 | 80 | autopep8.fix_file( 81 | filename, 82 | options=autopep8.parse_args([filename, "--in-place"], apply_config=True), 83 | ) 84 | 85 | 86 | def OnPythonSavedPy(filename: str): 87 | if filename.endswith(".py"): 88 | print("Formatting {0} using autopep8".format(filename)) 89 | stdtxt = run_cmd(["python", "-m", "autopep8", "-i", filename]) 90 | 91 | 92 | def InitializeAutopep8(): 93 | module_available = "autopep8" in sys.modules 94 | autopep8_hooked_txt = N10X.Editor.GetSetting("Autopep8.HookPostSave") 95 | autopep8_hooked = autopep8_hooked_txt and autopep8_hooked_txt.lower() == "true" 96 | 97 | if not autopep8_hooked: 98 | print("autopep8 disabled") 99 | return 100 | 101 | if module_available and autopep8_hooked: 102 | print("autopep8 module enabled") 103 | N10X.Editor.AddPostFileSaveFunction(OnPythonSavedModule) 104 | return 105 | # NOTE: when imported this script runs WAY faster, commandline execution has pretty bad latency from using subprocess 106 | print( 107 | "autopep8 falling back to cmdline, be sure to install autopep8.py and pycodestyle.py packages under: C:/Program Files/PureDevSoftware/10x/Lib/site-packages" 108 | ) 109 | autopep8_cmd_enabled = autopep8_installed() 110 | autopep8_py_enabled = False 111 | if not autopep8_cmd_enabled: 112 | autopep8_py_enabled = autopep8_installed_py() 113 | print( 114 | "autopep8 {0}".format( 115 | "enabled" 116 | if (autopep8_cmd_enabled or autopep8_py_enabled) and autopep8_hooked 117 | else "disabled" 118 | ) 119 | ) 120 | 121 | if autopep8_cmd_enabled and autopep8_hooked: 122 | N10X.Editor.AddPostFileSaveFunction(OnPythonSavedCMD) 123 | elif autopep8_py_enabled and autopep8_hooked: 124 | N10X.Editor.AddPostFileSaveFunction(OnPythonSavedPY) 125 | elif autopep8_hooked: 126 | print("Could not verify autopep8 was installed configure Autopep8.Path") 127 | 128 | 129 | N10X.Editor.CallOnMainThread(InitializeAutopep8) 130 | -------------------------------------------------------------------------------- /SyntaxHighlighting/cs.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: .cs 16 | 17 | BlockCommentStart: /* 18 | 19 | BlockCommentEnd: */ 20 | 21 | #---------------------------------------------- 22 | # colour rules 23 | 24 | Language.Comment: 25 | REGEX(//.*) 26 | 27 | Language.String: 28 | REGEX(@".*?") 29 | REGEX("[^"\\]*(?:\\.[^"\\]*)*") 30 | REGEX('[^'\\]*(?:\\.[^'\\]*)*') 31 | 32 | Language.Preprocessor: 33 | REGEX(\s*#\s*[a-zA-Z_]+\w*) 34 | 35 | Language.Namespace: 36 | REGEX(namespace\s+([a-zA-Z_]+\w*)) 37 | REGEX(using\s+(.*)) 38 | 39 | Language.Number: 40 | REGEX((0[xX][a-zA-Z0-9]+)) 41 | REGEX((0[bB][0-9]+)) 42 | REGEX([0-9]+[fd]*[uUlLzZfFdD]*) 43 | REGEX([0-9]+\.[0-9]*[fd]*[fFdD]*) 44 | REGEX([0-9]*\.[0-9]+[fd]*[fFdD]*) 45 | 46 | Language.Brace: 47 | TEXT({) 48 | TEXT(}) 49 | 50 | Language.Bracket: 51 | TEXT(() 52 | TEXT()) 53 | 54 | Language.SquareBracket: 55 | TEXT([) 56 | TEXT(]) 57 | 58 | Language.SemiColon: 59 | TEXT(;) 60 | 61 | Language.Comma: 62 | TEXT(,) 63 | 64 | Language.Enum: 65 | REGEX(enum\s+([a-zA-Z_]+\w*)) 66 | 67 | Language.Keyword: 68 | WORD(abstract) 69 | WORD(as) 70 | WORD(base) 71 | WORD(bool) 72 | WORD(break) 73 | WORD(byte) 74 | WORD(case) 75 | WORD(catch) 76 | WORD(char) 77 | WORD(checked) 78 | WORD(class) 79 | WORD(const) 80 | WORD(continue) 81 | WORD(decimal) 82 | WORD(default) 83 | WORD(delegate) 84 | WORD(do) 85 | WORD(double) 86 | WORD(else) 87 | WORD(enum) 88 | WORD(event) 89 | WORD(explicit) 90 | WORD(extern) 91 | WORD(false) 92 | WORD(finally) 93 | WORD(fixed) 94 | WORD(float) 95 | WORD(for) 96 | WORD(foreach) 97 | WORD(goto) 98 | WORD(if) 99 | WORD(implicit) 100 | WORD(in) 101 | WORD(int) 102 | WORD(interface) 103 | WORD(internal) 104 | WORD(is) 105 | WORD(lock) 106 | WORD(long) 107 | WORD(namespace) 108 | WORD(new) 109 | WORD(null) 110 | WORD(object) 111 | WORD(operator) 112 | WORD(out) 113 | WORD(override) 114 | WORD(params) 115 | WORD(private) 116 | WORD(protected) 117 | WORD(public) 118 | WORD(readonly) 119 | WORD(ref) 120 | WORD(return) 121 | WORD(sbyte) 122 | WORD(sealed) 123 | WORD(short) 124 | WORD(sizeof) 125 | WORD(stackalloc) 126 | WORD(static) 127 | WORD(string) 128 | WORD(struct) 129 | WORD(switch) 130 | WORD(this) 131 | WORD(throw) 132 | WORD(true) 133 | WORD(try) 134 | WORD(typeof) 135 | WORD(uint) 136 | WORD(ulong) 137 | WORD(unchecked) 138 | WORD(unsafe) 139 | WORD(ushort) 140 | WORD(using) 141 | WORD(virtual) 142 | WORD(void) 143 | WORD(volatile) 144 | WORD(while) 145 | WORD(add) 146 | WORD(and) 147 | WORD(alias) 148 | WORD(ascending) 149 | WORD(args) 150 | WORD(async) 151 | WORD(await) 152 | WORD(by) 153 | WORD(descending) 154 | WORD(dynamic) 155 | WORD(equals) 156 | WORD(from) 157 | WORD(get) 158 | WORD(global) 159 | WORD(group) 160 | WORD(init) 161 | WORD(into) 162 | WORD(join) 163 | WORD(let) 164 | WORD(managed) 165 | WORD(nameof) 166 | WORD(nint) 167 | WORD(not) 168 | WORD(notnull) 169 | WORD(nuint) 170 | WORD(on) 171 | WORD(or) 172 | WORD(orderby) 173 | WORD(partial) 174 | WORD(record) 175 | WORD(remove) 176 | WORD(select) 177 | WORD(set) 178 | WORD(unmanaged) 179 | WORD(value) 180 | WORD(var) 181 | WORD(when) 182 | WORD(where) 183 | WORD(with) 184 | WORD(yield) 185 | 186 | Language.Operator: 187 | TEXT(.) 188 | TEXT(:) 189 | TEXT(-) 190 | TEXT(>) 191 | TEXT(=) 192 | TEXT(+) 193 | TEXT(-) 194 | TEXT(*) 195 | TEXT(/) 196 | TEXT(%) 197 | TEXT(<) 198 | TEXT(>) 199 | TEXT(.) 200 | TEXT(!) 201 | TEXT(|) 202 | TEXT(&) 203 | TEXT(:) 204 | TEXT(~) 205 | TEXT(?) 206 | TEXT(^) 207 | 208 | Language.MemberFunction: 209 | REGEX(\.([a-zA-Z_]+\w*)\() 210 | 211 | # treat uppercase functions as preprocessor macros 212 | Language.Preprocessor: 213 | REGEX(\b([A-Z_]+[A-Z0-9_]*)\() 214 | 215 | Language.Function: 216 | REGEX(\b([a-zA-Z_]+\w*)\() 217 | 218 | Language.Class: 219 | REGEX(::([a-zA-Z_]+\w*)) 220 | 221 | # treat uppercase variables as preprocessor defines 222 | Language.Preprocessor: 223 | REGEX([^\.]\b[A-Z_]+[A-Z0-9_]+\b) 224 | 225 | # member variables often start with mp_ or m or are accessed with . 226 | Language.MemberVariable: 227 | REGEX(\b(?:m_|mp_)\w+\b) 228 | REGEX(\b(?:m)[A-Z]\w+\w*\b) 229 | REGEX(\.([a-zA-Z_]+\w*)) 230 | 231 | # catch classes such as `MyClass test;` `MyClass test = ' and 232 | # 'foreach (MyClass in' 'MyClass 233 | Language.Class: 234 | REGEX(([a-zA-Z_]+\w*)\s+(?:[a-zA-Z_]+\w*)\s*(?:=|\:|in)) 235 | REGEX(([a-zA-Z_]+\w*)<.*?>) 236 | 237 | Language.Variable: 238 | REGEX(\b[a-zA-Z_]+\w*\b) 239 | 240 | -------------------------------------------------------------------------------- /PythonScripts/PythonBlack/PythonBlack.py: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------------------ 2 | import sys 3 | import N10X 4 | import subprocess 5 | import re 6 | import os 7 | import shutil 8 | from pathlib import Path 9 | 10 | """ 11 | black python formatter for 10x (10xeditor.com) 12 | Version: 0.1.0 13 | Original Script author: https://github.com/andersama 14 | 15 | To get started go to Settings.10x_settings, and enable the hooks, by adding these lines: 16 | Black.HookPostSave: true 17 | 18 | This script assumes black.exe is in your path! To change this modify Black.Path 19 | 20 | Black_Options: 21 | - Black.HookPostSave: (default=False) Hooks black into post save events 22 | - Black.Path: Path to black executable or directory 23 | """ 24 | 25 | try: 26 | import black 27 | except ImportError: 28 | # NOTE: this silently fails if black is missing requirements! 29 | # If you want to save some time, install black and its requirements under 30 | # C:/Program Files/PureDevSoftware/10x/Lib/site-packages (this saves about .1 seconds per 10x launch) 31 | # pip install "--target=C:/Program Files/PureDevSoftware/10x/Lib/site-packages" black 32 | pass 33 | 34 | 35 | def run_cmd(cmd_args, working_dir=None) -> str: 36 | if working_dir == None: 37 | process = subprocess.Popen( 38 | cmd_args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, encoding="utf8" 39 | ) 40 | else: 41 | process = subprocess.Popen( 42 | cmd_args, 43 | stdout=subprocess.PIPE, 44 | stderr=subprocess.STDOUT, 45 | cwd=working_dir, 46 | encoding="utf8", 47 | ) 48 | 49 | returncode = process.wait() 50 | result = process.stdout.read() 51 | return result 52 | 53 | 54 | def black_installed(): 55 | black_exe = N10X.Editor.GetSetting("Black.Path").strip() 56 | if black_exe == None or not black_exe: 57 | black_exe = shutil.which("black") 58 | if black_exe == None or len(black_exe) <= 0: 59 | return False 60 | if os.path.isdir(black_exe): 61 | black_exe = os.path.join(black_exe, "black.exe") 62 | if not exists(black_exe): 63 | return False 64 | 65 | txt = run_cmd([black_exe, "--version"]) 66 | r = re.search(r"black.+", txt) 67 | v = re.search(r"\\d+[.]\\d+[.]\\d+", txt) 68 | 69 | return r != None and len(r.group(0)) > 0 and v != None and len(v.group(0)) > 0 70 | 71 | 72 | def black_python_installed(): 73 | txt = run_cmd(["python", "-m", "black", "--version"]) 74 | r = re.search(r"black.+", txt) 75 | v = re.search(r"[0-9]+[.][0-9]+[.][0-9]+.+", txt) 76 | return r != None and len(r.group(0)) > 0 and v != None and len(v.group(0)) > 0 77 | 78 | 79 | def OnPythonSavedPY(filename: str): 80 | if filename.endswith(".py"): 81 | print("Formatting {0} using black".format(filename)) 82 | stdtxt = run_cmd(["python", "-m", "black", filename]) 83 | 84 | 85 | def OnPythonSavedCMD(filename: str): 86 | if filename.endswith(".py"): 87 | print("Formatting {0} using black".format(filename)) 88 | stdtxt = run_cmd([black_exe, filename]) 89 | 90 | 91 | def OnPythonSavedModule(filename: str): 92 | if filename.endswith(".py"): 93 | print("Formatting {0} using black".format(filename)) 94 | 95 | black.format_file_in_place( 96 | Path(filename), fast=True, mode=black.Mode(), write_back=black.WriteBack.YES 97 | ) 98 | 99 | 100 | def InitializeBlack(): 101 | module_available = "black" in sys.modules 102 | black_hooked_txt = N10X.Editor.GetSetting("Black.HookPostSave") 103 | black_hooked = black_hooked_txt and black_hooked_txt.lower() == "true" 104 | 105 | if not black_hooked: 106 | print("black disabled") 107 | return 108 | 109 | if module_available and black_hooked: 110 | print("black module enabled") 111 | N10X.Editor.AddPostFileSaveFunction(OnPythonSavedModule) 112 | return 113 | # NOTE: when imported this script runs WAY faster, commandline execution has pretty bad latency from using subprocess 114 | print( 115 | "black falling back to cmdline, be sure to install black package under: C:/Program Files/PureDevSoftware/10x/Lib/site-packages" 116 | ) 117 | black_cmd_enabled = black_installed() 118 | black_py_enabled = False 119 | if not black_cmd_enabled: 120 | black_py_enabled = black_python_installed() 121 | 122 | print( 123 | "black {0}".format( 124 | "enabled" 125 | if (black_cmd_enabled or black_py_enabled) and black_hooked 126 | else "disabled" 127 | ) 128 | ) 129 | 130 | if black_cmd_enabled and black_hooked: 131 | N10X.Editor.AddPostFileSaveFunction(OnPythonSavedCMD) 132 | elif black_py_enabled and black_hooked: 133 | N10X.Editor.AddPostFileSaveFunction(OnPythonSavedPY) 134 | elif black_hooked: 135 | print("Could not verify black was installed configure Black.Path") 136 | 137 | 138 | N10X.Editor.CallOnMainThread(InitializeBlack) 139 | -------------------------------------------------------------------------------- /SyntaxHighlighting/cpp.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: .c,.cc,.cpp,.c++,.cp,.cxx,.h,.hh,.hpp,.h++,.hp,.hxx,.inl,.ixx,.vert,.frag,.comp,.geom,.eval,.cont,.glsl,.hlsl,.hlsli,.fx,rgen,.usf,.ush,.cg,.fx,.pssl,.cu 16 | 17 | BlockCommentStart: /* 18 | 19 | BlockCommentEnd: */ 20 | 21 | #---------------------------------------------- 22 | # colour rules 23 | 24 | Language.Comment: 25 | REGEX(//.*) 26 | 27 | Language.String: 28 | REGEX(L?"[^"\\]*(?:\\.[^"\\]*)*") 29 | REGEX(L?'[^'\\]*(?:\\.[^'\\]*)*') 30 | 31 | Language.Preprocessor: 32 | REGEX(\s*#\s*[a-zA-Z_]+\w*) 33 | 34 | Language.Namespace: 35 | REGEX(namespace\s+([a-zA-Z_]+\w*)) 36 | 37 | Language.Typedef: 38 | REGEX(typedef\s*.*\s+([a-zA-Z_]+\w*)) 39 | 40 | Language.Number: 41 | REGEX((0[xX][a-zA-Z0-9]+)) 42 | REGEX((0[bB][0-9]+)) 43 | REGEX([0-9]+[fd]*[uUlLzZfFdD]*) 44 | REGEX([0-9]+\.[0-9]*[fd]*[fFdD]*) 45 | REGEX([0-9]*\.[0-9]+[fd]*[fFdD]*) 46 | 47 | Language.Brace: 48 | TEXT({) 49 | TEXT(}) 50 | 51 | Language.Bracket: 52 | TEXT(() 53 | TEXT()) 54 | 55 | Language.SquareBracket: 56 | TEXT([) 57 | TEXT(]) 58 | 59 | Language.SemiColon: 60 | TEXT(;) 61 | 62 | Language.Comma: 63 | TEXT(,) 64 | 65 | # try and recognise MyClass:: and MyTemplate template args as classes 66 | Language.Class: 67 | REGEX(([a-zA-Z_]+\w*)::) 68 | REGEX(([a-zA-Z_]+\w*)<) 69 | REGEX(<([a-zA-Z_]+\w*)>) 70 | REGEX(<([a-zA-Z_]+\w*)\s*,) 71 | 72 | Language.Enum: 73 | REGEX(enum\s+class\s+([a-zA-Z_]+\w*)) 74 | REGEX(enum\s+([a-zA-Z_]+\w*)) 75 | 76 | Language.Keyword: 77 | WORD(alignas) 78 | WORD(alignof) 79 | WORD(and) 80 | WORD(and_eq) 81 | WORD(asm) 82 | WORD(atomic_cancel) 83 | WORD(atomic_commit) 84 | WORD(atomic_noexcept) 85 | WORD(auto) 86 | WORD(bitand) 87 | WORD(bitor) 88 | WORD(bool) 89 | WORD(break) 90 | WORD(case) 91 | WORD(catch) 92 | WORD(char) 93 | WORD(char8_t) 94 | WORD(char16_t) 95 | WORD(char32_t) 96 | WORD(class) 97 | WORD(compl) 98 | WORD(concept) 99 | WORD(const) 100 | WORD(consteval) 101 | WORD(constexpr) 102 | WORD(constinit) 103 | WORD(const_cast) 104 | WORD(continue) 105 | WORD(co_await) 106 | WORD(co_return) 107 | WORD(co_yield) 108 | WORD(decltype) 109 | WORD(default) 110 | WORD(delete) 111 | WORD(do) 112 | WORD(double) 113 | WORD(dynamic_cast) 114 | WORD(else) 115 | WORD(enum) 116 | WORD(explicit) 117 | WORD(export) 118 | WORD(extern) 119 | WORD(false) 120 | WORD(float) 121 | WORD(for) 122 | WORD(friend) 123 | WORD(goto) 124 | WORD(if) 125 | WORD(inline) 126 | WORD(int) 127 | WORD(long) 128 | WORD(mutable) 129 | WORD(namespace) 130 | WORD(new) 131 | WORD(noexcept) 132 | WORD(not) 133 | WORD(not_eq) 134 | WORD(nullptr) 135 | WORD(operator) 136 | WORD(or) 137 | WORD(or_eq) 138 | WORD(private) 139 | WORD(protected) 140 | WORD(public) 141 | WORD(reflexpr) 142 | WORD(register) 143 | WORD(reinterpret_cast) 144 | WORD(requires) 145 | WORD(return) 146 | WORD(short) 147 | WORD(signed) 148 | WORD(sizeof) 149 | WORD(static) 150 | WORD(static_assert) 151 | WORD(static_cast) 152 | WORD(struct) 153 | WORD(switch) 154 | WORD(synchronized) 155 | WORD(template) 156 | WORD(this) 157 | WORD(thread_local) 158 | WORD(throw) 159 | WORD(true) 160 | WORD(try) 161 | WORD(typedef) 162 | WORD(typeid) 163 | WORD(typename) 164 | WORD(union) 165 | WORD(unsigned) 166 | WORD(using) 167 | WORD(virtual) 168 | WORD(void) 169 | WORD(volatile) 170 | WORD(wchar_t) 171 | WORD(while) 172 | WORD(xor) 173 | WORD(xor_eq) 174 | 175 | Language.Operator: 176 | TEXT(.) 177 | TEXT(:) 178 | TEXT(-) 179 | TEXT(>) 180 | TEXT(=) 181 | TEXT(+) 182 | TEXT(-) 183 | TEXT(*) 184 | TEXT(/) 185 | TEXT(%) 186 | TEXT(<) 187 | TEXT(>) 188 | TEXT(.) 189 | TEXT(!) 190 | TEXT(|) 191 | TEXT(&) 192 | TEXT(:) 193 | TEXT(~) 194 | TEXT(?) 195 | TEXT(^) 196 | 197 | Language.MemberFunction: 198 | REGEX((?:->|\.)([a-zA-Z_]+\w*)\() 199 | REGEX([a-zA-Z_]+\w*::([a-zA-Z_]+\w*)\() 200 | 201 | # stop constructor initializers from being interpreted as functions 202 | Language.Variable: 203 | REGEX(^\s*:\s*([a-zA-Z_]+\w*)\(.*\),) 204 | REGEX(^\s*([a-zA-Z_]+\w*)\(.*\),) 205 | REGEX(^\s*,([a-zA-Z_]+\w*)\(.*\)) 206 | REGEX(^\s*([a-zA-Z_]+\w*)\(.*\)\s*$) 207 | 208 | # treat uppercase functions as preprocessor macros 209 | Language.Preprocessor: 210 | REGEX(\b([A-Z_]+[A-Z0-9_]*)\() 211 | 212 | Language.Function: 213 | REGEX(\b([a-zA-Z_]+\w*)\() 214 | 215 | Language.Class: 216 | REGEX(::([a-zA-Z_]+\w*)) 217 | 218 | # treat uppercase variables as preprocessor defines 219 | Language.Preprocessor: 220 | REGEX([^->|\.]\b[A-Z_]+[A-Z0-9_]+\b) 221 | 222 | # member variables often start with mp_ or m or are accessed with . or -> 223 | Language.MemberVariable: 224 | REGEX(\b(?:m_|mp_)\w+\b) 225 | REGEX(\b(?:m)[A-Z]\w+\w*\b) 226 | REGEX((?:\.|->)([a-zA-Z_]+\w*)) 227 | 228 | # treat 'MyClass*', 'MyClass&' and 'MyClass test' as classes 229 | Language.Class: 230 | REGEX(([a-zA-Z_]+\w*)[\*&]) 231 | REGEX(([a-zA-Z_]+\w*)\s+(?:[a-zA-Z_]+\w*)) 232 | 233 | Language.Variable: 234 | REGEX(\b[a-zA-Z_]+\w*\b) 235 | 236 | 237 | -------------------------------------------------------------------------------- /SyntaxHighlighting/shader.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: .vert,.frag,.comp,.geom,.eval,.cont,.glsl,.hlsl,.hlsli,.fx,.rgen,.usf,.ush,.cg,.fx,.pssl,.cu,.fxh 16 | 17 | BlockCommentStart: /* 18 | 19 | BlockCommentEnd: */ 20 | 21 | #---------------------------------------------- 22 | # colour rules 23 | 24 | Language.Comment: 25 | REGEX(//.*) 26 | 27 | Language.String: 28 | REGEX(L?"[^"\\]*(?:\\.[^"\\]*)*") 29 | REGEX(L?'[^'\\]*(?:\\.[^'\\]*)*') 30 | 31 | Language.Preprocessor: 32 | REGEX(\s*#\s*[a-zA-Z_]+\w*) 33 | 34 | Language.Namespace: 35 | REGEX(namespace\s+([a-zA-Z_]+\w*)) 36 | 37 | Language.Typedef: 38 | REGEX(typedef\s*.*\s+([a-zA-Z_]+\w*)) 39 | 40 | Language.Number: 41 | REGEX((0[xX][a-zA-Z0-9]+)) 42 | REGEX((0[bB][0-9]+)) 43 | REGEX([0-9]+[fd]*[uUlLzZfFdD]*) 44 | REGEX([0-9]+\.[0-9]*[fd]*[fFdD]*) 45 | REGEX([0-9]*\.[0-9]+[fd]*[fFdD]*) 46 | 47 | Language.Brace: 48 | TEXT({) 49 | TEXT(}) 50 | 51 | Language.Bracket: 52 | TEXT(() 53 | TEXT()) 54 | 55 | Language.SquareBracket: 56 | TEXT([) 57 | TEXT(]) 58 | 59 | Language.SemiColon: 60 | TEXT(;) 61 | 62 | Language.Comma: 63 | TEXT(,) 64 | 65 | # try and recognise MyClass:: and MyTemplate template args as classes 66 | Language.Class: 67 | REGEX(([a-zA-Z_]+\w*)::) 68 | REGEX(([a-zA-Z_]+\w*)<) 69 | REGEX(<([a-zA-Z_]+\w*)>) 70 | REGEX(<([a-zA-Z_]+\w*)\s*,) 71 | 72 | Language.Enum: 73 | REGEX(enum\s+class\s+([a-zA-Z_]+\w*)) 74 | REGEX(enum\s+([a-zA-Z_]+\w*)) 75 | 76 | Language.Keyword: 77 | WORD(alignas) 78 | WORD(alignof) 79 | WORD(and) 80 | WORD(and_eq) 81 | WORD(asm) 82 | WORD(atomic_cancel) 83 | WORD(atomic_commit) 84 | WORD(atomic_noexcept) 85 | WORD(auto) 86 | WORD(bitand) 87 | WORD(bitor) 88 | WORD(bool) 89 | WORD(break) 90 | WORD(case) 91 | WORD(catch) 92 | WORD(char) 93 | WORD(char8_t) 94 | WORD(char16_t) 95 | WORD(char32_t) 96 | WORD(class) 97 | WORD(compl) 98 | WORD(concept) 99 | WORD(const) 100 | WORD(consteval) 101 | WORD(constexpr) 102 | WORD(constinit) 103 | WORD(const_cast) 104 | WORD(continue) 105 | WORD(co_await) 106 | WORD(co_return) 107 | WORD(co_yield) 108 | WORD(decltype) 109 | WORD(default) 110 | WORD(delete) 111 | WORD(do) 112 | WORD(double) 113 | WORD(dynamic_cast) 114 | WORD(else) 115 | WORD(enum) 116 | WORD(explicit) 117 | WORD(export) 118 | WORD(extern) 119 | WORD(false) 120 | WORD(float) 121 | WORD(for) 122 | WORD(friend) 123 | WORD(goto) 124 | WORD(if) 125 | WORD(inline) 126 | WORD(int) 127 | WORD(long) 128 | WORD(mutable) 129 | WORD(namespace) 130 | WORD(new) 131 | WORD(noexcept) 132 | WORD(not) 133 | WORD(not_eq) 134 | WORD(nullptr) 135 | WORD(operator) 136 | WORD(or) 137 | WORD(or_eq) 138 | WORD(private) 139 | WORD(protected) 140 | WORD(public) 141 | WORD(reflexpr) 142 | WORD(register) 143 | WORD(reinterpret_cast) 144 | WORD(requires) 145 | WORD(return) 146 | WORD(short) 147 | WORD(signed) 148 | WORD(sizeof) 149 | WORD(static) 150 | WORD(static_assert) 151 | WORD(static_cast) 152 | WORD(struct) 153 | WORD(switch) 154 | WORD(synchronized) 155 | WORD(template) 156 | WORD(this) 157 | WORD(thread_local) 158 | WORD(throw) 159 | WORD(true) 160 | WORD(try) 161 | WORD(typedef) 162 | WORD(typeid) 163 | WORD(typename) 164 | WORD(union) 165 | WORD(unsigned) 166 | WORD(using) 167 | WORD(virtual) 168 | WORD(void) 169 | WORD(volatile) 170 | WORD(wchar_t) 171 | WORD(while) 172 | WORD(xor) 173 | WORD(xor_eq) 174 | WORD(float2) 175 | WORD(float3) 176 | WORD(float4) 177 | WORD(matrix) 178 | 179 | Language.Operator: 180 | TEXT(.) 181 | TEXT(:) 182 | TEXT(-) 183 | TEXT(>) 184 | TEXT(=) 185 | TEXT(+) 186 | TEXT(-) 187 | TEXT(*) 188 | TEXT(/) 189 | TEXT(%) 190 | TEXT(<) 191 | TEXT(>) 192 | TEXT(.) 193 | TEXT(!) 194 | TEXT(|) 195 | TEXT(&) 196 | TEXT(:) 197 | TEXT(~) 198 | TEXT(?) 199 | TEXT(^) 200 | 201 | Language.MemberFunction: 202 | REGEX((?:->|\.)([a-zA-Z_]+\w*)\() 203 | REGEX([a-zA-Z_]+\w*::([a-zA-Z_]+\w*)\() 204 | 205 | # stop constructor initializers from being interpreted as functions 206 | Language.Variable: 207 | REGEX(^\s*:\s*([a-zA-Z_]+\w*)\(.*\),) 208 | REGEX(^\s*([a-zA-Z_]+\w*)\(.*\),) 209 | REGEX(^\s*,([a-zA-Z_]+\w*)\(.*\)) 210 | REGEX(^\s*([a-zA-Z_]+\w*)\(.*\)\s*$) 211 | 212 | # treat uppercase functions as preprocessor macros 213 | Language.Preprocessor: 214 | REGEX(\b([A-Z_]+[A-Z0-9_]*)\() 215 | 216 | Language.Function: 217 | REGEX(\b([a-zA-Z_]+\w*)\() 218 | 219 | Language.Class: 220 | REGEX(::([a-zA-Z_]+\w*)) 221 | 222 | # treat uppercase variables as preprocessor defines 223 | Language.Preprocessor: 224 | REGEX([^->|\.]\b[A-Z_]+[A-Z0-9_]+\b) 225 | 226 | # member variables often start with mp_ or m or are accessed with . or -> 227 | Language.MemberVariable: 228 | REGEX(\b(?:m_|mp_)\w+\b) 229 | REGEX(\b(?:m)[A-Z]\w+\w*\b) 230 | REGEX((?:\.|->)([a-zA-Z_]+\w*)) 231 | 232 | # treat 'MyClass*', 'MyClass&' and 'MyClass test' as classes 233 | Language.Class: 234 | REGEX(([a-zA-Z_]+\w*)\s*[\*&]) 235 | REGEX(([a-zA-Z_]+\w*)\s+(?:[a-zA-Z_]+\w*)) 236 | 237 | Language.Variable: 238 | REGEX(\b[a-zA-Z_]+\w*\b) 239 | 240 | -------------------------------------------------------------------------------- /SyntaxHighlighting/bat.10x_syntax: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | # Multiple values can be comma separated or on subsequent lines. 4 | # 5 | # Valid settings for colour rules: 6 | # REGEX() A regular expression. Colours entire match or first group. 7 | # WORD() Matches a word (case sensitive) 8 | # WORDI() Matches a word (case insensitive) 9 | # TEXT() Match any text in the line (case sensitive) 10 | # TEXTI() Match any text in the line (case insensitive) 11 | 12 | #---------------------------------------------- 13 | # settings 14 | 15 | Extensions: .bat 16 | 17 | #---------------------------------------------- 18 | # colour rules 19 | 20 | Language.Comment: 21 | REGEX(^REM\s+.*) 22 | REGEX(^::.*) 23 | 24 | Language.String: 25 | REGEX(".*?") 26 | REGEX(echo (.*)) 27 | 28 | Language.Keyword: 29 | WORDI(ADDUSERS) 30 | WORDI(ADmodcmd) 31 | WORDI(ARP) 32 | WORDI(ASSOC) 33 | WORDI(ATTRIB) 34 | WORDI(BCDBOOT) 35 | WORDI(BCDEDIT) 36 | WORDI(BITSADMIN) 37 | WORDI(BOOTREC) 38 | WORDI(BREAK) 39 | WORDI(BROWSTAT) 40 | WORDI(CACLS) 41 | WORDI(CALL) 42 | WORDI(CERTREQ) 43 | WORDI(CERTUTIL) 44 | WORDI(CD) 45 | WORDI(CHANGE) 46 | WORDI(CHANGEPK) 47 | WORDI(CHCP) 48 | WORDI(CHDIR) 49 | WORDI(CHKDSK) 50 | WORDI(CHKNTFS) 51 | WORDI(CHOICE) 52 | WORDI(CIPHER) 53 | WORDI(CleanMgr) 54 | WORDI(CLIP) 55 | WORDI(CLS) 56 | WORDI(CMD) 57 | WORDI(CMDKEY) 58 | WORDI(COLOR) 59 | WORDI(COMP) 60 | WORDI(COMPACT) 61 | WORDI(COMPRESS) 62 | WORDI(CON) 63 | WORDI(CONVERT) 64 | WORDI(COPY) 65 | WORDI(Coreinfo) 66 | WORDI(CSCcmd) 67 | WORDI(CSVDE) 68 | WORDI(CURL) 69 | WORDI(DATE) 70 | WORDI(DEFRAG) 71 | WORDI(DEL) 72 | WORDI(DELPROF) 73 | WORDI(DELTREE) 74 | WORDI(DevCon) 75 | WORDI(DIR) 76 | WORDI(DIRQUOTA) 77 | WORDI(DIRUSE) 78 | WORDI(DISKPART) 79 | WORDI(DISKSHADOW) 80 | WORDI(DISKUSE) 81 | WORDI(DISM) 82 | WORDI(DisplaySwitch) 83 | WORDI(DNSCMD) 84 | WORDI(DOSKEY) 85 | WORDI(DriverQuery) 86 | WORDI(DSACLs) 87 | WORDI(DSAdd) 88 | WORDI(DSGet) 89 | WORDI(DSQuery) 90 | WORDI(DSMod) 91 | WORDI(DSMove) 92 | WORDI(DSRM) 93 | WORDI(Dsmgmt) 94 | WORDI(ECHO) 95 | WORDI(ENDLOCAL) 96 | WORDI(ERASE) 97 | WORDI(EVENTCREATE ) 98 | WORDI(EXIT) 99 | WORDI(EXIST) 100 | WORDI(EXPAND) 101 | WORDI(EXPLORER) 102 | WORDI(EXTRACT) 103 | WORDI(FC) 104 | WORDI(FIND) 105 | WORDI(FINDSTR) 106 | WORDI(FLTMC) 107 | WORDI(FOR) 108 | WORDI(FOR) 109 | WORDI(FOR) 110 | WORDI(FORFILES) 111 | WORDI(FORMAT) 112 | WORDI(FREEDISK) 113 | WORDI(FSUTIL) 114 | WORDI(FTP) 115 | WORDI(FTYPE) 116 | WORDI(GETMAC) 117 | WORDI(GOTO) 118 | WORDI(GPRESULT) 119 | WORDI(GPUPDATE) 120 | WORDI(HELP) 121 | WORDI(HOSTNAME) 122 | WORDI(iCACLS) 123 | WORDI(IEXPRESS) 124 | WORDI(IF) 125 | WORDI(IFMEMBER) 126 | WORDI(IPCONFIG) 127 | WORDI(INUSE) 128 | WORDI(LABEL) 129 | WORDI(LGPO) 130 | WORDI(LODCTR) 131 | WORDI(LOGMAN) 132 | WORDI(LOGOFF) 133 | WORDI(LOGTIME) 134 | WORDI(MAKECAB) 135 | WORDI(MAPISEND) 136 | WORDI(Manag) 137 | WORDI(MBSAcli) 138 | WORDI(MD) 139 | WORDI(MKLINK) 140 | WORDI(MODE) 141 | WORDI(MORE) 142 | WORDI(MOUNTVOL) 143 | WORDI(MOVE) 144 | WORDI(MOVEUSER) 145 | WORDI(MSG) 146 | WORDI(MSIEXEC) 147 | WORDI(MSINFO32) 148 | WORDI(MSTSC) 149 | WORDI(NET) 150 | WORDI(NETDOM) 151 | WORDI(NETSH) 152 | WORDI(NBTSTAT) 153 | WORDI(NETSTAT) 154 | WORDI(NLSINFO) 155 | WORDI(NLTEST) 156 | WORDI(NMBIND) 157 | WORDI(NOW) 158 | WORDI(NSLOOKUP) 159 | WORDI(NTBACKUP) 160 | WORDI(NTDSUtil) 161 | WORDI(NTRIGHTS) 162 | WORDI(NVSPBIND) 163 | WORDI(OPENFILES) 164 | WORDI(PATH) 165 | WORDI(PATHPING) 166 | WORDI(PAUSE) 167 | WORDI(PERMS) 168 | WORDI(PING) 169 | WORDI(PKTMON) 170 | WORDI(POPD) 171 | WORDI(PORTQRY) 172 | WORDI(POWERCFG) 173 | WORDI(PRINT) 174 | WORDI(PRINTBRM) 175 | WORDI(PRNCNFG) 176 | WORDI(PRNDRVR) 177 | WORDI(PRNJOBS) 178 | WORDI(PRNMNGR) 179 | WORDI(PRNPORT) 180 | WORDI(PRNQCTL) 181 | WORDI(ProcDump) 182 | WORDI(PROMPT) 183 | WORDI(PsExec) 184 | WORDI(PsFile) 185 | WORDI(PsGetSid) 186 | WORDI(PsInfo) 187 | WORDI(PsKill) 188 | WORDI(PsList) 189 | WORDI(PsLoggedOn) 190 | WORDI(PsLogList) 191 | WORDI(PsPasswd) 192 | WORDI(PsPing) 193 | WORDI(PsService) 194 | WORDI(PsShutdown) 195 | WORDI(PsSuspend) 196 | WORDI(PUSHD) 197 | WORDI(QPROCESS) 198 | WORDI(QWinsta) 199 | WORDI(QAppSrv) 200 | WORDI(QUSER) 201 | WORDI(RASDIAL) 202 | WORDI(RASPHONE) 203 | WORDI(RD) 204 | WORDI(RECOVER) 205 | WORDI(REG) 206 | WORDI(REGEDIT) 207 | WORDI(REGSVR32) 208 | WORDI(REGINI) 209 | WORDI(REM) 210 | WORDI(REN) 211 | WORDI(REPLACE) 212 | WORDI(Reset) 213 | WORDI(RMDIR) 214 | WORDI(RMTSHARE) 215 | WORDI(ROBOCOPY) 216 | WORDI(ROUTE) 217 | WORDI(RUN) 218 | WORDI(RUNAS) 219 | WORDI(RUNDLL32) 220 | WORDI(SC) 221 | WORDI(SCHTASKS) 222 | WORDI(ScriptRunner) 223 | WORDI(SET) 224 | WORDI(SETLOCAL) 225 | WORDI(SetSPN) 226 | WORDI(SETX) 227 | WORDI(SFC) 228 | WORDI(SHARE) 229 | WORDI(ShellRunAs) 230 | WORDI(SHIFT) 231 | WORDI(SHORTCUT) 232 | WORDI(SHUTDOWN) 233 | WORDI(SIGCHECK) 234 | WORDI(SLEEP) 235 | WORDI(SLMGR) 236 | WORDI(SORT) 237 | WORDI(SSH) 238 | WORDI(START) 239 | WORDI(STRINGS) 240 | WORDI(SUBINACL) 241 | WORDI(SUBST) 242 | WORDI(SXSTRACE) 243 | WORDI(SYSMON) 244 | WORDI(SYSTEMINFO) 245 | WORDI(TAKEOWN) 246 | WORDI(TAR) 247 | WORDI(TASKLIST) 248 | WORDI(TASKKILL) 249 | WORDI(TELNET) 250 | WORDI(TIME) 251 | WORDI(TIMEOUT) 252 | WORDI(TITLE) 253 | WORDI(TLIST) 254 | WORDI(TOUCH) 255 | WORDI(TRACERT) 256 | WORDI(TREE) 257 | WORDI(TSDISCON) 258 | WORDI(TSKILL) 259 | WORDI(TYPE) 260 | WORDI(TypePerf) 261 | WORDI(TZUTIL) 262 | WORDI(VBC) 263 | WORDI(VER) 264 | WORDI(VERIFY) 265 | WORDI(VMConnect) 266 | WORDI(VOL) 267 | WORDI(VSSADMIN) 268 | WORDI(W32TM) 269 | WORDI(WAITFOR) 270 | WORDI(WBADMIN) 271 | WORDI(WECUTIL) 272 | WORDI(WEVTUTIL) 273 | WORDI(WHERE) 274 | WORDI(WHOAMI) 275 | WORDI(WHOIS) 276 | WORDI(WINDIFF) 277 | WORDI(WINGET) 278 | WORDI(WINRM) 279 | WORDI(WINRS) 280 | WORDI(WMIC) 281 | WORDI(WPEUTIL) 282 | WORDI(WPR) 283 | WORDI(WT) 284 | WORDI(WUSA) 285 | WORDI(WUAUCLT) 286 | WORDI(XCACLS) 287 | WORDI(XCOPY) 288 | 289 | Language.Operator: 290 | TEXT(%) 291 | TEXT(/) 292 | TEXT(\) 293 | TEXT(=) 294 | TEXT(!) 295 | TEXT(|) 296 | TEXT(@) 297 | TEXT(*) 298 | TEXT(>) 299 | TEXT(<) 300 | 301 | Language.Preprocessor: 302 | REGEX(^:([a-zA-Z0-9_]+)) 303 | REGEX(goto\s+([a-zA-Z0-9_]+)) 304 | 305 | -------------------------------------------------------------------------------- /PythonScripts/SignatureCreator/SignatureCreator.py: -------------------------------------------------------------------------------- 1 | import N10X 2 | from Utilities import * 3 | 4 | 5 | def _IsFunctionDefinition(Type: str) -> bool: 6 | return Type == "MemberFunctionDefinition" or Type == "FunctionDefinition" 7 | 8 | 9 | def _IsCurrentLineFunctionDeclaration(): 10 | CurrentLineText = SourceCodeLine.FromCurrentLine() 11 | return CurrentLineText.HasAny(["MemberFunctionDeclaration", "FunctionDeclaration"]) 12 | 13 | 14 | def _MakeImplementationSignature(): 15 | DeclarationLine = N10X.Editor.GetCurrentLine() 16 | X, LineNum = N10X.Editor.GetCursorPos() 17 | 18 | FunctionArgStart = DeclarationLine.find("(") 19 | FunctionArgEnd = DeclarationLine.rfind(")") 20 | FunctionName = DeclarationLine[0:FunctionArgStart].split()[-1] 21 | 22 | ReturnTypeEnd = DeclarationLine.find(FunctionName) 23 | 24 | # Remove all macro from return type, mainly to remove any MODULENAME_API defines 25 | # TODO: We probably also want to remove Defines from function args, like UPARAM 26 | ReturnType = str(SourceCodeLine(DeclarationLine[0:ReturnTypeEnd], LineNum).RemoveAll("Define")) 27 | 28 | ReturnType = ReturnType.replace("virtual", "") 29 | ReturnType = ReturnType.replace("static", "") 30 | 31 | ReturnType = ReturnType.lstrip() 32 | 33 | # Trailing specifiers can include const, override, final, 34 | # Obviously we don't want implementation for = 0, = default, = delete 35 | FunctionTrailingSpecifiers = DeclarationLine[FunctionArgEnd + 1:] 36 | FunctionTrailingSpecifiers = FunctionTrailingSpecifiers.replace(";", "") 37 | FunctionTrailingSpecifiers = FunctionTrailingSpecifiers.replace("override", "") 38 | FunctionTrailingSpecifiers = FunctionTrailingSpecifiers.replace("final", "") 39 | FunctionTrailingSpecifiers = FunctionTrailingSpecifiers.rstrip() 40 | 41 | # Extract function arguments from selected line 42 | FunctionArgs = SourceCodeLine(DeclarationLine[FunctionArgStart + 1:FunctionArgEnd], LineNum, FunctionArgStart + 1) 43 | 44 | FunctionArgs.Split(",") 45 | # Remove any parts that doesn't have FunctionArg in them 46 | # Consider example 47 | # Initial args "FVector a = (4.f, 2.f), int b = 42" 48 | # Parts after FilteredArgs.Split(","): 49 | # 1. FVector a = (4.f 50 | # 2. 2.f) 51 | # 3. int b = 42 52 | # Now we need to remove all parts that doesn't have FunctionArg in them, in our example part No. 2 53 | FunctionArgs.FilterParts("FunctionArg") 54 | 55 | # Now we should have following parts: 56 | # 1. FVector a = (4.f 57 | # 2. int b = 42 58 | # 59 | # And we want to build a string like "FVector a, int b" 60 | # Essentially we to split each part by "=" take first part and remove any redundant spaces to the right 61 | # Resulting list must be ["FVector a", "int b"] 62 | FunctionArgs = [str(Part).split("=")[0].rstrip() for Part in FunctionArgs] 63 | 64 | Delimiter = ',' 65 | FunctionArgs = Delimiter.join(FunctionArgs) 66 | 67 | ScopeName = N10X.Editor.GetCurrentScopeName() + "::" if N10X.Editor.GetCurrentScopeName() else "" 68 | 69 | return ReturnType + ScopeName + FunctionName + "(" + FunctionArgs + ")" + FunctionTrailingSpecifiers 70 | 71 | 72 | # Returns line number (starts counting from 0) and actual string where line is found 73 | # So the real line number is return + 1 74 | # But you want to do any API calls to 10x you need line number that starts counting from zero (returned one) 75 | # So if you want a real line number you need to +1 76 | def _FindLineNumber(LineToFind: str, Text: str): 77 | i = 0 78 | for Line in Text.splitlines(): 79 | if LineToFind in Line: 80 | return i, Line 81 | i = i + 1 82 | 83 | return -1, None 84 | 85 | def _IsInsideNamespaceDeclaration(): 86 | fileText: str = N10X.Editor.GetFileText() 87 | lines = fileText.split('\n') 88 | 89 | line = 1; 90 | for line in lines: 91 | if line.find("namespace") == 0: 92 | return True 93 | 94 | return False 95 | 96 | 97 | def _Define(bToggleSourceHeader: bool): 98 | if not _IsCurrentLineFunctionDeclaration(): 99 | print("You haven't selected function declaration, nothing to generate!") 100 | return 101 | 102 | Signature = _MakeImplementationSignature() 103 | SourceToPaste = Signature + "\n{\n\n}" 104 | 105 | inNamespaceDeclaration = False 106 | 107 | if bToggleSourceHeader: 108 | inNamespaceDeclaration = _IsInsideNamespaceDeclaration() 109 | N10X.Editor.ExecuteCommand("CppParser.ToggleSourceHeader") 110 | 111 | PageText: str = N10X.Editor.GetFileText() 112 | 113 | # Check whether function is already defined in the file 114 | # Remember we could have multiple declarations in the file, so we need to check all of them 115 | SearchPageTextSlice = PageText 116 | AccumulatedLineNum = 0 117 | while True: 118 | SignatureIndex = SearchPageTextSlice.find(Signature) 119 | 120 | # No more signatures in text 121 | if SignatureIndex == -1: 122 | break 123 | 124 | LineNum, Line = _FindLineNumber(Signature, SearchPageTextSlice) 125 | AccumulatedLineNum += LineNum 126 | for X in range(0, len(Line)): 127 | SymType = N10X.Editor.GetSymbolType((X, AccumulatedLineNum)) 128 | if _IsFunctionDefinition(SymType): 129 | print("Function " + Signature + " already defined") 130 | N10X.Editor.SetCursorPos((X, AccumulatedLineNum)) 131 | return 132 | 133 | SignatureIndex += len(Line) 134 | SearchPageTextSlice = SearchPageTextSlice[SignatureIndex:] 135 | 136 | # TODO: Function must be pasted between previous and next function, so order is maintained 137 | if inNamespaceDeclaration : 138 | index = PageText.rfind("}") 139 | if index != -1: 140 | 141 | PageText = PageText[:index] + "\n\n" + SourceToPaste + "\n" + PageText[index:] 142 | #N10X.Editor.InsertText( SourceToPaste) 143 | else: 144 | PageText += "\n\n" + SourceToPaste 145 | 146 | N10X.Editor.SetFileText(PageText) 147 | 148 | LineNum, Line = _FindLineNumber(Signature, PageText) 149 | # Set position to be in the curly brackets, so we can start typing right away 150 | N10X.Editor.SetCursorPos((4, LineNum + 2)) 151 | 152 | if inNamespaceDeclaration: 153 | N10X.Editor.SetSelection((1, LineNum), (1, LineNum+4)) 154 | N10X.Editor.ExecuteCommand("FormatSelection") 155 | N10X.Editor.ClearSelection() 156 | 157 | 158 | def Define(): 159 | FileName = N10X.Editor.GetCurrentFilename() 160 | Extension = FileName.split('.')[-1] 161 | 162 | # If we happen to call define when we are in "Source" file we defenetily want it to be defined in current file, so no Toggle Source/Header 163 | if Extension in ["cpp", "cxx", "c"]: 164 | _Define(False) 165 | else: 166 | _Define(True) 167 | 168 | 169 | def DefineInCurrentFile(): 170 | _Define(False) 171 | -------------------------------------------------------------------------------- /ColorSchemes/Pink.10x_settings: -------------------------------------------------------------------------------- 1 | ######################################################## 2 | # Original Creator: ustance 3 | ######################################################## 4 | 5 | # "Variables" (Please add) 6 | # Dark: 1b1c20 & 24252a (Backgrounds) 7 | # Pink: af5770 8 | # Light Pink: 49323d (Used for transparency stuff) 9 | # Light: ddbb99 10 | # Brown: 665544 11 | 12 | # UI Colours 13 | ######################################################## 14 | UI.UI: 1b1c20 15 | UI.UI Text: ddbb99 16 | UI.Menu: 1b1c20 17 | UI.Menu (highlighted): af5770 18 | UI.Menu (selected): af5770 19 | UI.App Border (active): ddbb99 20 | UI.App Border (inactive): ddbb99 21 | UI.Panels.Active Tab: 49323d 22 | UI.Panels.Active Tab Text: ddbb99 23 | UI.Panels.Inactive Tab Text: ddbb99 24 | UI.Panels.Inactive Tab: 16171a 25 | UI.Panels.Scrollbar Background: 1b1c20 26 | UI.Panels.Scrollbar Bar: 665544 27 | UI.Panels.Scrollbar Bar (hover): ddbb99 28 | UI.Panels.Scrollbar Bar (drag): ddbb99 29 | UI.Panels.MapScrollbar Bar: 1b1c20 30 | UI.UI Selected Item: af5770 31 | UI.UI Selected Text: 49323d 32 | UI.LogoBack: af5770 33 | UI.LogoFore: ddbb99 34 | UI.WorkspaceTreeNode: default 35 | UI.WorkspaceTreeNodeBorder: 0, 0, 0 36 | UI.ActiveWorkspaceTreeNodeBorder: 255, 255, 255 37 | UI.ActiveWorkspaceTreeNode: 100, 100, 120 38 | UI.SourceFileTreeNode: 120, 170, 240 39 | UI.HeaderFileTreeNode: 80, 120, 170 40 | UI.MiscFileTreeNode: 255, 255, 255 41 | UI.FolderTreeNode: 255, 219, 79 42 | UI.SearchHighlight: default 43 | UI.10xOutputError: 255, 120, 120 44 | UI.10xOutputWarning: 220, 220, 0 45 | UI.UI Highlight: 0, 100, 200 46 | UI.ScrollBarFindMatchHighlight: af5770 47 | UI.ScrollBarWordMatchHighlight: af5770 48 | UI.SelectedSearchResultLine: default 49 | 50 | # Editor Colours 51 | ######################################################## 52 | Editor.Text: ddbb99 53 | Editor.Background: 1b1c20 54 | Editor.Cursor: af5770 55 | Editor.Current Line: 1b1c20 56 | Editor.Selection Back: 49323d 57 | Editor.Selection Fore: default 58 | Editor.Find.Text Highlight: 49323d 59 | Editor.Rename Symbol Back: 49323d 60 | Editor.Rename Symbol Fore: ddbb99 61 | Editor.Find.Brace/Bracket Highlight: 49323d 62 | Editor.Find.Bracket Highlight: 49323d 63 | Editor.Breakpoint: af5770 64 | Editor.Whitespace: default 65 | Editor.IndentLine: default 66 | Editor.AutocompleteBackColour: 1b1c20 67 | Editor.AutocompleteForeColour: ddbb99 68 | Editor.AutocompleteBorderColour: af5770 69 | Editor.HoverBoxBackColour: 1b1c20 70 | Editor.HoverBoxForeColour: af5770 71 | Editor.HoverBoxBorderColour: af5770 72 | Editor.BraceDepth1: default 73 | Editor.BraceDepth2: default 74 | Editor.BraceDepth3: default 75 | Editor.BraceDepth4: default 76 | Editor.BraceDepth5: default 77 | Editor.BraceDepth6: default 78 | Editor.LineEndings: default 79 | Editor.CollapseExpandButton: default 80 | Editor.Line Numbers: ddbb99 81 | Editor.Margin: default 82 | Editor.VerticalRulers: default 83 | Editor.SymbolHighlight: 49323d 84 | Editor.Bookmark: ddbb99 85 | 86 | # Language Colours 87 | ######################################################## 88 | Language.Text: ddbb99 89 | Language.Background: 1b1c20 90 | Language.Number: ddbb99 91 | Language.Keyword: af5770 92 | Language.Preprocessor: af5770 93 | Language.Comment: 665544 94 | Language.Brace: af5770 95 | Language.Bracket: af5770 96 | Language.SquareBracket: af5770 97 | Language.SemiColon: af5770 98 | Language.Operator: af5770 99 | Language.String: b49942 100 | Language.Comma: ddbb99 101 | Language.Class: ddbb99 102 | Language.Function: ddbb99 103 | Language.Enum: ddbb99 104 | Language.Enum Value: ddbb99 105 | Language.Variable: ddbb99 106 | Language.MemberVariable: ddbb99 107 | Language.Namespace: ddbb99 108 | Language.Typedef: af5770 109 | Language.Type: ddbb99 110 | Language.MemberFunction: ddbb99 111 | Language.Heading: 255, 128, 0 112 | Language.Bold: 120, 180, 255 113 | Language.Italic: 255, 255, 0 114 | Language.Blockquote: 255, 200, 170 115 | Language.ListItem: 255, 255, 160 116 | Language.Link: 100, 100, 255 117 | Language.CodeBlock: 255, 255, 255 118 | Language.Custom1: 114, 216, 220 119 | Language.Custom2: 255, 140, 0 120 | Language.Custom3: 255, 211, 112 121 | Language.Custom4: 111, 216, 91 122 | Language.Custom5: 94, 115, 255 123 | Language.Custom6: 214, 97, 216 124 | Language.Custom7: 96, 153, 214 125 | Language.Custom8: 172, 211, 95 126 | Language.Custom9: 154, 197, 209 127 | Language.Custom10: 214, 113, 113 128 | Language.DefinedOut: 140, 140, 140 129 | 130 | # TreeNode Colours 131 | ######################################################## 132 | TreeNodeText: ddbb99 133 | TreeNodeTextActive: 255, 255, 255 134 | 135 | # Build Colours (They don't work?) 136 | ######################################################## 137 | Build.BuildError: 255, 100, 100 138 | Build.BuildWarning: 220, 220, 0 139 | 140 | # Search Colours 141 | ######################################################## 142 | Search.TextMatch: default 143 | Search.HighlightLineColour: 49323d 144 | 145 | # HTML Colours (Unmodified) 146 | ######################################################## 147 | Html.ElementName: 247, 191, 120 148 | Html.AttributeName: 193, 145, 255 149 | Html.String: 102, 195, 204 150 | Html.Operator: 200, 200, 200 151 | 152 | # 10x Colours 153 | ######################################################## 154 | 10x.Setting.Keyword: ddbb99 155 | 10x.Setting.Name: af5770 156 | 10x.Setting.True: af5770 157 | 10x.Setting.False: af5770 -------------------------------------------------------------------------------- /ColorSchemes/SolarizedDark.10x_settings: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | 4 | # The main UI color 5 | UI.UI: 0, 43, 54 6 | 7 | # Text color for the main UI 8 | UI.UI Text: 253, 246, 227 9 | 10 | # Color of the main drop down menu 11 | UI.Menu: 0, 43, 54 12 | 13 | # Color of menu items as the mouse moves over 14 | UI.Menu (highlighted): 38, 139, 210 15 | 16 | # Color of menu items that are selected (showing sub menus) 17 | UI.Menu (selected): 88, 110, 117 18 | 19 | # App border when app is active 20 | UI.App Border (active): 147, 161, 161 21 | 22 | # App border when app is inactive 23 | UI.App Border (inactive): 88, 110, 117 24 | 25 | # Color of the tab for the currently active panel 26 | UI.Panels.Active Tab: 88, 110, 117 27 | 28 | # Text color for active tabs 29 | UI.Panels.Active Tab Text: 253, 246, 227 30 | 31 | # Text color for inactive tabs 32 | UI.Panels.Inactive Tab Text: 147, 161, 161 33 | 34 | # Color of tabs for inactive panels 35 | UI.Panels.Inactive Tab: 40, 50, 55 36 | 37 | # Color of the scrollbar background 38 | UI.Panels.Scrollbar Background: 7, 54, 66 39 | 40 | # Color of the scrollbar bar 41 | UI.Panels.Scrollbar Bar: 88, 110, 117 42 | 43 | # Color of the map-scrollbar bar 44 | UI.Panels.MapScrollbar Bar: 88, 110, 117 45 | 46 | # Color of the scrollbar bar when the mouse is hovering over 47 | UI.Panels.Scrollbar Bar (hover): 131, 148, 150 48 | 49 | # Color of the scrollbar bar when being dragged 50 | UI.Panels.Scrollbar Bar (drag): 253, 246, 227 51 | 52 | # Default text color for all text editor windows 53 | Editor.Text: 131, 148, 150 54 | 55 | # Default background color for all text editor windows 56 | Editor.Background: 0, 43, 54 57 | 58 | # Text Editor cursor (caret) color 59 | Editor.Cursor: 220, 50, 47 60 | 61 | # Background color for the current line 62 | Editor.Current Line: 7, 54, 66 63 | 64 | # Background color of selected text 65 | Editor.Selection Back: default 66 | 67 | # Foreground color of selected text. Use 'default' for no foreground color. 68 | Editor.Selection Fore: default 69 | 70 | # Text background color for text highlighted by the Find tool 71 | Editor.Find.Text Highlight: 120, 50, 47 72 | 73 | # Text background color for text highlighted when renaming a symbol 74 | Editor.Rename Symbol Back: 255, 153, 0 75 | 76 | # Text foreground color for text highlighted when renaming a symbol 77 | Editor.Rename Symbol Fore: 0, 0, 0 78 | 79 | # Text editor text color 80 | Language.Text: 253, 246, 227 81 | 82 | # Text editor background color 83 | Language.Background: 0, 43, 54 84 | 85 | # Number 86 | Language.Number: 42, 161, 152 87 | 88 | # C++ Keyword 89 | Language.Keyword: 133, 153, 0 90 | 91 | # Preprocessor 92 | Language.Preprocessor: 203, 75, 22 93 | 94 | # Comment 95 | Language.Comment: 88, 110, 117 96 | 97 | # {} 98 | Language.Brace: 150, 150, 150 99 | 100 | # () 101 | Language.Bracket: 150, 150, 150 102 | 103 | # [] 104 | Language.SquareBracket: 150, 150, 150 105 | 106 | # ; 107 | Language.SemiColon: 150, 150, 150 108 | 109 | # C++ Operator 110 | Language.Operator: 150, 150, 150 111 | 112 | # String 113 | Language.String: 42, 161, 152 114 | 115 | # , 116 | Language.Comma: 150, 150, 150 117 | 118 | # Class 119 | Language.Class: 181, 137, 0 120 | 121 | # Function 122 | Language.Function: 70, 174, 255 123 | 124 | # Member Function 125 | Language.MemberFunction: 70, 174, 255 126 | 127 | # Enum 128 | Language.Enum: 181, 137, 0 129 | 130 | # Enum Value 131 | Language.Enum Value: 181, 137, 0 132 | 133 | # Variable 134 | Language.Variable: 238, 232, 213 135 | 136 | # Member Variable 137 | Language.MemberVariable: 238, 232, 213 138 | 139 | # Namespace 140 | Language.Namespace: 181, 137, 0 141 | 142 | # Typedef 143 | Language.Typedef: 181, 137, 0 144 | 145 | # C++ Type 146 | Language.Type: 181, 137, 0 147 | 148 | # Line number colors 149 | Editor.Line Numbers: 88, 110, 117 150 | 151 | # Margin color 152 | Editor.Margin: 7, 54, 66 153 | 154 | # Build error 155 | Build.BuildError: 255, 0, 0 156 | 157 | # Workspace tree node text 158 | TreeNodeText: 253, 246, 227 159 | 160 | # Workspace active tree node text 161 | TreeNodeTextActive: 253, 246, 227 162 | 163 | # Build warning 164 | Build.BuildWarning: 150, 100, 50 165 | 166 | # Current symbol highlight color 167 | Editor.SymbolHighlight: 88, 110, 117 168 | 169 | # Current word highlight colour 170 | Editor.WordHighlight: 88, 110, 117 171 | 172 | # Bookmark 173 | Editor.Bookmark: 38, 139, 210 174 | 175 | # 10x output error 176 | UI.10xOutputError: 255, 120, 120 177 | 178 | # 10x output warning 179 | UI.10xOutputWarning: 150, 100, 50 180 | 181 | # Color of the matched text 182 | Search.TextMatch: 162, 209, 211 183 | 184 | # color of the highlighted line in the Search panel 185 | Search.HighlightLineColour: 60, 90, 100 186 | 187 | # Highlight the matching brace/bracket color 188 | Editor.Find.Brace/Bracket Highlight: 120, 50, 47 189 | 190 | # Highlight the matching start/end bracket color 191 | Editor.Find.Bracket Highlight: 120, 50, 47 192 | 193 | # Breakpoint 194 | Editor.Breakpoint: 255, 0, 0 195 | 196 | # Whitespace 197 | Editor.Whitespace: 88, 110, 117 198 | 199 | # Indent line 200 | Editor.IndentLine: 88, 110, 117 201 | 202 | # Highlight for search results list 203 | UI.SearchHighlight: 255, 220, 140 204 | 205 | # Autocomplete hover box background color 206 | Editor.AutocompleteBackColour: 0, 43, 54 207 | 208 | # Autocomplete hover box foreground color 209 | Editor.AutocompleteForeColour: 253, 246, 227 210 | 211 | # Autocomplete hover box border color 212 | Editor.AutocompleteBorderColour: 220, 50, 47 213 | 214 | # Hover box background color 215 | Editor.HoverBoxBackColour: 0, 43, 54 216 | 217 | # Hover box foreground color 218 | Editor.HoverBoxForeColour: 253, 246, 227 219 | 220 | # Hover box border color 221 | Editor.HoverBoxBorderColour: 220, 50, 47 222 | -------------------------------------------------------------------------------- /ColorSchemes/RDRDark.10x_settings: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | 4 | # 5 | UI.UI: 59, 59, 59 6 | 7 | # 8 | UI.UI Text: 205, 205, 205 9 | 10 | # 11 | UI.Menu: 59, 59, 59 12 | 13 | # 14 | UI.Menu (highlighted): 53, 79, 133 15 | 16 | # 17 | UI.Menu (selected): 53, 79, 133 18 | 19 | # 20 | UI.App Border (active): 130, 115, 0 21 | 22 | # 23 | UI.App Border (inactive): 66, 66, 69 24 | 25 | # 26 | UI.Panels.Active Tab: 25, 25, 25 27 | 28 | # 29 | UI.Panels.Active Tab Text: 255, 255, 255 30 | 31 | # 32 | UI.Panels.Inactive Tab Text: 255, 255, 255 33 | 34 | # 35 | UI.Panels.Inactive Tab: 50, 50, 50 36 | 37 | # 38 | UI.Panels.Scrollbar Background: default 39 | 40 | # 41 | UI.Panels.Scrollbar Bar: 80, 80, 80 42 | 43 | # 44 | UI.Panels.Scrollbar Bar (hover): 100, 100, 100 45 | 46 | # 47 | UI.Panels.Scrollbar Bar (drag): 120, 120, 120 48 | 49 | # 50 | UI.Panels.MapScrollbar Bar: default 51 | 52 | # 53 | Editor.Text: 187, 187, 187 54 | 55 | # 56 | Editor.Background: 38, 38, 38 57 | 58 | # 59 | Editor.Cursor: 240, 240, 240 60 | 61 | # 62 | Editor.Current Line: 32, 36, 36 63 | 64 | # 65 | Editor.Selection Back: 8, 51, 94 66 | 67 | # 68 | Editor.Selection Fore: 255, 255, 255 69 | 70 | # 71 | Editor.Find.Text Highlight: 95, 88, 25 72 | 73 | # 74 | Editor.Rename Symbol Back: 255, 153, 0 75 | 76 | # 77 | Editor.Rename Symbol Fore: 0, 0, 0 78 | 79 | # 80 | Language.Text: 187, 187, 187 81 | 82 | # 83 | Language.Background: 38, 38, 38 84 | 85 | # 86 | Language.Number: 200, 200, 200 87 | 88 | # 89 | Language.Keyword: 108, 149, 235 90 | 91 | # 92 | Language.Preprocessor: 108, 149, 235 93 | 94 | # 95 | Language.Comment: 133, 196, 108 96 | 97 | # 98 | Language.Brace: 188, 188, 188 99 | 100 | # 101 | Language.Bracket: 188, 188, 188 102 | 103 | # 104 | Language.SquareBracket: 188, 188, 188 105 | 106 | # 107 | Language.SemiColon: 188, 188, 188 108 | 109 | # 110 | Language.Operator: 188, 188, 188 111 | 112 | # 113 | Language.String: 201, 162, 109 114 | 115 | # 116 | Language.Comma: 188, 188, 188 117 | 118 | # 119 | Language.Class: 166, 144, 211 120 | 121 | # 122 | Language.Function: 54, 202, 120 123 | 124 | # 125 | Language.Enum: 225, 191, 255 126 | 127 | # 128 | Language.Enum Value: 225, 191, 255 129 | 130 | # 131 | Language.Variable: 188, 188, 188 132 | 133 | # 134 | Language.MemberVariable: 222, 188, 252 135 | 136 | # 137 | Language.Namespace: 193, 145, 255 138 | 139 | # 140 | Language.Typedef: 193, 145, 255 141 | 142 | # 143 | Language.Type: 193, 145, 255 144 | 145 | # 146 | Language.MemberFunction: 54, 202, 120 147 | 148 | # 149 | Editor.Line Numbers: 100, 100, 100 150 | 151 | # 152 | Editor.Margin: default 153 | 154 | # 155 | Build.BuildError: 255, 100, 100 156 | 157 | # 158 | TreeNodeText: 200, 200, 200 159 | 160 | # 161 | TreeNodeTextActive: 255, 255, 255 162 | 163 | # 164 | Build.BuildWarning: 220, 220, 0 165 | 166 | # 167 | UI.UI Highlight: 0, 100, 200 168 | 169 | # 170 | Editor.SymbolHighlight: 35, 46, 70 171 | 172 | # 173 | Editor.Bookmark: 200, 140, 60 174 | 175 | # 176 | UI.10xOutputError: 255, 120, 120 177 | 178 | # 179 | UI.10xOutputWarning: 220, 220, 0 180 | 181 | # 182 | Search.TextMatch: default 183 | 184 | # 185 | Search.HighlightLineColour: default 186 | 187 | # 188 | Editor.Find.Bracket Highlight: 87, 87, 45 189 | 190 | # 191 | Editor.Breakpoint: 255, 0, 0 192 | 193 | # 194 | Editor.Whitespace: default 195 | 196 | # 197 | Editor.IndentLine: default 198 | 199 | # 200 | UI.SearchHighlight: 130, 40, 0 201 | 202 | # 203 | Editor.AutocompleteBackColour: default 204 | 205 | # 206 | Editor.AutocompleteForeColour: default 207 | 208 | # 209 | Editor.AutocompleteBorderColour: default 210 | 211 | # 212 | Editor.HoverBoxBackColour: default 213 | 214 | # 215 | Editor.HoverBoxForeColour: default 216 | 217 | # 218 | Editor.HoverBoxBorderColour: default 219 | 220 | # 221 | Language.DefinedOut: 140, 140, 140 222 | 223 | # 224 | Editor.VerticalRulers: default 225 | 226 | # 227 | UI.UI Selected Item: default 228 | 229 | # 230 | UI.UI Selected Text: 65, 96, 130 231 | 232 | # 233 | UI.LogoBack: default 234 | 235 | # 236 | UI.LogoFore: default 237 | 238 | # 239 | UI.WorkspaceTreeNode: 100, 100, 140 240 | 241 | # 242 | UI.ActiveWorkspaceTreeNode: 100, 100, 120 243 | 244 | # 245 | UI.WorkspaceTreeNodeBorder: 0, 0, 0 246 | 247 | # 248 | UI.ActiveWorkspaceTreeNodeBorder: 255, 255, 255 249 | 250 | # 251 | UI.SourceFileTreeNode: 120, 170, 240 252 | 253 | # 254 | UI.HeaderFileTreeNode: 80, 120, 170 255 | 256 | # 257 | UI.MiscFileTreeNode: 255, 255, 255 258 | 259 | # 260 | UI.FolderTreeNode: 255, 219, 79 261 | 262 | # 263 | 10x.Setting.Name: 164, 187, 255 264 | 265 | # 266 | 10x.Setting.True: 0, 255, 0 267 | 268 | # 269 | 10x.Setting.False: 255, 0, 0 270 | 271 | # 272 | Html.ElementName: 247, 191, 120 273 | 274 | # 275 | Html.AttributeName: 193, 145, 255 276 | 277 | # 278 | Html.String: 102, 195, 204 279 | 280 | # 281 | Html.Operator: 200, 200, 200 282 | 283 | # 284 | Language.Heading: 255, 128, 0 285 | 286 | # 287 | Language.Bold: 120, 180, 255 288 | 289 | # 290 | Language.Italic: 255, 255, 0 291 | 292 | # 293 | Language.Blockquote: 255, 200, 170 294 | 295 | # 296 | Language.ListItem: 255, 255, 160 297 | 298 | # 299 | Language.Link: 100, 100, 255 300 | 301 | # 302 | Language.CodeBlock: 150, 255, 255 303 | 304 | # 305 | Language.Custom1: 114, 216, 220 306 | 307 | # 308 | Language.Custom2: 255, 140, 0 309 | 310 | # 311 | Language.Custom3: 255, 211, 112 312 | 313 | # 314 | Language.Custom4: 111, 216, 91 315 | 316 | # 317 | Language.Custom5: 94, 115, 255 318 | 319 | # 320 | Language.Custom6: 214, 97, 216 321 | 322 | # 323 | Language.Custom7: 96, 153, 214 324 | 325 | # 326 | Language.Custom8: 172, 211, 95 327 | 328 | # 329 | Language.Custom9: 154, 197, 209 330 | 331 | # 332 | Language.Custom10: 214, 113, 113 333 | 334 | # 335 | 10x.Setting.Keyword: 173, 235, 150 336 | 337 | # 338 | Editor.LineEndings: default 339 | 340 | # 341 | UI.SelectedSearchResultLine: default 342 | 343 | # 344 | Editor.CollapseExpandButton: default 345 | 346 | # 347 | UI.ScrollBarFindMatchHighlight: default 348 | 349 | # 350 | UI.ScrollBarWordMatchHighlight: default 351 | 352 | # Brace/bracket colour at depth 1 353 | Editor.BraceDepth1: default 354 | 355 | 356 | # Brace/bracket colour at depth 2 357 | Editor.BraceDepth2: default 358 | 359 | 360 | # Brace/bracket colour at depth 3 361 | Editor.BraceDepth3: default 362 | 363 | 364 | # Brace/bracket colour at depth 4 365 | Editor.BraceDepth4: default 366 | 367 | 368 | # Brace/bracket colour at depth 5 369 | Editor.BraceDepth5: default 370 | 371 | 372 | # Brace/bracket colour at depth 6 373 | Editor.BraceDepth6: default 374 | 375 | 376 | -------------------------------------------------------------------------------- /ColorSchemes/Gold.10x_settings: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | 4 | # 5 | UI.UI: 35, 33, 39 6 | 7 | # 8 | UI.UI Text: 240, 240, 240 9 | 10 | # 11 | UI.Menu: 35, 30, 20 12 | 13 | # 14 | UI.Menu (highlighted): 180, 120, 40 15 | 16 | # 17 | UI.Menu (selected): 115, 90, 70 18 | 19 | # 20 | UI.App Border (active): 130, 115, 0 21 | 22 | # 23 | UI.App Border (inactive): 66, 66, 69 24 | 25 | # 26 | UI.Panels.Active Tab: 174, 152, 76 27 | 28 | # 29 | UI.Panels.Active Tab Text: 235, 235, 235 30 | 31 | # 32 | UI.Panels.Inactive Tab Text: 235, 235, 235 33 | 34 | # 35 | UI.Panels.Inactive Tab: 83, 83, 70 36 | 37 | # 38 | UI.Panels.Scrollbar Background: default 39 | 40 | # 41 | UI.Panels.Scrollbar Bar: 80, 80, 80 42 | 43 | # 44 | UI.Panels.Scrollbar Bar (hover): 100, 100, 100 45 | 46 | # 47 | UI.Panels.Scrollbar Bar (drag): 120, 120, 120 48 | 49 | # 50 | UI.Panels.MapScrollbar Bar: default 51 | 52 | # 53 | Editor.Text: 255, 255, 255 54 | 55 | # 56 | Editor.Background: 19, 17, 19 57 | 58 | # 59 | Editor.Cursor: 255, 255, 200 60 | 61 | # 62 | Editor.Current Line: 59, 47, 38 63 | 64 | # 65 | Editor.Selection Back: 220, 185, 90 66 | 67 | # 68 | Editor.Selection Fore: 0, 0, 0 69 | 70 | # 71 | Editor.Find.Text Highlight: 95, 88, 25 72 | 73 | # 74 | Editor.Rename Symbol Back: 240, 143, 0 75 | 76 | # 77 | Editor.Rename Symbol Fore: 0, 0, 0 78 | 79 | # 80 | Language.Text: 140, 140, 140 81 | 82 | # 83 | Language.Background: 15, 13, 15 84 | 85 | # 86 | Language.Number: 118, 145, 81 87 | 88 | # 89 | Language.Keyword: 245, 194, 143 90 | 91 | # 92 | Language.Preprocessor: 100, 140, 155 93 | 94 | # 95 | Language.Comment: 150, 150, 150 96 | 97 | # 98 | Language.Brace: 235, 232, 225 99 | 100 | # 101 | Language.Bracket: 235, 232, 225 102 | 103 | # 104 | Language.SquareBracket: 245, 242, 235 105 | 106 | # 107 | Language.SemiColon: 245, 242, 235 108 | 109 | # 110 | Language.Operator: 245, 242, 235 111 | 112 | # 113 | Language.String: 140, 201, 160 114 | 115 | # 116 | Language.Comma: 235, 232, 225 117 | 118 | # 119 | Language.Class: 240, 203, 115 120 | 121 | # 122 | Language.Function: 250, 155, 135 123 | 124 | # 125 | Language.Enum: 125, 213, 222 126 | 127 | # 128 | Language.Enum Value: 190, 220, 245 129 | 130 | # 131 | Language.Variable: 240, 240, 230 132 | 133 | # 134 | Language.MemberVariable: 245, 226, 194 135 | 136 | # 137 | Language.Namespace: 245, 210, 160 138 | 139 | # 140 | Language.Typedef: 255, 218, 130 141 | 142 | # 143 | Language.Type: 245, 208, 120 144 | 145 | # 146 | Language.MemberFunction: 225, 185, 175 147 | 148 | # 149 | Editor.Line Numbers: 100, 100, 100 150 | 151 | # 152 | Editor.Margin: default 153 | 154 | # 155 | Build.BuildError: 255, 100, 100 156 | 157 | # 158 | TreeNodeText: 200, 200, 200 159 | 160 | # 161 | TreeNodeTextActive: 235, 235, 235 162 | 163 | # 164 | Build.BuildWarning: 210, 210, 0 165 | 166 | # 167 | UI.UI Highlight: 200, 140, 0 168 | 169 | # 170 | Editor.SymbolHighlight: 74, 41, 18 171 | 172 | # 173 | Editor.Bookmark: 200, 140, 60 174 | 175 | # 176 | UI.10xOutputError: 255, 120, 120 177 | 178 | # 179 | UI.10xOutputWarning: 220, 220, 0 180 | 181 | # 182 | Search.TextMatch: default 183 | 184 | # 185 | Search.HighlightLineColour: default 186 | 187 | # 188 | Editor.Find.Bracket Highlight: 128, 82, 60 189 | 190 | # 191 | Editor.Breakpoint: 250, 0, 0 192 | 193 | # 194 | Editor.Whitespace: default 195 | 196 | # 197 | Editor.IndentLine: default 198 | 199 | # 200 | UI.SearchHighlight: 130, 100, 0 201 | 202 | # 203 | Editor.AutocompleteBackColour: default 204 | 205 | # 206 | Editor.AutocompleteForeColour: default 207 | 208 | # 209 | Editor.AutocompleteBorderColour: default 210 | 211 | # 212 | Editor.HoverBoxBackColour: default 213 | 214 | # 215 | Editor.HoverBoxForeColour: default 216 | 217 | # 218 | Editor.HoverBoxBorderColour: default 219 | 220 | # 221 | Language.DefinedOut: 140, 140, 140 222 | 223 | # 224 | Editor.VerticalRulers: default 225 | 226 | # 227 | UI.UI Selected Item: 156, 109, 0 228 | 229 | # 230 | UI.UI Selected Text: 130, 100, 65 231 | 232 | # 233 | UI.LogoBack: default 234 | 235 | # 236 | UI.LogoFore: default 237 | 238 | # 239 | UI.WorkspaceTreeNode: 140, 128, 100 240 | 241 | # 242 | UI.ActiveWorkspaceTreeNode: 120, 114, 100 243 | 244 | # 245 | UI.WorkspaceTreeNodeBorder: 0, 0, 0 246 | 247 | # 248 | UI.ActiveWorkspaceTreeNodeBorder: 255, 255, 255 249 | 250 | # 251 | UI.SourceFileTreeNode: 240, 198, 120 252 | 253 | # 254 | UI.HeaderFileTreeNode: 170, 140, 80 255 | 256 | # 257 | UI.MiscFileTreeNode: 235, 235, 235 258 | 259 | # 260 | UI.FolderTreeNode: 235, 209, 69 261 | 262 | # 263 | 10x.Setting.Name: 245, 213, 154 264 | 265 | # 266 | 10x.Setting.True: 131, 227, 75 267 | 268 | # 269 | 10x.Setting.False: 240, 95, 34 270 | 271 | # 272 | Html.ElementName: 247, 191, 120 273 | 274 | # 275 | Html.AttributeName: 193, 145, 255 276 | 277 | # 278 | Html.String: 102, 195, 204 279 | 280 | # 281 | Html.Operator: 200, 200, 200 282 | 283 | # 284 | Language.Heading: 255, 128, 0 285 | 286 | # 287 | Language.Bold: 255, 170, 120 288 | 289 | # 290 | Language.Italic: 255, 255, 0 291 | 292 | # 293 | Language.Blockquote: 255, 200, 170 294 | 295 | # 296 | Language.ListItem: 255, 255, 160 297 | 298 | # 299 | Language.Link: 255, 128, 100 300 | 301 | # 302 | Language.CodeBlock: 255, 194, 150 303 | 304 | # 305 | Language.Custom1: 220, 174, 114 306 | 307 | # 308 | Language.Custom2: 255, 140, 0 309 | 310 | # 311 | Language.Custom3: 255, 211, 112 312 | 313 | # 314 | Language.Custom4: 216, 170, 91 315 | 316 | # 317 | Language.Custom5: 255, 164, 94 318 | 319 | # 320 | Language.Custom6: 216, 168, 97 321 | 322 | # 323 | Language.Custom7: 96, 153, 214 324 | 325 | # 326 | Language.Custom8: 214, 163, 96 327 | 328 | # 329 | Language.Custom9: 209, 187, 154 330 | 331 | # 332 | Language.Custom10: 214, 113, 113 333 | 334 | # 335 | 10x.Setting.Keyword: 235, 221, 150 336 | 337 | # 338 | Editor.LineEndings: default 339 | 340 | # 341 | UI.SelectedSearchResultLine: 122, 82, 39 342 | 343 | # 344 | Editor.CollapseExpandButton: default 345 | 346 | # 347 | UI.ScrollBarFindMatchHighlight: default 348 | 349 | # 350 | UI.ScrollBarWordMatchHighlight: default 351 | 352 | # Brace/bracket colour at depth 1 353 | Editor.BraceDepth1: default 354 | 355 | 356 | # Brace/bracket colour at depth 2 357 | Editor.BraceDepth2: default 358 | 359 | 360 | # Brace/bracket colour at depth 3 361 | Editor.BraceDepth3: default 362 | 363 | 364 | # Brace/bracket colour at depth 4 365 | Editor.BraceDepth4: default 366 | 367 | 368 | # Brace/bracket colour at depth 5 369 | Editor.BraceDepth5: default 370 | 371 | 372 | # Brace/bracket colour at depth 6 373 | Editor.BraceDepth6: default 374 | 375 | 376 | -------------------------------------------------------------------------------- /ColorSchemes/Moss.10x_settings: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | 4 | # 5 | UI.UI: 40, 47, 49 6 | 7 | # 8 | UI.UI Text: 255, 255, 255 9 | 10 | # 11 | UI.Menu: 20, 35, 35 12 | 13 | # 14 | UI.Menu (highlighted): 50, 70, 80 15 | 16 | # 17 | UI.Menu (selected): 60, 80, 90 18 | 19 | # 20 | UI.App Border (active): 105, 101, 255 21 | 22 | # 23 | UI.App Border (inactive): 66, 66, 69 24 | 25 | # 26 | UI.Panels.Active Tab: 42, 77, 50 27 | 28 | # 29 | UI.Panels.Active Tab Text: 255, 255, 255 30 | 31 | # 32 | UI.Panels.Inactive Tab Text: 255, 255, 255 33 | 34 | # 35 | UI.Panels.Inactive Tab: 83, 83, 70 36 | 37 | # 38 | UI.Panels.Scrollbar Background: default 39 | 40 | # 41 | UI.Panels.Scrollbar Bar: 80, 80, 80 42 | 43 | # 44 | UI.Panels.Scrollbar Bar (hover): 100, 100, 100 45 | 46 | # 47 | UI.Panels.Scrollbar Bar (drag): 120, 120, 120 48 | 49 | # 50 | UI.Panels.MapScrollbar Bar: default 51 | 52 | # 53 | Editor.Text: 255, 255, 255 54 | 55 | # 56 | Editor.Background: 24, 32, 30 57 | 58 | # 59 | Editor.Cursor: 255, 255, 255 60 | 61 | # 62 | Editor.Current Line: 6, 14, 16 63 | 64 | # 65 | Editor.Selection Back: 50, 70, 60 66 | 67 | # 68 | Editor.Selection Fore: 0, 0, 0, 0 69 | 70 | # 71 | Editor.Find.Text Highlight: 70, 76, 35 72 | 73 | # 74 | Editor.Rename Symbol Back: 255, 153, 0 75 | 76 | # 77 | Editor.Rename Symbol Fore: 0, 0, 0 78 | 79 | # 80 | Language.Text: 208, 208, 208 81 | 82 | # 83 | Language.Background: 5, 23, 23 84 | 85 | # 86 | Language.Number: 200, 200, 200 87 | 88 | # 89 | Language.Keyword: 120, 160, 130 90 | 91 | # 92 | Language.Preprocessor: 170, 190, 140 93 | 94 | # 95 | Language.Comment: 70, 200, 70 96 | 97 | # 98 | Language.Brace: 221, 221, 221 99 | 100 | # 101 | Language.Bracket: 215, 215, 215 102 | 103 | # 104 | Language.SquareBracket: 215, 215, 215 105 | 106 | # 107 | Language.SemiColon: 200, 200, 200 108 | 109 | # 110 | Language.Operator: 200, 200, 200 111 | 112 | # 113 | Language.String: 200, 210, 220 114 | 115 | # 116 | Language.Comma: 200, 200, 200 117 | 118 | # 119 | Language.Class: 110, 153, 160 120 | 121 | # 122 | Language.Function: 130, 170, 130 123 | 124 | # 125 | Language.Enum: 120, 180, 125 126 | 127 | # 128 | Language.Enum Value: 160, 210, 170 129 | 130 | # 131 | Language.Variable: 220, 230, 220 132 | 133 | # 134 | Language.MemberVariable: 100, 160, 150 135 | 136 | # 137 | Language.Namespace: 170, 220, 210 138 | 139 | # 140 | Language.Typedef: 130, 220, 244 141 | 142 | # 143 | Language.Type: 115, 190, 220 144 | 145 | # 146 | Language.MemberFunction: 149, 197, 144 147 | 148 | # 149 | Editor.Line Numbers: 100, 100, 100 150 | 151 | # 152 | Editor.Margin: default 153 | 154 | # 155 | Build.BuildError: 255, 100, 100 156 | 157 | # 158 | TreeNodeText: 200, 200, 200 159 | 160 | # 161 | TreeNodeTextActive: 255, 255, 255 162 | 163 | # 164 | Build.BuildWarning: 220, 220, 0 165 | 166 | # 167 | UI.UI Highlight: 0, 100, 200 168 | 169 | # 170 | Editor.SymbolHighlight: 35, 49, 40 171 | 172 | # 173 | Editor.Bookmark: 200, 140, 60 174 | 175 | # 176 | UI.10xOutputError: 255, 120, 120 177 | 178 | # 179 | UI.10xOutputWarning: 220, 220, 0 180 | 181 | # 182 | Search.TextMatch: default 183 | 184 | # 185 | Search.HighlightLineColour: default 186 | 187 | # 188 | Editor.Find.Bracket Highlight: 87, 87, 45 189 | 190 | # 191 | Editor.Breakpoint: 255, 0, 0 192 | 193 | # 194 | Editor.Whitespace: default 195 | 196 | # 197 | Editor.IndentLine: default 198 | 199 | # 200 | UI.SearchHighlight: 0, 80, 30 201 | 202 | # 203 | Editor.AutocompleteBackColour: default 204 | 205 | # 206 | Editor.AutocompleteForeColour: default 207 | 208 | # 209 | Editor.AutocompleteBorderColour: default 210 | 211 | # 212 | Editor.HoverBoxBackColour: default 213 | 214 | # 215 | Editor.HoverBoxForeColour: default 216 | 217 | # 218 | Editor.HoverBoxBorderColour: default 219 | 220 | # 221 | Language.DefinedOut: 140, 140, 140 222 | 223 | # 224 | Editor.VerticalRulers: default 225 | 226 | # 227 | UI.UI Selected Item: default 228 | 229 | # 230 | UI.UI Selected Text: 65, 96, 130 231 | 232 | # 233 | UI.LogoBack: default 234 | 235 | # 236 | UI.LogoFore: default 237 | 238 | # 239 | UI.WorkspaceTreeNode: 100, 100, 140 240 | 241 | # 242 | UI.ActiveWorkspaceTreeNode: 100, 100, 120 243 | 244 | # 245 | UI.WorkspaceTreeNodeBorder: 0, 0, 0 246 | 247 | # 248 | UI.ActiveWorkspaceTreeNodeBorder: 255, 255, 255 249 | 250 | # 251 | UI.SourceFileTreeNode: 120, 170, 240 252 | 253 | # 254 | UI.HeaderFileTreeNode: 80, 120, 170 255 | 256 | # 257 | UI.MiscFileTreeNode: 255, 255, 255 258 | 259 | # 260 | UI.FolderTreeNode: 255, 219, 79 261 | 262 | # 263 | 10x.Setting.Name: 164, 187, 255 264 | 265 | # 266 | 10x.Setting.True: 0, 255, 0 267 | 268 | # 269 | 10x.Setting.False: 255, 0, 0 270 | 271 | # 272 | Html.ElementName: 247, 191, 120 273 | 274 | # 275 | Html.AttributeName: 193, 145, 255 276 | 277 | # 278 | Html.String: 102, 195, 204 279 | 280 | # 281 | Html.Operator: 200, 200, 200 282 | 283 | # 284 | Language.Heading: 255, 128, 0 285 | 286 | # 287 | Language.Bold: 120, 180, 255 288 | 289 | # 290 | Language.Italic: 255, 255, 0 291 | 292 | # 293 | Language.Blockquote: 255, 200, 170 294 | 295 | # 296 | Language.ListItem: 255, 255, 160 297 | 298 | # 299 | Language.Link: 100, 100, 255 300 | 301 | # 302 | Language.CodeBlock: 150, 255, 255 303 | 304 | # 305 | Language.Custom1: 114, 216, 220 306 | 307 | # 308 | Language.Custom2: 255, 140, 0 309 | 310 | # 311 | Language.Custom3: 255, 211, 112 312 | 313 | # 314 | Language.Custom4: 111, 216, 91 315 | 316 | # 317 | Language.Custom5: 94, 115, 255 318 | 319 | # 320 | Language.Custom6: 214, 97, 216 321 | 322 | # 323 | Language.Custom7: 96, 153, 214 324 | 325 | # 326 | Language.Custom8: 172, 211, 95 327 | 328 | # 329 | Language.Custom9: 154, 197, 209 330 | 331 | # 332 | Language.Custom10: 214, 113, 113 333 | 334 | # 335 | 10x.Setting.Keyword: 173, 235, 150 336 | 337 | # 338 | Editor.LineEndings: default 339 | 340 | # 341 | UI.SelectedSearchResultLine: 70, 72, 75 342 | 343 | # 344 | Editor.CollapseExpandButton: default 345 | 346 | # Color of the find match results in the scroll bar 347 | UI.ScrollBarFindMatchHighlight: default 348 | 349 | # Color of the current word match results in the scroll bar 350 | UI.ScrollBarWordMatchHighlight: default 351 | 352 | # Brace/bracket colour at depth 1 353 | Editor.BraceDepth1: default 354 | 355 | 356 | # Brace/bracket colour at depth 2 357 | Editor.BraceDepth2: default 358 | 359 | 360 | # Brace/bracket colour at depth 3 361 | Editor.BraceDepth3: default 362 | 363 | 364 | # Brace/bracket colour at depth 4 365 | Editor.BraceDepth4: default 366 | 367 | 368 | # Brace/bracket colour at depth 5 369 | Editor.BraceDepth5: default 370 | 371 | 372 | # Brace/bracket colour at depth 6 373 | Editor.BraceDepth6: default 374 | 375 | 376 | -------------------------------------------------------------------------------- /ColorSchemes/Moriarty.10x_settings: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | 4 | # 5 | UI.UI: 47, 45, 40 6 | 7 | # 8 | UI.UI Text: 255, 255, 255 9 | 10 | # 11 | UI.Menu: 35, 30, 20 12 | 13 | # 14 | UI.Menu (highlighted): 180, 120, 40 15 | 16 | # 17 | UI.Menu (selected): 115, 90, 70 18 | 19 | # 20 | UI.App Border (active): 130, 115, 0 21 | 22 | # 23 | UI.App Border (inactive): 66, 66, 69 24 | 25 | # 26 | UI.Panels.Active Tab: 156, 107, 23 27 | 28 | # 29 | UI.Panels.Active Tab Text: 255, 255, 255 30 | 31 | # 32 | UI.Panels.Inactive Tab Text: 255, 255, 255 33 | 34 | # 35 | UI.Panels.Inactive Tab: 83, 83, 70 36 | 37 | # 38 | UI.Panels.Scrollbar Background: default 39 | 40 | # 41 | UI.Panels.Scrollbar Bar: 80, 80, 80 42 | 43 | # 44 | UI.Panels.Scrollbar Bar (hover): 100, 100, 100 45 | 46 | # 47 | UI.Panels.Scrollbar Bar (drag): 120, 120, 120 48 | 49 | # 50 | UI.Panels.MapScrollbar Bar: default 51 | 52 | # 53 | Editor.Text: 255, 255, 255 54 | 55 | # 56 | Editor.Background: 43, 43, 43 57 | 58 | # 59 | Editor.Cursor: 255, 255, 200 60 | 61 | # 62 | Editor.Current Line: 59, 47, 38 63 | 64 | # 65 | Editor.Selection Back: 220, 185, 90 66 | 67 | # 68 | Editor.Selection Fore: 0, 0, 0 69 | 70 | # 71 | Editor.Find.Text Highlight: 95, 88, 25 72 | 73 | # 74 | Editor.Rename Symbol Back: 255, 153, 0 75 | 76 | # 77 | Editor.Rename Symbol Fore: 0, 0, 0 78 | 79 | # 80 | Language.Text: 150, 150, 150 81 | 82 | # 83 | Language.Background: 43, 41, 39 84 | 85 | # 86 | Language.Number: 255, 218, 130 87 | 88 | # 89 | Language.Keyword: 255, 204, 153 90 | 91 | # 92 | Language.Preprocessor: 230, 159, 115 93 | 94 | # 95 | Language.Comment: 150, 150, 150 96 | 97 | # 98 | Language.Brace: 250, 247, 240 99 | 100 | # 101 | Language.Bracket: 250, 247, 240 102 | 103 | # 104 | Language.SquareBracket: 250, 247, 240 105 | 106 | # 107 | Language.SemiColon: 250, 247, 240 108 | 109 | # 110 | Language.Operator: 250, 247, 240 111 | 112 | # 113 | Language.String: 255, 218, 130 114 | 115 | # 116 | Language.Comma: 250, 247, 240 117 | 118 | # 119 | Language.Class: 255, 218, 130 120 | 121 | # 122 | Language.Function: 255, 232, 199 123 | 124 | # 125 | Language.Enum: 255, 218, 130 126 | 127 | # 128 | Language.Enum Value: 255, 232, 199 129 | 130 | # 131 | Language.Variable: 255, 251, 245 132 | 133 | # 134 | Language.MemberVariable: 255, 232, 199 135 | 136 | # 137 | Language.Namespace: 255, 218, 130 138 | 139 | # 140 | Language.Typedef: 255, 218, 130 141 | 142 | # 143 | Language.Type: 255, 218, 130 144 | 145 | # 146 | Language.MemberFunction: 255, 232, 199 147 | 148 | # 149 | Editor.Line Numbers: 100, 100, 100 150 | 151 | # 152 | Editor.Margin: default 153 | 154 | # 155 | Build.BuildError: 255, 100, 100 156 | 157 | # 158 | TreeNodeText: 200, 200, 200 159 | 160 | # 161 | TreeNodeTextActive: 255, 255, 255 162 | 163 | # 164 | Build.BuildWarning: 220, 220, 0 165 | 166 | # 167 | UI.UI Highlight: 200, 140, 0 168 | 169 | # 170 | Editor.SymbolHighlight: 74, 41, 18 171 | 172 | # 173 | Editor.Bookmark: 200, 140, 60 174 | 175 | # 176 | UI.10xOutputError: 255, 120, 120 177 | 178 | # 179 | UI.10xOutputWarning: 220, 220, 0 180 | 181 | # 182 | Search.TextMatch: default 183 | 184 | # 185 | Search.HighlightLineColour: default 186 | 187 | # 188 | Editor.Find.Bracket Highlight: 128, 82, 60 189 | 190 | # 191 | Editor.Breakpoint: 255, 0, 0 192 | 193 | # 194 | Editor.Whitespace: default 195 | 196 | # 197 | Editor.IndentLine: default 198 | 199 | # 200 | UI.SearchHighlight: 130, 100, 0 201 | 202 | # 203 | Editor.AutocompleteBackColour: default 204 | 205 | # 206 | Editor.AutocompleteForeColour: default 207 | 208 | # 209 | Editor.AutocompleteBorderColour: default 210 | 211 | # 212 | Editor.HoverBoxBackColour: default 213 | 214 | # 215 | Editor.HoverBoxForeColour: default 216 | 217 | # 218 | Editor.HoverBoxBorderColour: default 219 | 220 | # 221 | Language.DefinedOut: 140, 140, 140 222 | 223 | # 224 | Editor.VerticalRulers: default 225 | 226 | # 227 | UI.UI Selected Item: 156, 109, 0 228 | 229 | # 230 | UI.UI Selected Text: 130, 100, 65 231 | 232 | # 233 | UI.LogoBack: default 234 | 235 | # 236 | UI.LogoFore: default 237 | 238 | # 239 | UI.WorkspaceTreeNode: 140, 128, 100 240 | 241 | # 242 | UI.ActiveWorkspaceTreeNode: 120, 114, 100 243 | 244 | # 245 | UI.WorkspaceTreeNodeBorder: 0, 0, 0 246 | 247 | # 248 | UI.ActiveWorkspaceTreeNodeBorder: 255, 255, 255 249 | 250 | # 251 | UI.SourceFileTreeNode: 240, 198, 120 252 | 253 | # 254 | UI.HeaderFileTreeNode: 170, 140, 80 255 | 256 | # 257 | UI.MiscFileTreeNode: 255, 255, 255 258 | 259 | # 260 | UI.FolderTreeNode: 255, 219, 79 261 | 262 | # 263 | 10x.Setting.Name: 255, 223, 164 264 | 265 | # 266 | 10x.Setting.True: 131, 227, 75 267 | 268 | # 269 | 10x.Setting.False: 240, 95, 34 270 | 271 | # 272 | Html.ElementName: 247, 191, 120 273 | 274 | # 275 | Html.AttributeName: 193, 145, 255 276 | 277 | # 278 | Html.String: 102, 195, 204 279 | 280 | # 281 | Html.Operator: 200, 200, 200 282 | 283 | # 284 | Language.Heading: 255, 128, 0 285 | 286 | # 287 | Language.Bold: 255, 170, 120 288 | 289 | # 290 | Language.Italic: 255, 255, 0 291 | 292 | # 293 | Language.Blockquote: 255, 200, 170 294 | 295 | # 296 | Language.ListItem: 255, 255, 160 297 | 298 | # 299 | Language.Link: 255, 128, 100 300 | 301 | # 302 | Language.CodeBlock: 255, 194, 150 303 | 304 | # 305 | Language.Custom1: 220, 174, 114 306 | 307 | # 308 | Language.Custom2: 255, 140, 0 309 | 310 | # 311 | Language.Custom3: 255, 211, 112 312 | 313 | # 314 | Language.Custom4: 216, 170, 91 315 | 316 | # 317 | Language.Custom5: 255, 164, 94 318 | 319 | # 320 | Language.Custom6: 216, 168, 97 321 | 322 | # 323 | Language.Custom7: 96, 153, 214 324 | 325 | # 326 | Language.Custom8: 214, 163, 96 327 | 328 | # 329 | Language.Custom9: 209, 187, 154 330 | 331 | # 332 | Language.Custom10: 214, 113, 113 333 | 334 | # 335 | 10x.Setting.Keyword: 235, 221, 150 336 | 337 | # 338 | Editor.LineEndings: default 339 | 340 | # 341 | UI.SelectedSearchResultLine: 122, 82, 39 342 | 343 | # 344 | Editor.CollapseExpandButton: default 345 | 346 | # Color of the find match results in the scroll bar 347 | UI.ScrollBarFindMatchHighlight: default 348 | 349 | # Color of the current word match results in the scroll bar 350 | UI.ScrollBarWordMatchHighlight: default 351 | 352 | # Brace/bracket colour at depth 1 353 | Editor.BraceDepth1: default 354 | 355 | 356 | # Brace/bracket colour at depth 2 357 | Editor.BraceDepth2: default 358 | 359 | 360 | # Brace/bracket colour at depth 3 361 | Editor.BraceDepth3: default 362 | 363 | 364 | # Brace/bracket colour at depth 4 365 | Editor.BraceDepth4: default 366 | 367 | 368 | # Brace/bracket colour at depth 5 369 | Editor.BraceDepth5: default 370 | 371 | 372 | # Brace/bracket colour at depth 6 373 | Editor.BraceDepth6: default 374 | 375 | 376 | -------------------------------------------------------------------------------- /ColorSchemes/VS+VAX Light.10x_settings: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | 4 | # 5 | UI.UI: 238, 236, 234 6 | 7 | # 8 | UI.UI Text: 0, 0, 0 9 | 10 | # 11 | UI.Menu: default 12 | 13 | # 14 | UI.Menu (highlighted): default 15 | 16 | # 17 | UI.Menu (selected): default 18 | 19 | # 20 | UI.App Border (active): default 21 | 22 | # 23 | UI.App Border (inactive): default 24 | 25 | # 26 | UI.Panels.Active Tab: 80, 120, 230 27 | 28 | # 29 | UI.Panels.Active Tab Text: 255, 255, 255 30 | 31 | # 32 | UI.Panels.Inactive Tab Text: 0, 0, 0 33 | 34 | # 35 | UI.Panels.Inactive Tab: 190, 190, 190 36 | 37 | # 38 | UI.Panels.Scrollbar Background: default 39 | 40 | # 41 | UI.Panels.Scrollbar Bar: default 42 | 43 | # 44 | UI.Panels.MapScrollbar Bar: default 45 | 46 | # 47 | UI.Panels.Scrollbar Bar (hover): default 48 | 49 | # 50 | UI.Panels.Scrollbar Bar (drag): default 51 | 52 | # 53 | Editor.Text: 0, 0, 0 54 | 55 | # 56 | Editor.Background: 255, 255, 255 57 | 58 | # 59 | Editor.Cursor: default 60 | 61 | # 62 | Editor.Current Line: 245, 240, 250 63 | 64 | # 65 | Editor.Selection Back: 153, 201, 239 66 | 67 | # 68 | Editor.Selection Fore: default 69 | 70 | # 71 | Editor.Find.Text Highlight: 220, 210, 100 72 | 73 | # 74 | Editor.Rename Symbol Back: 255, 153, 0 75 | 76 | # 77 | Editor.Rename Symbol Fore: 0, 0, 0 78 | 79 | # 80 | Language.Text: default 81 | 82 | # 83 | Language.Background: default 84 | 85 | # 86 | Language.Number: 0, 0, 0 87 | 88 | # 89 | Language.Keyword: 0, 0, 255 90 | 91 | # 92 | Language.Preprocessor: 195, 22, 180 93 | 94 | # 95 | Language.Comment: 0, 128, 0 96 | 97 | # 98 | Language.Brace: default 99 | 100 | # 101 | Language.Bracket: default 102 | 103 | # 104 | Language.SquareBracket: default 105 | 106 | # 107 | Language.SemiColon: default 108 | 109 | # 110 | Language.Operator: 0, 0, 0 111 | 112 | # 113 | Language.String: 123, 90, 90 114 | 115 | # 116 | Language.Comma: default 117 | 118 | # 119 | Language.Class: 33, 111, 133 120 | 121 | # 122 | Language.Function: 136, 0, 0 123 | 124 | # 125 | Language.Enum: 33, 111, 133 126 | 127 | # 128 | Language.Enum Value: 47, 79, 79 129 | 130 | # 131 | Language.Variable: 0, 0, 128 132 | 133 | # 134 | Language.MemberVariable: 0, 0, 128 135 | 136 | # 137 | Language.Namespace: 33, 111, 133 138 | 139 | # 140 | Language.Typedef: 43, 145, 175 141 | 142 | # 143 | Language.MemberFunction: 136, 0, 0 144 | 145 | # 146 | Language.Type: 0, 0, 255 147 | 148 | # 149 | Editor.Line Numbers: default 150 | 151 | # 152 | Editor.Margin: default 153 | 154 | # 155 | Build.BuildError: 255, 0, 0 156 | 157 | # 158 | TreeNodeText: 50, 50, 50 159 | 160 | # 161 | TreeNodeTextActive: 0, 0, 0 162 | 163 | # 164 | Build.BuildWarning: 150, 100, 50 165 | 166 | # 167 | Editor.SymbolHighlight: default 168 | 169 | # 170 | Editor.Bookmark: default 171 | 172 | # 173 | UI.10xOutputError: 255, 120, 120 174 | 175 | # 176 | UI.10xOutputWarning: 150, 100, 50 177 | 178 | # 179 | Search.TextMatch: 162, 209, 211 180 | 181 | # 182 | Search.HighlightLineColour: 206, 233, 234 183 | 184 | # 185 | Editor.Find.Brace/Bracket Highlight: default 186 | 187 | # 188 | Editor.Find.Bracket Highlight: default 189 | 190 | # 191 | Editor.Breakpoint: 255, 0, 0 192 | 193 | # 194 | Editor.Whitespace: default 195 | 196 | # 197 | Editor.IndentLine: default 198 | 199 | # 200 | UI.SearchHighlight: 255, 220, 140 201 | 202 | # 203 | Editor.AutocompleteBackColour: default 204 | 205 | # 206 | Editor.AutocompleteForeColour: default 207 | 208 | # 209 | Editor.AutocompleteBorderColour: default 210 | 211 | # 212 | Editor.HoverBoxBackColour: default 213 | 214 | # 215 | Editor.HoverBoxForeColour: default 216 | 217 | # 218 | Editor.HoverBoxBorderColour: default 219 | 220 | # 221 | Language.DefinedOut: 140, 140, 140 222 | 223 | # 224 | UI.UI Highlight: 0, 100, 200 225 | 226 | # 227 | Editor.VerticalRulers: default 228 | 229 | # 230 | UI.UI Selected Item: 160, 200, 240 231 | 232 | # 233 | UI.UI Selected Text: 160, 200, 240 234 | 235 | # 236 | UI.LogoBack: 160, 160, 164 237 | 238 | # 239 | UI.LogoFore: 255, 255, 255 240 | 241 | # 242 | UI.WorkspaceTreeNode: 180, 180, 240 243 | 244 | # 245 | UI.ActiveWorkspaceTreeNode: 130, 130, 255 246 | 247 | # 248 | UI.WorkspaceTreeNodeBorder: 80, 80, 80 249 | 250 | # 251 | UI.ActiveWorkspaceTreeNodeBorder: 0, 0, 0 252 | 253 | # 254 | UI.SourceFileTreeNode: 120, 170, 240 255 | 256 | # 257 | UI.HeaderFileTreeNode: 80, 120, 170 258 | 259 | # 260 | UI.MiscFileTreeNode: 255, 255, 255 261 | 262 | # 263 | UI.FolderTreeNode: 255, 219, 79 264 | 265 | # 266 | 10x.Setting.Name: 60, 80, 210 267 | 268 | # 269 | 10x.Setting.True: 0, 0, 0 270 | 271 | # 272 | 10x.Setting.False: 255, 0, 0 273 | 274 | # 275 | Html.ElementName: 23, 45, 255 276 | 277 | # 278 | Html.AttributeName: 30, 121, 247 279 | 280 | # 281 | Html.String: 62, 155, 174 282 | 283 | # 284 | Html.Operator: 90, 90, 90 285 | 286 | # 287 | Language.Heading: 255, 128, 0 288 | 289 | # 290 | Language.Bold: 0, 0, 120 291 | 292 | # 293 | Language.Italic: 0, 100, 200 294 | 295 | # 296 | Language.Blockquote: 100, 120, 140 297 | 298 | # 299 | Language.ListItem: 0, 200, 150 300 | 301 | # 302 | Language.Link: 100, 100, 255 303 | 304 | # 305 | Language.CodeBlock: 90, 140, 160 306 | 307 | # 308 | Language.Custom1: 90, 190, 220 309 | 310 | # 311 | Language.Custom2: 255, 140, 0 312 | 313 | # 314 | Language.Custom3: 160, 160, 50 315 | 316 | # 317 | Language.Custom4: 91, 200, 71 318 | 319 | # 320 | Language.Custom5: 94, 115, 255 321 | 322 | # 323 | Language.Custom6: 214, 97, 216 324 | 325 | # 326 | Language.Custom7: 96, 153, 214 327 | 328 | # 329 | Language.Custom8: 122, 180, 5 330 | 331 | # 332 | Language.Custom9: 124, 157, 189 333 | 334 | # 335 | Language.Custom10: 214, 113, 113 336 | 337 | # 338 | 10x.Setting.Keyword: 173, 235, 150 339 | 340 | # 341 | Editor.LineEndings: default 342 | 343 | # 344 | UI.SelectedSearchResultLine: 155, 185, 222 345 | 346 | # 347 | Editor.CollapseExpandButton: 0, 0, 0 348 | 349 | # 350 | UI.ScrollBarFindMatchHighlight: 255, 0, 0 351 | 352 | # 353 | UI.ScrollBarWordMatchHighlight: default 354 | 355 | # Brace/bracket colour at depth 1 356 | Editor.BraceDepth1: 0, 180, 180 357 | 358 | 359 | # Brace/bracket colour at depth 2 360 | Editor.BraceDepth2: 241, 130, 14 361 | 362 | 363 | # Brace/bracket colour at depth 3 364 | Editor.BraceDepth3: 246, 62, 11 365 | 366 | 367 | # Brace/bracket colour at depth 4 368 | Editor.BraceDepth4: 115, 167, 84 369 | 370 | 371 | # Brace/bracket colour at depth 5 372 | Editor.BraceDepth5: 218, 115, 246 373 | 374 | 375 | # Brace/bracket colour at depth 6 376 | Editor.BraceDepth6: 92, 119, 254 377 | 378 | 379 | -------------------------------------------------------------------------------- /ColorSchemes/Brassica.10x_settings: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | 4 | # 5 | UI.UI: 38, 36, 29 6 | 7 | # 8 | UI.UI Text: 228, 216, 174 9 | 10 | # 11 | UI.Menu: default 12 | 13 | # 14 | UI.Menu (highlighted): default 15 | 16 | # 17 | UI.Menu (selected): default 18 | 19 | # 20 | UI.App Border (active): 210, 181, 141 21 | 22 | # 23 | UI.App Border (inactive): default 24 | 25 | # 26 | UI.Panels.Active Tab: 103, 93, 55 27 | 28 | # 29 | UI.Panels.Active Tab Text: 245, 223, 193 30 | 31 | # 32 | UI.Panels.Inactive Tab Text: 210, 181, 141 33 | 34 | # 35 | UI.Panels.Inactive Tab: 77, 69, 40 36 | 37 | # 38 | UI.Panels.Scrollbar Background: 35, 35, 35 39 | 40 | # 41 | UI.Panels.Scrollbar Bar: 100, 100, 100 42 | 43 | # 44 | UI.Panels.MapScrollbar Bar: default 45 | 46 | # 47 | UI.Panels.Scrollbar Bar (hover): 150, 100, 0 48 | 49 | # 50 | UI.Panels.Scrollbar Bar (drag): 255, 128, 0 51 | 52 | # 53 | Editor.Text: 217, 205, 186 54 | 55 | # 56 | Editor.Background: 8, 38, 40 57 | 58 | # 59 | Editor.Cursor: 144, 237, 142 60 | 61 | # 62 | Editor.Current Line: 7, 47, 47 63 | 64 | # 65 | Editor.Selection Back: default 66 | 67 | # 68 | Editor.Selection Fore: default 69 | 70 | # 71 | Editor.Find.Text Highlight: 95, 45, 0 72 | 73 | # 74 | Editor.Rename Symbol Back: 238, 122, 159 75 | 76 | # 77 | Editor.Rename Symbol Fore: 71, 7, 28 78 | 79 | # 80 | Language.Text: 217, 205, 186 81 | 82 | # 83 | Language.Background: 8, 38, 40 84 | 85 | # 86 | Language.Number: 129, 227, 224 87 | 88 | # 89 | Language.Keyword: 209, 234, 240 90 | 91 | # 92 | Language.Preprocessor: 195, 247, 178 93 | 94 | # 95 | Language.Comment: 96, 205, 113 96 | 97 | # 98 | Language.Brace: 227, 219, 204 99 | 100 | # 101 | Language.Bracket: 235, 230, 218 102 | 103 | # 104 | Language.SquareBracket: 235, 230, 218 105 | 106 | # 107 | Language.SemiColon: 163, 155, 139 108 | 109 | # 110 | Language.Operator: 181, 172, 154 111 | 112 | # 113 | Language.String: 108, 196, 180 114 | 115 | # 116 | Language.Comma: 227, 219, 204 117 | 118 | # 119 | Language.Class: 167, 219, 188 120 | 121 | # 122 | Language.Function: 217, 205, 186 123 | 124 | # 125 | Language.Enum: 167, 219, 188 126 | 127 | # 128 | Language.Enum Value: 217, 205, 186 129 | 130 | # 131 | Language.Variable: 217, 205, 186 132 | 133 | # 134 | Language.MemberVariable: 217, 205, 186 135 | 136 | # 137 | Language.Namespace: 167, 219, 188 138 | 139 | # 140 | Language.Typedef: 140, 230, 176 141 | 142 | # 143 | Language.MemberFunction: 217, 205, 186 144 | 145 | # 146 | Language.Type: 167, 219, 188 147 | 148 | # 149 | Editor.Line Numbers: default 150 | 151 | # 152 | Editor.Margin: default 153 | 154 | # 155 | Build.BuildError: 255, 100, 100 156 | 157 | # 158 | TreeNodeText: 210, 181, 141 159 | 160 | # 161 | TreeNodeTextActive: 210, 181, 141 162 | 163 | # 164 | Build.BuildWarning: 220, 220, 0 165 | 166 | # 167 | UI.UI Highlight: 200, 127, 0 168 | 169 | # 170 | Editor.SymbolHighlight: default 171 | 172 | # 173 | Editor.Bookmark: default 174 | 175 | # 176 | UI.10xOutputError: 255, 120, 120 177 | 178 | # 179 | UI.10xOutputWarning: 220, 220, 0 180 | 181 | # 182 | Search.TextMatch: default 183 | 184 | # 185 | Search.HighlightLineColour: default 186 | 187 | # 188 | Editor.Find.Brace/Bracket Highlight: default 189 | 190 | # 191 | Editor.Find.Bracket Highlight: default 192 | 193 | # 194 | Editor.Breakpoint: 255, 0, 0 195 | 196 | # 197 | Editor.Whitespace: default 198 | 199 | # 200 | Editor.IndentLine: default 201 | 202 | # 203 | UI.SearchHighlight: default 204 | 205 | # 206 | Editor.AutocompleteBackColour: default 207 | 208 | # 209 | Editor.AutocompleteForeColour: default 210 | 211 | # 212 | Editor.AutocompleteBorderColour: default 213 | 214 | # 215 | Editor.HoverBoxBackColour: default 216 | 217 | # 218 | Editor.HoverBoxForeColour: default 219 | 220 | # 221 | Editor.HoverBoxBorderColour: default 222 | 223 | # 224 | Language.DefinedOut: 140, 140, 140 225 | 226 | # 227 | UI.UI Selected Item: 135, 78, 18 228 | 229 | # 230 | Editor.VerticalRulers: default 231 | 232 | # 233 | UI.UI Selected Text: 130, 101, 65 234 | 235 | # 236 | UI.LogoBack: 8, 38, 40 237 | 238 | # 239 | UI.LogoFore: 210, 181, 141 240 | 241 | # 242 | UI.WorkspaceTreeNode: 100, 100, 140 243 | 244 | # 245 | UI.ActiveWorkspaceTreeNode: 100, 100, 120 246 | 247 | # 248 | UI.WorkspaceTreeNodeBorder: 0, 0, 0 249 | 250 | # 251 | UI.ActiveWorkspaceTreeNodeBorder: 255, 255, 255 252 | 253 | # 254 | UI.SourceFileTreeNode: 120, 170, 240 255 | 256 | # 257 | UI.HeaderFileTreeNode: 80, 120, 170 258 | 259 | # 260 | UI.MiscFileTreeNode: 255, 255, 255 261 | 262 | # 263 | UI.FolderTreeNode: 255, 219, 79 264 | 265 | # 266 | 10x.Setting.Name: 200, 255, 180 267 | 268 | # 269 | 10x.Setting.True: 0, 255, 0 270 | 271 | # 272 | 10x.Setting.False: 255, 0, 0 273 | 274 | # 275 | Html.ElementName: 247, 191, 120 276 | 277 | # 278 | Html.AttributeName: 193, 145, 255 279 | 280 | # 281 | Html.String: 102, 195, 204 282 | 283 | # 284 | Html.Operator: 200, 200, 200 285 | 286 | # 287 | Language.Heading: 255, 128, 0 288 | 289 | # 290 | Language.Bold: 120, 180, 255 291 | 292 | # 293 | Language.Italic: 255, 255, 0 294 | 295 | # 296 | Language.Blockquote: 255, 200, 170 297 | 298 | # 299 | Language.ListItem: 255, 255, 160 300 | 301 | # 302 | Language.Link: 100, 100, 255 303 | 304 | # 305 | Language.CodeBlock: 150, 255, 255 306 | 307 | # 308 | Language.Custom1: 114, 216, 220 309 | 310 | # 311 | Language.Custom2: 255, 140, 0 312 | 313 | # 314 | Language.Custom3: 255, 211, 112 315 | 316 | # 317 | Language.Custom4: 111, 216, 91 318 | 319 | # 320 | Language.Custom5: 94, 115, 255 321 | 322 | # 323 | Language.Custom6: 214, 97, 216 324 | 325 | # 326 | Language.Custom7: 96, 153, 214 327 | 328 | # 329 | Language.Custom8: 172, 211, 95 330 | 331 | # 332 | Language.Custom9: 154, 197, 209 333 | 334 | # 335 | Language.Custom10: 214, 113, 113 336 | 337 | # 338 | 10x.Setting.Keyword: 164, 187, 255 339 | 340 | # 341 | Editor.LineEndings: default 342 | 343 | # 344 | Editor.CollapseExpandButton: default 345 | 346 | # 347 | UI.SelectedSearchResultLine: default 348 | 349 | # Color of the find match results in the scroll bar 350 | UI.ScrollBarFindMatchHighlight: default 351 | 352 | # Color of the current word match results in the scroll bar 353 | UI.ScrollBarWordMatchHighlight: default 354 | 355 | # Brace/bracket colour at depth 1 356 | Editor.BraceDepth1: default 357 | 358 | 359 | # Brace/bracket colour at depth 2 360 | Editor.BraceDepth2: default 361 | 362 | 363 | # Brace/bracket colour at depth 3 364 | Editor.BraceDepth3: default 365 | 366 | 367 | # Brace/bracket colour at depth 4 368 | Editor.BraceDepth4: default 369 | 370 | 371 | # Brace/bracket colour at depth 5 372 | Editor.BraceDepth5: default 373 | 374 | 375 | # Brace/bracket colour at depth 6 376 | Editor.BraceDepth6: default 377 | 378 | 379 | -------------------------------------------------------------------------------- /ColorSchemes/Spice.10x_settings: -------------------------------------------------------------------------------- 1 | # Format: : 2 | # Setting name must appear at start of line and there must be whitespace after the colon. 3 | 4 | # 5 | UI.UI: 45, 45, 48 6 | 7 | # 8 | UI.UI Text: 255, 255, 255 9 | 10 | # 11 | UI.Menu: default 12 | 13 | # 14 | UI.Menu (highlighted): default 15 | 16 | # 17 | UI.Menu (selected): default 18 | 19 | # 20 | UI.App Border (active): 0, 121, 203 21 | 22 | # 23 | UI.App Border (inactive): 66, 66, 69 24 | 25 | # 26 | UI.Panels.Active Tab: 36, 97, 133 27 | 28 | # 29 | UI.Panels.Active Tab Text: 255, 255, 255 30 | 31 | # 32 | UI.Panels.Inactive Tab Text: 255, 255, 255 33 | 34 | # 35 | UI.Panels.Inactive Tab: 73, 73, 80 36 | 37 | # 38 | UI.Panels.Scrollbar Background: default 39 | 40 | # 41 | UI.Panels.Scrollbar Bar: 80, 80, 80 42 | 43 | # 44 | UI.Panels.Scrollbar Bar (hover): 100, 100, 100 45 | 46 | # 47 | UI.Panels.Scrollbar Bar (drag): 120, 120, 120 48 | 49 | # 50 | UI.Panels.MapScrollbar Bar: default 51 | 52 | # 53 | Editor.Text: 255, 255, 255 54 | 55 | # 56 | Editor.Background: 43, 41, 46 57 | 58 | # 59 | Editor.Cursor: default 60 | 61 | # 62 | Editor.Current Line: 0,0,0 63 | 64 | # 65 | Editor.Selection Back: 21,80,150 66 | 67 | # 68 | Editor.Selection Fore: default 69 | 70 | # 71 | Editor.Find.Text Highlight: 95, 45, 0 72 | 73 | # 74 | Editor.Rename Symbol Back: 255, 153, 0 75 | 76 | # 77 | Editor.Rename Symbol Fore: 0, 0, 0 78 | 79 | # 80 | Language.Text: 200, 200, 200 81 | 82 | # 83 | Language.Background: 40, 40, 40 84 | 85 | # 86 | Language.Number: 211, 134, 155 87 | 88 | # 89 | Language.Keyword: 251, 73, 52 90 | 91 | # 92 | Language.Preprocessor: 184, 187, 38 93 | 94 | # 95 | Language.Comment: 146, 131, 116 96 | 97 | # 98 | Language.Brace: 200, 200, 200 99 | 100 | # 101 | Language.Bracket: 200,200,200 102 | 103 | # 104 | Language.SquareBracket: 200, 200, 200 105 | 106 | # 107 | Language.SemiColon: 200, 200, 200 108 | 109 | # 110 | Language.Operator: 200, 200, 200 111 | 112 | # 113 | Language.String: 184, 187, 38 114 | 115 | # 116 | Language.Comma: 200, 200, 200 117 | 118 | # 119 | Language.Class: 250, 189, 47 120 | 121 | # 122 | Language.Function: 184, 187, 38 123 | 124 | # 125 | Language.Enum: 131, 165, 152 126 | 127 | # 128 | Language.Enum Value: 251, 241, 199 129 | 130 | # 131 | Language.Variable: 251, 241, 199 132 | 133 | # 134 | Language.MemberVariable: 251, 241, 199 135 | 136 | # 137 | Language.Namespace: 251, 241, 199 138 | 139 | # 140 | Language.Typedef: 250, 189, 47 141 | 142 | # 143 | Language.Type: 250, 189, 47 144 | 145 | # 146 | Language.MemberFunction: 184, 187, 38 147 | 148 | # 149 | Editor.Line Numbers: 251, 241, 199 150 | 151 | # 152 | Editor.Margin: default 153 | 154 | # 155 | Build.BuildError: 255, 100, 100 156 | 157 | # 158 | TreeNodeText: 200, 200, 200 159 | 160 | # 161 | TreeNodeTextActive: 255, 255, 255 162 | 163 | # 164 | Build.BuildWarning: 220, 220, 0 165 | 166 | # 167 | UI.UI Highlight: 0, 100, 200 168 | 169 | # 170 | Editor.SymbolHighlight: 40, 90, 100 171 | 172 | # 173 | Editor.Bookmark: 200, 140, 60 174 | 175 | # 176 | UI.10xOutputError: 255, 120, 120 177 | 178 | # 179 | UI.10xOutputWarning: 220, 220, 0 180 | 181 | # 182 | Search.TextMatch: default 183 | 184 | # 185 | Search.HighlightLineColour: default 186 | 187 | # 188 | Editor.Find.Brace/Bracket Highlight: default 189 | 190 | # 191 | Editor.Find.Bracket Highlight: default 192 | 193 | # 194 | Editor.Breakpoint: 255, 0, 0 195 | 196 | # 197 | Editor.Whitespace: default 198 | 199 | # 200 | Editor.IndentLine: default 201 | 202 | # 203 | UI.SearchHighlight: default 204 | 205 | # 206 | Editor.AutocompleteBackColour: default 207 | 208 | # 209 | Editor.AutocompleteForeColour: default 210 | 211 | # 212 | Editor.AutocompleteBorderColour: default 213 | 214 | # 215 | Editor.HoverBoxBackColour: default 216 | 217 | # 218 | Editor.HoverBoxForeColour: default 219 | 220 | # 221 | Editor.HoverBoxBorderColour: default 222 | 223 | # 224 | Language.DefinedOut: 140, 140, 140 225 | 226 | # 227 | Editor.VerticalRulers: default 228 | 229 | # 230 | UI.UI Selected Item: 42, 115, 193 231 | 232 | # 233 | UI.UI Selected Text: 65, 96, 130 234 | 235 | # 236 | UI.LogoBack: default 237 | 238 | # 239 | UI.LogoFore: default 240 | 241 | # 242 | UI.WorkspaceTreeNode: default 243 | 244 | # 245 | UI.WorkspaceTreeNodeBorder: 0, 0, 0 246 | 247 | # 248 | UI.ActiveWorkspaceTreeNodeBorder: 255, 255, 255 249 | 250 | # 251 | UI.ActiveWorkspaceTreeNode: 100, 100, 120 252 | 253 | # 254 | UI.SourceFileTreeNode: 120, 170, 240 255 | 256 | # 257 | UI.HeaderFileTreeNode: 80, 120, 170 258 | 259 | # 260 | UI.MiscFileTreeNode: 255, 255, 255 261 | 262 | # 263 | UI.FolderTreeNode: 255, 219, 79 264 | 265 | # 266 | 10x.Setting.Name: 128, 162, 236 267 | 268 | # 269 | 10x.Setting.True: 255, 255, 255 270 | 271 | # 272 | 10x.Setting.False: 255, 0, 0 273 | 274 | # 275 | Html.ElementName: 247, 191, 120 276 | 277 | # 278 | Html.AttributeName: 193, 145, 255 279 | 280 | # 281 | Html.String: 102, 195, 204 282 | 283 | # 284 | Html.Operator: 200, 200, 200 285 | 286 | # 287 | Language.Heading: 255, 128, 0 288 | 289 | # 290 | Language.Bold: 120, 180, 255 291 | 292 | # 293 | Language.Italic: 255, 255, 0 294 | 295 | # 296 | Language.Blockquote: 255, 200, 170 297 | 298 | # 299 | Language.ListItem: 255, 255, 160 300 | 301 | # 302 | Language.Link: 100, 100, 255 303 | 304 | # 305 | Language.CodeBlock: 150, 255, 255 306 | 307 | # 308 | Language.Custom1: 114, 216, 220 309 | 310 | # 311 | Language.Custom2: 255, 140, 0 312 | 313 | # 314 | Language.Custom3: 255, 211, 112 315 | 316 | # 317 | Language.Custom4: 111, 216, 91 318 | 319 | # 320 | Language.Custom5: 94, 115, 255 321 | 322 | # 323 | Language.Custom6: 214, 97, 216 324 | 325 | # 326 | Language.Custom7: 96, 153, 214 327 | 328 | # 329 | Language.Custom8: 172, 211, 95 330 | 331 | # 332 | Language.Custom9: 154, 197, 209 333 | 334 | # 335 | Language.Custom10: 214, 113, 113 336 | 337 | # 338 | 10x.Setting.Keyword: 173, 235, 150 339 | # Line endings 340 | Editor.LineEndings: default 341 | 342 | # Collapse/expand buttons 343 | Editor.CollapseExpandButton: default 344 | 345 | # Color of the selected line in search results 346 | UI.SelectedSearchResultLine: default 347 | 348 | # Color of the find match results in the scroll bar 349 | UI.ScrollBarFindMatchHighlight: default 350 | 351 | # Color of the current word match results in the scroll bar 352 | UI.ScrollBarWordMatchHighlight: default 353 | 354 | # Brace/bracket colour at depth 1 355 | Editor.BraceDepth1: default 356 | 357 | 358 | # Brace/bracket colour at depth 2 359 | Editor.BraceDepth2: default 360 | 361 | 362 | # Brace/bracket colour at depth 3 363 | Editor.BraceDepth3: default 364 | 365 | 366 | # Brace/bracket colour at depth 4 367 | Editor.BraceDepth4: default 368 | 369 | 370 | # Brace/bracket colour at depth 5 371 | Editor.BraceDepth5: default 372 | 373 | 374 | # Brace/bracket colour at depth 6 375 | Editor.BraceDepth6: default 376 | 377 | 378 | -------------------------------------------------------------------------------- /ColorSchemes/GruvboxDark.10x_settings: -------------------------------------------------------------------------------- 1 | # 10x version of the gruvbox theme github.com/morhetz/gruvbox 2 | # It's not a perfect adaptation but it does try to stick to the gruvbox dark colour palette where possible. 3 | # Works better with a lower font gamma in settings 4 | 5 | # Format: : 6 | # Setting name must appear at start of line and there must be whitespace after the colon. 7 | 8 | # 9 | UI.UI: 60, 56, 54 10 | 11 | # 12 | UI.UI Text: 251, 241, 199 13 | 14 | # 15 | UI.Menu: 60, 56, 54 16 | 17 | # 18 | UI.Menu (highlighted): 180, 120, 40 19 | 20 | # 21 | UI.Menu (selected): 115, 90, 70 22 | 23 | # 24 | UI.App Border (active): 130, 115, 0 25 | 26 | # 27 | UI.App Border (inactive): 66, 66, 69 28 | 29 | # 30 | UI.Panels.Active Tab: 80, 80, 80 31 | 32 | # 33 | UI.Panels.Active Tab Text: 251, 241, 199 34 | 35 | # 36 | UI.Panels.Inactive Tab Text: 251, 241, 199 37 | 38 | # 39 | UI.Panels.Inactive Tab: 40, 40, 40 40 | 41 | # 42 | UI.Panels.Scrollbar Background: 40, 40, 40 43 | 44 | # 45 | UI.Panels.Scrollbar Bar: 60, 56, 54 46 | 47 | # 48 | UI.Panels.Scrollbar Bar (hover): 235, 219, 178 49 | 50 | # 51 | UI.Panels.Scrollbar Bar (drag): 235, 219, 178 52 | 53 | # 54 | UI.Panels.MapScrollbar Bar: 251, 241, 199 55 | 56 | # 57 | Editor.Text: 251, 241, 199 58 | 59 | # 60 | Editor.Background: 40, 40, 40 61 | 62 | # 63 | Editor.Cursor: 255, 255, 200 64 | 65 | # 66 | Editor.Current Line: 50, 48, 47 67 | 68 | # 69 | Editor.Selection Back: 102, 92, 84 70 | 71 | # 72 | Editor.Selection Fore: default 73 | 74 | # 75 | Editor.Find.Text Highlight: 95, 88, 25 76 | 77 | # 78 | Editor.Rename Symbol Back: 69, 133, 136 79 | 80 | # 81 | Editor.Rename Symbol Fore: 251, 241, 199 82 | 83 | # 84 | Language.Text: 235, 219, 178 85 | 86 | # 87 | Language.Background: 40, 40, 40 88 | 89 | # 90 | Language.Number: 211, 134, 155 91 | 92 | # 93 | Language.Keyword: 251, 73, 52 94 | 95 | # 96 | Language.Preprocessor: 142, 192, 124 97 | 98 | # 99 | Language.Comment: 146, 131, 116 100 | 101 | # 102 | Language.Brace: 235, 219, 178 103 | 104 | # 105 | Language.Bracket: 235, 219, 178 106 | 107 | # 108 | Language.SquareBracket: 235, 219, 178 109 | 110 | # 111 | Language.SemiColon: 235, 219, 178 112 | 113 | # 114 | Language.Operator: 235, 219, 178 115 | 116 | # 117 | Language.String: 184, 187, 38 118 | 119 | # 120 | Language.Comma: 235, 219, 178 121 | 122 | # Optional class colour coding 250, 189, 47 123 | Language.Class: 235, 219, 178 124 | 125 | # 126 | Language.Function: 184, 187, 38 127 | 128 | # 129 | Language.Enum: 255, 218, 130 130 | 131 | # 132 | Language.Enum Value: 255, 232, 199 133 | 134 | # 135 | Language.Variable: 235, 219, 178 136 | 137 | # 138 | Language.MemberVariable: 235, 219, 178 139 | 140 | # 141 | Language.Namespace: 235, 219, 178 142 | 143 | # 144 | Language.Typedef: 250, 189, 47 145 | 146 | # 147 | Language.Type: 250, 189, 47 148 | 149 | # 150 | Language.MemberFunction: 184, 187, 38 151 | 152 | # 153 | Editor.Line Numbers: 100, 100, 100 154 | 155 | # 156 | Editor.Margin: default 157 | 158 | # 159 | Build.BuildError: 255, 100, 100 160 | 161 | # 162 | TreeNodeText: 200, 200, 200 163 | 164 | # 165 | TreeNodeTextActive: 255, 255, 255 166 | 167 | # 168 | Build.BuildWarning: 220, 220, 0 169 | 170 | # 171 | UI.UI Highlight: 200, 140, 0 172 | 173 | # 174 | Editor.SymbolHighlight: 80, 90, 69 175 | 176 | # 177 | Editor.Bookmark: 200, 140, 60 178 | 179 | # 180 | UI.10xOutputError: 255, 120, 120 181 | 182 | # 183 | UI.10xOutputWarning: 220, 220, 0 184 | 185 | # 186 | Search.TextMatch: default 187 | 188 | # 189 | Search.HighlightLineColour: default 190 | 191 | # 192 | Editor.Find.Bracket Highlight: 128, 82, 60 193 | 194 | # 195 | Editor.Breakpoint: 255, 0, 0 196 | 197 | # 198 | Editor.Whitespace: default 199 | 200 | # 201 | Editor.IndentLine: default 202 | 203 | # 204 | UI.SearchHighlight: 95, 88, 25 205 | 206 | # 207 | Editor.AutocompleteBackColour: default 208 | 209 | # 210 | Editor.AutocompleteForeColour: default 211 | 212 | # 213 | Editor.AutocompleteBorderColour: default 214 | 215 | # 216 | Editor.HoverBoxBackColour: default 217 | 218 | # 219 | Editor.HoverBoxForeColour: default 220 | 221 | # 222 | Editor.HoverBoxBorderColour: default 223 | 224 | # 225 | Language.DefinedOut: 140, 140, 140 226 | 227 | # 228 | Editor.VerticalRulers: default 229 | 230 | # 231 | UI.UI Selected Item: 156, 109, 0 232 | 233 | # 234 | UI.UI Selected Text: 130 100, 65 235 | 236 | # 237 | UI.LogoBack: default 238 | 239 | # 240 | UI.LogoFore: default 241 | 242 | # 243 | UI.WorkspaceTreeNode: 140, 128, 100 244 | 245 | # 246 | UI.ActiveWorkspaceTreeNode: 120, 114, 100 247 | 248 | # 249 | UI.WorkspaceTreeNodeBorder: 0, 0, 0 250 | 251 | # 252 | UI.ActiveWorkspaceTreeNodeBorder: 255, 255, 255 253 | 254 | # 255 | UI.SourceFileTreeNode: 240, 198, 120 256 | 257 | # 258 | UI.HeaderFileTreeNode: 170, 140, 80 259 | 260 | # 261 | UI.MiscFileTreeNode: 255, 255, 255 262 | 263 | # 264 | UI.FolderTreeNode: 255, 219, 79 265 | 266 | # 267 | 10x.Setting.Name: 255, 223, 164 268 | 269 | # 270 | 10x.Setting.True: 131, 227, 75 271 | 272 | # 273 | 10x.Setting.False: 240, 95, 34 274 | 275 | # 276 | Html.ElementName: 247, 191, 120 277 | 278 | # 279 | Html.AttributeName: 193, 145, 255 280 | 281 | # 282 | Html.String: 102, 195, 204 283 | 284 | # 285 | Html.Operator: 200, 200, 200 286 | 287 | # 288 | Language.Heading: 255, 128, 0 289 | 290 | # 291 | Language.Bold: 255, 170, 120 292 | 293 | # 294 | Language.Italic: 255, 255, 0 295 | 296 | # 297 | Language.Blockquote: 255, 200, 170 298 | 299 | # 300 | Language.ListItem: 255, 255, 160 301 | 302 | # 303 | Language.Link: 255, 128, 100 304 | 305 | # 306 | Language.CodeBlock: 255, 194, 150 307 | 308 | # 309 | Language.Custom1: 220, 174, 114 310 | 311 | # 312 | Language.Custom2: 255, 140, 0 313 | 314 | # 315 | Language.Custom3: 255, 211, 112 316 | 317 | # 318 | Language.Custom4: 216, 170, 91 319 | 320 | # 321 | Language.Custom5: 255, 164, 94 322 | 323 | # 324 | Language.Custom6: 216, 168, 97 325 | 326 | # 327 | Language.Custom7: 96, 153, 214 328 | 329 | # 330 | Language.Custom8: 214, 163, 96 331 | 332 | # 333 | Language.Custom9: 209, 187, 154 334 | 335 | # 336 | Language.Custom10: 214, 113, 113 337 | 338 | # 339 | 10x.Setting.Keyword: 235, 221, 150 340 | 341 | # 342 | Editor.LineEndings: default 343 | 344 | # 345 | UI.SelectedSearchResultLine: 60, 56, 54 346 | 347 | # 348 | Editor.CollapseExpandButton: default 349 | 350 | # 351 | UI.ScrollBarFindMatchHighlight: default 352 | 353 | # 354 | UI.ScrollBarWordMatchHighlight: default 355 | 356 | # Brace/bracket colour at depth 1 357 | Editor.BraceDepth1: default 358 | 359 | 360 | # Brace/bracket colour at depth 2 361 | Editor.BraceDepth2: default 362 | 363 | 364 | # Brace/bracket colour at depth 3 365 | Editor.BraceDepth3: default 366 | 367 | 368 | # Brace/bracket colour at depth 4 369 | Editor.BraceDepth4: default 370 | 371 | 372 | # Brace/bracket colour at depth 5 373 | Editor.BraceDepth5: default 374 | 375 | 376 | # Brace/bracket colour at depth 6 377 | Editor.BraceDepth6: default 378 | 379 | 380 | # Debugger step line 381 | Editor.DebuggerStepLine: default 382 | 383 | 384 | # Status bar line colour while debugging 385 | Editor.DebuggingStatusBarColour: default 386 | 387 | 388 | # Status bar colour 389 | Editor.StatusBarColour: default 390 | 391 | 392 | # Status bar text colour 393 | Editor.StatusBarTextColour: 251, 241, 199 394 | --------------------------------------------------------------------------------