Oxlint v1.27.0
🚀 Features
- 222a8f0 linter/plugins: Implement
SourceCode#isSpaceBetween(#15498) (overlookmotel) - 2f9735d linter/plugins: Implement
context.languageOptions(#15486) (overlookmotel) - bc731ff linter/plugins: Stub out all
ContextAPIs (#15479) (overlookmotel) - 5822cb4 linter/plugins: Add
extendmethod toFILE_CONTEXT(#15477) (overlookmotel) - 7b1e6f3 apps: Add pure rust binaries and release to github (#15469) (Boshen)
- 2a89b43 linter: Introduce debug assertions after fixes to assert validity (#15389) (camc314)
- ad3c45a editor: Add
oxc.path.nodeoption (#15040) (Sysix)
🐛 Bug Fixes
- 6f3cd77 linter/no-var: Incorrect warning for blocks (#15504) (Hamir Mahal)
- 6957fb9 linter/plugins: Do not allow access to
Context#idincreateOnce(#15489) (overlookmotel) - 7409630 linter/plugins: Allow access to
cwdincreateOncein ESLint interop mode (#15488) (overlookmotel) - 732205e parser: Reject
using/await usingin a switchcase/defaultclause (#15225) (sapphi-red) - a17ca32 linter/plugins: Replace
Contextclass (#15448) (overlookmotel) - ecf2f7b language_server: Fail gracefully when tsgolint executable not found (#15436) (camc314)
- 3c8d3a7 lang-server: Improve logging in failure case for tsgolint (#15299) (camc314)
- ef71410 linter: Use jsx if source type is JS in fix debug assertion (#15434) (camc314)
- e32bbf6 linter/no-var: Handle TypeScript declare keyword in fixer (#15426) (camc314)
- 6565dbe linter/switch-case-braces: Skip comments when searching for
:token (#15425) (camc314) - 85bd19a linter/prefer-class-fields: Insert value after type annotation in fixer (#15423) (camc314)
- fde753e linter/plugins: Block access to
context.settingsincreateOnce(#15394) (overlookmotel) - ddd9f9f linter/forward-ref-uses-ref: Dont suggest removing wrapper in invalid positions (#15388) (camc314)
- dac2a9c linter/no-template-curly-in-string: Remove fixer (#15387) (camc314)
- 989b8e3 linter/no-var: Only fix to
constif the var has an initializer (#15385) (camc314) - cc403f5 linter/plugins: Return empty object for unimplemented parserServices (#15364) (magic-akari)
⚡ Performance
- 25d577e language_server: Start tools in parallel (#15500) (Sysix)
- 3c57291 linter/plugins: Optimize loops (#15449) (overlookmotel)
- 3166233 linter/plugins: Remove
Arcs (#15431) (overlookmotel) - 9de1322 linter/plugins: Lazily deserialize settings JSON (#15395) (overlookmotel)
- 3049ec2 linter/plugins: Optimize
deepFreezeSettings(#15392) (overlookmotel) - 444ebfd linter/plugins: Use single object for
parserServices(#15378) (overlookmotel)
📚 Documentation
- 97d2104 linter: Update comment in lint.rs about default value for tsconfig path (#15530) (Connor Shea)
- 2c6bd9e linter: Always refer as "ES2015" instead of "ES6" (#15411) (sapphi-red)
- a0c5203 linter/import/named: Update "ES7" comment in examples (#15410) (sapphi-red)
- 3dc24b5 linter,minifier: Always refer as "ES Modules" instead of "ES6 Modules" (#15409) (sapphi-red)
- 2ad77fb linter/no-this-before-super: Correct "Why is this bad?" section (#15408) (sapphi-red)
- 57f0ce1 linter: Add backquotes where appropriate (#15407) (sapphi-red)
Oxfmt v0.12.0
🚀 Features
- 3251000 oxfmt: Use
prettierdirectly and bundleprettier(#15544) (Dunqing) - 7b1e6f3 apps: Add pure rust binaries and release to github (#15469) (Boshen)
- 33ad374 oxfmt: Disable embedded formatting by default for alpha (#15402) (leaysgur)
- 5708126 formatter/sort_imports: Add
options.newlinesBetween(#15369) (leaysgur) - 2dfc3bd formatter: Remove
Tag::StartVerbatimandTag::EndVerbatim(#15370) (Dunqing) - 88c7530 formatter: Remove
FormatElement::LocatedTokenText(#15367) (Dunqing)
🐛 Bug Fixes
- d32d22e formatter: Correct
FormatElementsize check (#15461) (Dunqing) - b0f43f9 formatter: Test call difference (#15356) (Dunqing)
- 01f20f3 formatter: Incorrect comment checking logic for grouping argument (#15354) (Dunqing)
⚡ Performance
- f4b75b6 formatter: Pre-allocate enough space for the FormatElement buffer (#15422) (Dunqing)
- 5a61189 formatter: Avoid unnecessary allocation for
BinaryLikeExpression(#15467) (Dunqing) - 064f835 formatter: Optimize printing call arguments (#15464) (Dunqing)
- 29f35b2 formatter: Reuse previous indent stack in
FitsMeasurer(#15416) (Dunqing) - a6808a0 oxfmt: Use
AllocatorPoolto reuse allocator between threads (#15412) (leaysgur) - 2515045 formatter: Use CodeBuffer's built-in print_indent to print indentation (#15406) (Dunqing)
- 681607b formatter: Check the
Textto see whether it has multiple lines based on its width (#15405) (Dunqing) - b92deb4 formatter: Replace String buffer with byte-oriented CodeBuffer (#14752) (Boshen)
- 963b87f formatter: Add
text_without_whitespacefor text that can never have whitespace (#15403) (Dunqing) - f30ce4b formatter: Optimize formatting literal string (#15380) (Dunqing)
- 8f25a0e formatter: Memorize text width for
FormatElement::Text(#15372) (Dunqing) - f913543 formatter: Avoid allocation for
SyntaxTokenCowSlice(#15366) (Dunqing) - 98c9234 formatter: Optimize
FormatElement::Tokenprinting (#15365) (Dunqing)