All notable changes to this project will be automatically documented in this file.
[1.8.15] - 2025-09-30
cccfe90Update outdatedbiome_rc.json(closes #77 Thanks @MatthiasPortzel)
[1.8.14] - 2025-07-13
[1.8.13] - 2025-07-11
0fe9deaAdd setting option"selection_formatting"to ignore selections (closes #75 Thanks @schwartzman)
b9e3024Minor import reordering
[1.8.12] - 2025-07-09
d51d91eRemove the auto-switch to single layout when the last view is closed (closes #71 Thanks @ivanionut)
[1.8.11] - 2025-07-06
bef72f2Use user's locale setting for thousands separator in wcounter (closes #72 Thanks @davidmarble)
[1.8.10] - 2025-04-22
b714be2Remove obsolete github action file
[1.8.9] - 2025-01-30
637c998Minor improvements
647692cAddnpm-groovy-lintto support Groovy and Gradle (closes #68 Thanks @karma-sun)
[1.8.8] - 2024-12-07
4d9cf87"--mode"flag ofsfx2asmandsfx2disasmaccepts multiple values separated by commas, e.g"--mode", "arm,thumb"
[1.8.7] - 2024-12-05
8812961Fixasm.mjsanddisasm.mjsvalidation
8b7417fUpdate stone lib
[1.8.6] - 2024-11-28
1f00a04Addsfdisasmdisassembler for ARM, ARM64, X86 arche22b6b8Addsfx4asmassembler for ARM, ARM64, X86 arch
ade7413Add more screenshotsaae0ca0Renamesfdisasmtosfx4disasmb016da1Renamesfx4asmtosfx2asmandsfx4disasmtosfx2disasmf64e29dUpdate README.md
[1.8.5] - 2024-11-24
b8e25b3Fixstunixtimestampenctimezone offset
a3a1fa2Add new flags tosfunixtimestampfor more customizability and flexibility6e27e95Update README.md64769bcUpdateFormatter.sublime-settingsfd418dcUpdatesfunixtimestamp
[1.8.4] - 2024-11-18
[1.8.3] - 2024-11-15
7edb500Fix Session Manger on ST startup
[1.8.2] - 2024-11-03
8ce3e98Add converterssfx2diacritics,sfunixtimestampenc,sfunixtimestampdec
c4372dbAdddateutilfrom https://labix.org/download/python-dateutil/python-dateutil-2.0.tar.gz0411667Improve log status message89adb94Setdateutilas the protected lib
[1.8.1] - 2024-11-02
203b347Add convertersfextractemailaddr,sfextractipaddr,sfextractmacaddr,sfextracturls,sfextractfilepaths,sfextractdates
a19b3bcFixparse_args()
c2405beAdd args flag"--direct_encode"tosfromannumeralencand"--direct_decode"tosfromannumeraldec2f76731Changesfx2randpassflag"--separator_in_range"to"--separator_every"f382d00Update README.md
[1.8.0] - 2024-10-31
751e73aAdd converterssfregexescape,sfregexunescape,sfstringescape,sfstringunescapef605c46Add converterssfx2uuid,sfx2randpass
[1.7.8] - 2024-10-29
1d1da7fAdd a new flag"---convert_all_chars"tosfhtmlentitizeb819478Add a new flag"--use_custom_text"tosfloremipsumuse text in your language from view (e.g. Chinese)0506c0eAdd converterssfbaseenc,sfbasedec,sfbase16enc,sfbase16dec,sfbase32enc,sfbase32dec,sfbinaryenc,sfbinarydec,sfcharcodeenc,sfcharcodedec,sfdecimalenc,sfdecimaldec,sfoctalenc,sfoctaldeca5f0e23Add converterssfhtmlstriptags,sfbrailleenc,sfbrailledec,sfquotedprintableenc,sfquotedprintabledec,sflzmacompress,sflzmadecompress,sfgzipcompress,sfgzipdecompress96ac9d9Add converterssfromannumeralenc,sfromannumeraldec
5a52080Change decodeutf-8toasciiforsfbase*enc4e1e11dMinor log message updateeefac3dMinor update9f5c16bMove constants to class level81849fdSet default--separatorvalue if the flag is None or empty7e41b50Strip whitespaces from encoded input text661d971Strip whitespaces in base encoded input
[1.7.7] - 2024-10-26
4c1e3ecAddsfx2loremipsum0d2123dAdd converterssfpunycodeencandsfpunycodedec933c140Add converterssfx2hexdump,sfhexdump2str,sfx2htmlentitize,sfx2htmldeentitize,sfx2unicodeescape,sfx2unicodeunescape
4b832fdSkip invalid characters forsfhexdump2str
8fc712cAddparse_args(convert=False)507423eRename some converterssf*e6c1cd0Updatesf*converters
[1.7.6] - 2024-10-24
ef1959cAdd convertersfx2crc32to the supported plugins0889bdaAdd convertersfx2hex,sfhex2str,sfx2md5,sfx2sha1,sfx2sha256,sfx2sha512,sfx2sha3256,sfx2sha3512,sfx2shake256,sfx2shake512to the supported plugins
3aa5575Addargsoption with paramlowerto convertersstx*b9470dbAdd convertersfx2uriencandsfx2uridecto the supported pluginsfe2ededChangeValueErrortoExceptionb31ec69UpdateFormatter.sublime-settingwithout the "new_file_on_format" option
[1.7.5] - 2024-10-22
f9ad7c5Addsfx2base64encandsfx2base64decto the supported plugins
84b9cddAdd wildcard"*"to "syntaxes" and "exclude_syntaxes" options to accept any syntaxb062a91Change uid pattern fromyjto...toyj2...andyqto...toyq2...
[1.7.4] - 2024-10-21
a939f77Addyjas converter to the supported plugins foryjxtoyaml,yjxtojson,yjxtotoml,yqxtohcld9697c5Add support forUser Project Config Dotfilewith file pattern.sf+uid+rc, @see README.md > Per-project Formatting
9ddad49Fixjsonmaxandyamlmax
[1.7.3] - 2024-10-20
bbd38b9Addyamlmax(build-in) to supported plugins2c7f09cAddyqas converter to the supported plugins foryqxtobase64,yqxtocsv,yqxtojson,yqxtolua,yqxtoprops,yqxtoshell,yqxtotoml,yqxtotsv,yqxtouri,yqxtoxml,yqxtoyaml455b7f4(jsonmax) Add new options:"item_separator","key_separator","brace_newline","bracket_newline","array_bracket_spacing","keep_arrays_single_line","max_arrays_line_length"
debcd33Fix the unpacked*operator for ST3
da5c40fAddyamlfmtto the supported plugins26b4312(console) Add dict to command type5cfed1f(ci) Disable name convention check1aa4350Removemodulesfrom.isort.cfg9a88d7fUpdate PyYAML to 7.0.0.dev0 with YAML 1.2 support
[1.7.2] - 2024-10-16
b93d14eRevert to the initial code (closes #67) Thanks @karma-sun
3b4cf45(console) Add rule to match content inside double quote686f576Omit"interpreter_path"in cmd as files in/node_modules/.bin/(.cmd,.sp1)already point to node
[1.7.1] - 2024-10-13
70eddc7Add"dotfiles"and"df_ident"options to auto detect local config dotfiles9b77790Addblade-formattermodule
f1a5aeb(ci) Add naming convention checkec76b59Rename modules to CamelCase8f87f20Update.markdownlint.yml7a8a049Reformat ci
[1.7.0] - 2024-10-10
42d710e(console) Add match traceback logs
3f73602(eslint) Add more dotfiles9ed37ebChange to prioritize local config dotfiles over user-specifiedconfig_path413163eRe-order DOTFILES items8e13b3d(eslint) Remove package.json from DOTFILES
[1.6.11] - 2024-10-06
b3df71bAdd traceback logs support
7307e04Code improvements and optimizations98c9189Removeself.remove_tmp_file(tmp_file)in favor of the new methodself.create_tmp_file(autodel=True)11b8a5eRemove redundant import
[1.6.10] - 2024-10-03
47ec88eFix auto format chain in new file on format mode69b5b41Fix to use buffer instead of file to work with auto format chain
64bd6f6Enhance Quick Options logic01f72efOnly update the target view when the scroll position actually changes40fe3a5Update README.md
[1.6.9] - 2024-09-29
[1.6.8] - 2024-09-27
f582cd1Ensureformat_on_saveandformat_on_pasteare respected after anauto_formatnoop
496d157Code enhancements
2c9ef8aMinor updateb5edbd5MovePROJECT_CONFIGandSUBLIME_PREFERENCESto the unique dataclassDataHandler3e5e20aSmall logic refinementdc39ba2Update CI
[1.6.7] - 2024-09-25
48d3efaAdd support forauto-detect formattingto chain multiple formatters in a single run
6fce565Add the missing key-value function params to skip format_on_save and format_on_pasteeb60de2Fix isort args
163af36Add .isort.cfgc72b407Minor typoca62492Minor update26e4b6bMoveAUTO_FORMAT_ACTION_KEYto the unique dataclassDataHandler132d70bTidy code
[1.6.6] - 2024-09-16
1f35b92Force importing modules to load fresh version instead of cached one
73ef0d2Reorganize imports
91728dcRe-enable support foreslint_das the upstream bug with ESLint v9+ seems to be fixeddf17fd7Update
[1.6.5] - 2024-09-13
dca16d9Refactor import statement
5250e6eRemove redundant threading.Lock() on TextCommand2c9eb18Update to avoid using__init__in EventListener
[1.6.4] - 2024-09-11
[1.6.3] - 2024-09-08
16b3eceFix dir format to correctly handle excluded item types3c0a08cResolve cursor jumping issue on save caused by'ensure_newline_at_eof_on_save'ST setting
f192f90Change to useperf_counter()instead oftime()to measure time4b59d20Minor updatec13bbd2Reorder of executable/interpreter detection
[1.6.2] - 2024-09-04
1a50cc2Cosmetic enhancements π
[1.6.1] - 2024-09-02
08b372aMinor fix temp_dir path
72cae5fRevise and enhance code for better performance and efficiency
[1.6.0] - 2024-08-30
8db25e6Various fixes for ST3
0cf7a18Optimize InstanceManagereb30cb5Optimize with singleton decorator to reuse instances037b40cRemoveInstanceManagerin favor ofClassManagerand Singleton design pattern
[1.5.22] - 2024-08-27
a28237eRefactor word counter to limit to max. 1.000.000 chars
8565f9fIncrease word counter max. chars to6.000.000chars β 1.000.000 words (6MB)e7f5e2cOptimize code
[1.5.21] - 2024-08-24
4235a72Add settings option"file_chars_limit"
3ca630aOptimize words counter
[1.5.20] - 2024-08-22
2340edeFix the broken changelog as unescaped HTML characters were mistakenly interpreted as HTML tags
6d547a6AddModuleMetametaclass for module-specific configuration enforcement123a61dChange vars to lower case
[1.5.19] - 2024-08-21
b86663fAdd more styles to the activity indicator35a087dRemove potential carriage return character<0x0d>in subprocess stderr on Windows (ref #54)fb566afUse signal to kill subprocess
[1.5.18] - 2024-08-16
93a18deImprove text file detectionc7ba061Show progress indicator if formatting takes longer than 1s1bb48e3Temporarily disable smanager and wcounter while performing dir formatting132c874Isort imports
[1.5.17] - 2024-08-11
913f15aAdd settings option"clear_console"to clear all previous console messages, for ST4088+ only
f307122Fix issue where dot files config for auto-formatting is not being respected
f0f7233Return the auto format config as soon as the first dot file is found
[1.5.16] - 2024-08-09
4e3708aSuspend formatting status when there is no operation
[1.5.15] - 2024-08-09
d2f26c0Add"exclude_syntaxes": []to"format_on_save"and"format_on_paste"to use regular3992334Add"exclude_syntaxes": []to"format_on_save"and"format_on_paste"to use withAuto Format File
297e913Update README.mde17b170Auto_format setting items can now be a type string"auto_format": {{"json": "jsbeautifier"}}or a dictionary"auto_format": {{"json": {"uid": "jsbeautifier"}}}
[1.5.14] - 2024-08-07
9f9cbc1Change settings option name from"recursive_folder_format"to"dir_format";"dir_format"can now exclude specific dirs, files, extensions and syntaxes using:"exclude_dirs_regex","exclude_files_regex","exclude_extensions_regex","exclude_syntaxes"in configd0a0117"format_on_save","format_on_paste"andauto format filecan now exclude specific dirs, files and extensions using:"exclude_dirs_regex","exclude_files_regex","exclude_extensions_regex"in config
e3c2daf(prettier) Fix OSError: [WinError 193] %1 is not a valid Win32 application. On Windows, shortcuts (symbolic links) are not considered application by subprocess (closes #62)
4e3d27f(prettier) Add'prettier.cmd'toEXECUTABLESlist7d2f09fAdd line break toprint_oserr()67afd6fImproveprint_oserr()with more details (ref #62)
[1.5.13] - 2024-08-04
876b5c5Add markdownlint99deeecPolish sublime-settings file91a78d2Update README.md6c8bce6Update ci
[1.5.12] - 2024-08-03
7b4e813Add the ability to stop the"recursive_folder_format"process by pressing any arrow key (up, down, left, or right) on your keyboard
357d1ccUpdate README.md
53d2841Remove all threading-related logic to dir formatting59b3e39Rename file and dir formatting classes91d4796Shorten some debug messages
[1.5.11] - 2024-08-01
5cb019aCmd item can be empty string
50f29b5Addcollapse_setting_sections_commandforFormatter.sublime-settings3b811b2Ensure sync scroll listener is terminated1506b1dImprove deprecated option warning messages991cac0Refactor code to conform to flake8 standards923a7a7Updatedb4efd0Update GitHub workflows
[1.5.10] - 2024-07-29
3b8da99Exclude dirs starting with '.' or '_', such as '__MACOSX', which might contain incorrect custom module files when creating ZIP archives
[1.5.9] - 2024-07-29
fb2004fReplacesubprocess.run()withsubprocess.Popen()to work with py33
90bf5baTypo
[1.5.8] - 2024-07-28
63dbd99Add signature verification for remote custom modules archive files
385a924Add"ca_cert":option to the custom modules manifest to use the optional CA Certificate7685080Addcheck_deprecated_options()decorator to warn user about using obsolete settings optionse14eb80Improve downloads folder detection
[1.5.7] - 2024-07-27
7a160a5Adddeprecated()decorator to auto deactivate methods on time0bef7c4Add delay flag toretry_on_exception()decoratorfdf772dConvert some instance methods to class methods36b1543Deprecatedfix_cmd()in favor oftransform_args()decoratorc9a372aDeprecatedis_valid_cmd()in favor ofvalidate_args()decoratora572a67Improveretry_on_exception()logic to avoid circular calls oncls.build_config(settings)eeb40d7Replacebuild_config()exception withretry_on_exception()decorator700c49dTypob6b34adUpdate README.md
[1.5.6] - 2024-07-25
247a606Fix getLogger arg3d2a29dFix multi project configurations not reloading (closes #60, closes #61) Thanks @husanjun
[1.5.5] - 2024-07-23
[1.5.4] - 2024-07-22
15abbcdAdd the missing coloncab37fcCreate temp file in the temp file system instead of cwd (closes #58) Thanks @husanjun042df96Fix obsolete import from common
694094aAuto remove.customif fetching custom modules data failsaf16b8aImprove subprocess termination
[1.5.3] - 2024-07-21
1f2ae01Add a new setting option:"close_console_on_success":
4a4e347Fix modules reload for developer mode21bdf5fMoveInstanceManager.reset_all()to formatter.py
[1.5.2] - 2024-07-19
745221eDeprecating the"custom_modules":option in favor of"custom_modules_manifest":Custom modules can now be used both locally and remotely
daec479Add'[@noop](https://github.com/noop)@'uid for auto-format when no syntax is detectedb63d852Add missingself, which caused auto_format_config to be undefined (ref: #57) Thanks @the-ge1ec2de5Fixcreate_tmp_file()suffix for syntax of None`
[1.5.1] - 2024-07-16
cb3b5b5Fix reloading and importing custom modules
[1.5.0] - 2024-07-14
974da9bComplete restructuring and improvement of Formatter codebaseef2a9bbRestructuring constants0121c8aRestructuring logger
[1.4.17] - 2024-07-07
1c6009e(smanager) Fix the issue where theanimateargument was unavailable forshow_at_center()in ST3
c3e31adRelative import for logging. It may break your code, simply change it to:from .. import logand removelog = logging.getLogger(__name__)
0c42aafAdd more screenshots
84b0010Change log marker symbol from βto β
b9ebfc3Clear console for ST4088+3b8a6a8Disableremove_junk()as some π© no longer affect.gitf4d4c90Move check forprint_sysinfo()to common46f84b3Optimize importing modules
[1.4.16] - 2024-06-28
8422a57Add"print_on_console"sub option to"environ"to help setting environment
54c039f(changelog) Convert GitHub issues/pull urls to short linkse046af5(console) Minor update18c94d6Update cliff.toml to autolink to issue numbers and person mentioning7414315(uncrustify) Update config files to use with 0.79.0cf7d147(clang-format) Update config files to use with 18.1.8
[1.4.15] - 2024-06-19
0abead9(console) Add more rules to match error signs
[1.4.14] - 2024-06-18
7400461Add a new option"use_short_label"to"show_words_count"
b2af96c(console) Add rules to match path on Windows and the caret error hint symbol
7ef6149(doc) Update
[1.4.13] - 2024-06-17
2d0e202AddChangelogcommand to References and Command Palettefe73788Add console color highlighting
0aca59aAdd note to cloning to README.md
59a0e8d(graphic) Change phantom LAYOUT_BLOCK to LAYOUT_INLINEa072211Shorten package name fromFormattertoFon status bar
7c57023(git) Add SYNTAXES field to modules summaryf8e431cChange menu item name fromOpen Config FolderstoBrowser Configs0e6bbf4Minor enhancements
[1.4.12] - 2024-06-14
82c2e53(eslintd) Add note to limitations
86f1fb5AddRead Modules Summarycommand to help setting Formatter6693059Change option name from"format_on_unique"to"format_on_priority"6870fbb(git) Generate modules summary text file6b89e57Move version.py to the root4c6a6d9Remove langref1829047Update cliff.toml to include commit links
[1.4.11] - 2024-06-13
46f539eAdd a new cmd API to get interpreter and executable: get_iprexe_cmd(runtimetype=None)
6da59e4(eslintd) Disable support for Eslint v8.57.0+ using flat config files. @see: mantoni/eslint_d.js#2810e9390e(eslint) Improve version detection19a4e21Stop searching for the per-project config dotfile after a .git or .hg directory is founde4997cb(eslint) Update compatibility with both ESLint v8- and v9+ (using flat config file)097f6cd(eslint) Update version detection to v8.57.0 for supporting flat config files: eslint.config.(js|mjs|cjs)
[1.4.10] - 2024-06-12
cb06723Introduce Auto-resolve per-project config dotfile when "config_path" is disabled.
36b379f(juliaformatter) Add config DOTFILESece056b(plugins) Add config DOTFILES constant9e2f45d(juliaformatter) Add style option990f4c1Minor typo0debb25(juliaformatter) Remove redundant DOTFILES constantde47793Stop searching for the per-project config dotfile as reaching to .git or .hg dir63c85c7Update black homepage url
[1.4.9] - 2024-06-11
db6986b(plugin) Add JuliaFormatter
d05fe01Typo
403176cAdd cliff.toml to generate changelog