Tools - The Rome Toolchain. A linter, compiler, bundler, and more for JavaScript, TypeScript, HTML, Markdown, and CSS.

Overview

Rome's logo depicting an ancient Roman arch with the word Rome to its side

Rome is currently being rewritten in Rust. Read more about it in our latest blog post.

The documentation below is out of date and available for posterity.

Rome is a linter, compiler, bundler, and more for JavaScript, TypeScript, JSON, HTML, Markdown, and CSS.

Rome is designed to replace Babel, ESLint, webpack, Prettier, Jest, and others.

Rome unifies functionality that has previously been separate tools. Building upon a shared base allows us to provide a cohesive experience for processing code, displaying errors, parallelizing work, caching, and configuration.

Rome has strong conventions and aims to have minimal configuration. Read more about our project philosophy.

Rome is written in TypeScript and runs on Node.js. Rome has zero dependencies, and has largely been written from scratch. See credits for more information.

Rome is MIT licensed and moderated under the Contributor Covenant Code of Conduct.

Status

The current area of focus is linting. See the umbrella task #20 for tracking.

Getting Started

To setup Rome in a project, all you need is a rome.json file.

$ mkdir hello-world
$ cd hello-world
$ rome init

This file is used to configure Rome and indicates the boundaries of your project.

See Getting Started guide for more usage instructions.

Philosophy

The project philosophy can be found on our website.

Community

Contribution and development instructions can be found in CONTRIBUTING.

Additional project coordination and real-time discussion happens on our Discord server. Remember that all activity on the Discord server is still moderated and will be strictly enforced under the project's Code of Conduct.

Comments
  • ☂️ CSS Prefix: Missing Properties

    ☂️ CSS Prefix: Missing Properties

    How To

    Below is a list of properties missing from our current css prefix implementation.

    Use ./script compiler-create-prefix [propertyName]. thanks @ematipico! This will create:

    • internal/compiler/transforms/compile/css-handler/prefix/prefixes/[propertyName].ts
    • internal/compiler/transforms/compile/test-fixtures/css-handler/prefix/[propertyName]/input.css
    • website/src/docs/css-handler/prefix/[propertyName].md

    They should all reference (using a link) at the top of their file (below imports) where the info came from. Info like: property name, special values, ...

    They should export an array of createPrefixVisitors and return a prefixCSSProperty or prefixCSSValue (covers 99% use case, if not discuss prior).

    export default [
      createPrefixVisitor({
        name: "<PROPERTY NAME>", // <PROPERTY NAME>/<VALUE NAME>
        enter(path) {
          return prefixCSSValue({
            path,
            propertyName: "<PROPERTY NAME>",
            value: "<VALUE NAME>", // Only for prefixCSSValue
            browserFeaturesKey: "<PROPERTY DATA NAME>", // From `caniuse-db`
          });
        },
      }),
      // ...
    ];
    

    Prefixes will automatically be added to the property/value.

    If some values/properties have special names (such as -moz-inline-flex being -moz-inline-box) use the rename argument as show here and here.

    Also be sure to test on https://autoprefixer.github.io/ for the same output. Don't forget to set target as > 0%. And write tests for them in internal/compiler/transforms/compile/test-fixtures/css-handler/prefix/<PROPERTY NAME>/input.css

    Examples

    display, transform, transition.

    Properties

    Any -ms- (IE) only prefixes are not needed.

    Reference: https://github.com/postcss/autoprefixer/blob/main/data/prefixes.js

    • [x] border-radius and its derivatives @magsout
    • [x] box-shadow @ajkachnic
    • [x] animation and its derivatives @magsout
    • [x] transition and its derivatives @jer3m01
    • [x] transform @jer3m01
    • [x] box-sizing @magsout
    • [ ] filter :gear: @ajkachnic
    • [ ] filter() Reserved
    • [ ] element() Reserved
    • [x] backdrop-filter @magsout
    • [x] multicolumn and its derivatives @jer3m01
    • [x] user-select @ktfth
    • [x] display @jer3m01
    • [x] flex and its derivatives :gear: @harxki
    • [ ] calc :gear: @jer3m01
    • [x] background-origin, background-size
    • [x] background-clip :gear: @luisgserrano
    • [ ] font and its derivatives
    • [ ] border-image :gear: @imskr
    • [ ] prefixed with : file called pseudo-classes
    • [ ] prefixed with :: file called pseudo-elements
    • [x] hyphens @ktfth
    • [x] tab-size @UsamaHameed
    • [x] intrinsic-width @JustBeYou
    • [x] grid and its derivatives @UsamaHameed
    • [x] cursor @ktfth
    • [x] position @magsout
    • [ ] text-decoration and its derivatives :gear: @grimxreaper
    • [x] text-size-adjust @harxki
    • [x] mask and its derivatives @ktfth
    • [x] clip-path @dctalbot
    • [x] box-decoration-break @alewin
    • [ ] object-fit, object-position :gear: @imrishabh18
    • [x] shape and its derivatives @sergeypriakhin
    • [x] text-overflow @UsamaHameed
    • [ ] prefixed with @ file called at-rules Reserved
    • [x] text-align-last @bechir
    • [x] image-rendering
    • [x] *-inline-* @ktfth
    • [x] *-block-* @ktfth
    • [x] appearance @UsamaHameed
    • [x] scroll-snap and its derivatives @UsamaHameed
    • [ ] flow-into, flow-from, region-fragment
    • [ ] list and its derivatives :gear: @UsamaHameed
    • [x] gradient and its derivatives, single file called gradient :gear: @ktfth
    • [x] writing-mode @UsamaHameed
    • [x] text-emphasis and its derivatives @ktfth
    • [ ] text-spacing :gear: @thescripted
    • [ ] unicode-bidi
    • [x] color-adjust @thescripted
    • [x] text-orientation @UsamaHameed
    • [x] image-set @ktfth

    Reserved means a rule isn't easy to implement and is reserved to be worked on by the team. A ⚙️ indicates they are being worked on. A checkmark indicates an open PR.

    If any are missing, don't hesitate to comment! & Thanks for all contributions! 💛

    (note to myself) once complete, recheck the reference for any missed ones & reduce test sizes

    good first issue umbrella L-CSS A-Compiler 
    opened by jer3m01 76
  • ☂️ [PAUSED] React lint rules

    ☂️ [PAUSED] React lint rules

    This issue serves to discuss what React rules we should have in Rome. Ideally these rules would be blessed by the React team.

    What rules do you think are the most important? Keep in mind that Rome does not allow disabling lint rules. You can only suppress them. The React rules will not be an exception. Rome allows AST autofixes which drastically simplifies the existence of many lint rules by allowing them to be automatically fixed, and with the Rome review system, unsafe suggestions are also easily added and amended.

    umbrella A-linter 
    opened by sebmck 58
  • Logo

    Logo

    The current logo is OK but it would be nice to have something a lot simpler. It was created with an SVG I purchased which was modified with illustrator and the lines smoothed out and color with shading added.

    A-Design 
    opened by sebmck 57
  • Implement ESLint rules

    Implement ESLint rules

    Followed is a list of ESLint rules that we should implement.

    • [X] enforce return statements in getters (getter-return) #129
    • [X] disallow using an async function as a Promise executor (no-async-promise-executor) #101
    • [X] disallow comparing against -0 (no-compare-neg-zero) #106
    • [X] disallow assignment operators in conditional expressions (no-cond-assign) #116
    • [X] disallow the use of debugger (no-debugger) #103
    • [X] disallow duplicate arguments in function definitions (no-dupe-args) #99
    • [X] disallow duplicate keys in object literals (no-dupe-keys) #98
    • [X] disallow a duplicate case label (no-duplicate-case) #100
    • [X] disallow empty character classes in regular expressions (no-empty-character-class) #135
    • [x] disallow reassigning exceptions in catch clauses (no-ex-assign) @weblancaster
    • [x] disallow unnecessary boolean casts (no-extra-boolean-cast) @zinyando
    • [X] disallow reassigning function declarations (no-func-assign) #130
    • [X] disallow assigning to imported bindings (no-import-assign) #118
    • [x] disallow variable or function declarations in nested blocks (no-inner-declarations) @tatchi
    • [x] disallow invalid regular expression strings in RegExp constructors (no-invalid-regexp) @KevinKelbie
    • [X] disallow multiple spaces in regular expression literals (no-regex-spaces) #121
    • [x] disallow returning values from setters (no-setter-return) @torifat
    • [x] disallow sparse arrays (no-sparse-arrays) #91
    • [x] disallow unreachable code after return, throw, continue, and break statements (no-unreachable) @JayaKrishnaNamburu
    • [X] disallow control flow statements in finally blocks (no-unsafe-finally) #117
    • [x] disallow negating the left operand of relational operators (no-unsafe-negation) #89
    • [X] disallow template literal placeholder syntax in regular strings (no-template-curly-in-string) #112
    • [X] disallow deleting variables (no-delete-var) #95
    • [X] disallow labels that are variable names (no-label-var) #102
    • [x] disallow shadowing of restricted names (no-shadow-restricted-names) @mattsjones
    • [X] suggest template literals instead of string concatenation (prefer-template) #138
    • [X] (disallow-var) #107

    Please comment if you want to work on one of these and I'll mark you to avoid duplicating work. Mentions next to rules indicate that someone else is working on it. If a PR isn't opened within a few days then it will be up for grabs.

    A checkmark indicates an open PR.

    opened by sebmck 42
  • ☂️ Linting

    ☂️ Linting

    The current area of focus for Rome is linting. This is the path of least resistance for finishing a part of Rome that can be used most easily.

    With diagnostics #3 the lints that Rome can produce will be more detailed than any other existing JS linter. The most difficult part of this will be editor integration and writing a set of lint rules.

    One large question is how we handle configuration. Are we going to take an opinionated stance and have some lints non-configurable? Will we have plugins?

    opened by sebmck 38
  • ☂️ Implement Regex Rules

    ☂️ Implement Regex Rules

    Followed is a list of ESLint rules that we should implement.

    • [x] groupopen Unmatched opening parenthesis.
    • [x] groupclose Unmatched closing parenthesis.
    • [x] setopen Unmatched opening square bracket. Example @baryla #176
    • [x] rangerev Range values reversed. Start char code is greater than end char code.
    • [x] quanttarg Invalid target for quantifier. @CaffeinateOften #189
    • [x] quantrev Quantifier minimum is greater than maximum. @KevinKelbie ~~#179~~ #249
    • [x] esccharopen Dangling backslash. @diokey ~~#181~~ #218
    • [ ] esccharbad Unrecognized or malformed escape character. @ParkourKarthik
    • [ ] esccharbad Invalid escape sequence. @ParkourKarthik
    • [ ] unicodebad Unrecognized unicode category or script. @zinyando
    • [ ] posixcharclassbad Unrecognized POSIX character class. @wgardiner
    • [ ] posixcharclassnoset POSIX character class must be in a character set. @wgardiner
    • [ ] notsupported The "{{~getLabel()}}" feature is not supported in this flavor of RegEx.
    • [x] extraelse Extra else in conditional group. @zinyando #170
    • [x] unmatchedref Reference to non-existent group "{{name}}". @diokey #197
    • [x] modebad Unrecognized mode flag "{{errmode}}". @macovedj #195
    • [ ] badname Group name can not start with a digit. @tatchi
    • [x] dupname Duplicate group name. @tatchi #166
    • [ ] branchreseterr Branch Reset. Results will be ok, but RegExr's parser does not number branch reset groups correctly.
    • [ ] timeout The expression took longer than 250ms to execute.
    • [ ] jsfuture The "{{~getLabel()}}" feature may not be supported in all browsers.
    • [ ] infinite The expression can return empty matches, and may match infinitely in some use cases. @1ntEgr8
    • [ ] ~~fwdslash Unescaped forward slash. This may cause issues if copying/pasting this expression into code.~~

    Please comment if you want to work on one of these and I'll mark you to avoid duplicating work. Mentions next to rules indicate that someone else is working on it. If a PR isn't opened within a few days then it will be up for grabs.

    A checkmark indicates an open PR.

    A reference implementation of these features can be found here

    umbrella 
    opened by Kelbie 37
  • ☂️ CSS support

    ☂️ CSS support

    We already have the basis of a CSS formatter that @bitpshr has built out. Not sure how much more work needs to go into supporting additional syntax and testing.

    Linting

    What sort of rules do we want? https://stylelint.io/ and https://postcss.org/ would be good references.

    help wanted umbrella L-CSS 
    opened by sebmck 33
  • ☂️ Missing Tests

    ☂️ Missing Tests

    List of all missing tests that need to be done.

    • [x] ast-utils/removeLoc.ts
    • [x] codec-js-regexp/index.ts
    • [x] codec-source-map/ArraySet.ts @nt591
    • [x] codec-source-map/base64.ts
    • [x] codec-source-map/MappingList.ts
    • [x] codec-source-map/SourceMapConsumer.ts
    • [x] codec-source-map/SourceMapConsumerCollection.ts
    • [x] codec-source-map/SourceMapGenerator.ts
    • [x] js-ast-utils/assertMultipleNodes.ts @aravind1078
    • [x] js-ast-utils/assertSingleNode.ts @aravind1078
    • [x] js-ast-utils/assertSingleOrMultipleNodes.ts @aravind1078
    • [x] js-ast-utils/cleanJSXText.ts
    • [x] js-ast-utils/createMemberProperty.ts
    • [x] js-ast-utils/createPropertyKey.ts
    • [x] js-ast-utils/getBindingIdentifiers.ts
    • [x] js-ast-utils/getImportSpecifiers.ts
    • [x] js-ast-utils/getJSXAttribute.ts
    • [x] js-ast-utils/getJSXElementName.ts @aravind1078
    • [x] js-ast-utils/getTSQualifiedBaseFromEntityName.ts
    • [x] js-ast-utils/hasJSXAttribute.ts
    • [x] js-ast-utils/hasPotentialSideEffects.ts
    • [x] js-ast-utils/inheritLoc.ts
    • [x] js-ast-utils/isBinary.ts @nt591
    • [x] js-ast-utils/isEmptyTemplateLiteral.ts
    • [x] js-ast-utils/isFunctionNode.ts @aravind1078
    • [x] js-ast-utils/isInTypeAnnotation.ts
    • [x] js-ast-utils/isJSXElement.ts @aravind1078
    • [x] js-ast-utils/isNodeLike.ts @sasurau4
    • [x] js-ast-utils/isValidIdentifierName.ts
    • [x] js-ast-utils/removeShallowLoc.ts
    • [x] js-ast-utils/renameBindings.ts
    • [x] js-ast-utils/resolveIndirection.ts
    • [x] js-ast-utils/template.ts
    • [x] js-ast-utils/tryStaticEvaluation.ts @nt591
    • [x] js-ast-utils/tryStaticEvaluationPath.ts @nt591
    • [x] js-ast-utils/valueToNode.ts @gie3d
    • [x] markup-syntax-hightlight/index.ts @JustBeYou
    • [x] parser-core/comments.ts
    • [x] parser-core/ParserCore.ts
    • [x] parser-core/utils.ts
    • [x] path-match/stringify.ts @JustBeYou
    • [x] string-diff/index.ts @JustBeYou
    • [x] vcs/index.ts @JustBeYou

    If any of them are not worth having test or some are missing, please comment.

    A ⚙️ indicates they are being worked on. A checkmark indicates an open PR.

    good first issue umbrella 
    opened by jer3m01 26
  • perf(rome_cli): replace global allocator with jemalloc

    perf(rome_cli): replace global allocator with jemalloc

    Summary

    This PR replaces the default global allocator to use jemallocator on all operative systems, exception for Windows because it's not supported.

    Test Plan

    Here's some benchmarks from my machine (I use macOS)

    parser

    group                                 jamalloc                               main
    -----                                 --------                               ----
    parser/checker.ts                     1.00     98.9±7.70ms    26.3 MB/sec    1.16    115.2±3.25ms    22.6 MB/sec
    parser/compiler.js                    1.00     52.8±1.15ms    19.8 MB/sec    1.49     79.0±1.86ms    13.3 MB/sec
    parser/d3.min.js                      1.00     34.2±2.76ms     7.7 MB/sec    1.22     41.9±0.96ms     6.3 MB/sec
    parser/dojo.js                        1.00      3.1±0.24ms    22.2 MB/sec    1.16      3.6±0.09ms    19.2 MB/sec
    parser/ios.d.ts                       1.00     76.2±3.42ms    24.5 MB/sec    1.33    101.1±5.28ms    18.5 MB/sec
    parser/jquery.min.js                  1.00      8.4±0.70ms     9.8 MB/sec    1.40     11.8±0.25ms     7.0 MB/sec
    parser/math.js                        1.00     68.2±6.90ms     9.5 MB/sec    1.21     82.7±1.39ms     7.8 MB/sec
    parser/parser.ts                      1.00      2.2±0.18ms    22.1 MB/sec    1.13      2.5±0.07ms    19.6 MB/sec
    parser/pixi.min.js                    1.00     43.2±1.93ms    10.2 MB/sec    1.33     57.4±1.07ms     7.6 MB/sec
    parser/react-dom.production.min.js    1.00     11.4±0.31ms    10.1 MB/sec    1.32     15.1±0.43ms     7.6 MB/sec
    parser/react.production.min.js        1.00   618.1±75.15µs    10.0 MB/sec    1.31   810.4±21.71µs     7.6 MB/sec
    parser/router.ts                      1.00  1744.8±96.27µs    35.2 MB/sec    1.23      2.1±0.08ms    28.6 MB/sec
    parser/tex-chtml-full.js              1.00     92.9±5.44ms     9.8 MB/sec    1.21    112.5±6.80ms     8.1 MB/sec
    parser/three.min.js                   1.00     51.7±7.25ms    11.4 MB/sec    1.15     59.4±1.29ms     9.9 MB/sec
    parser/typescript.js                  1.00   381.1±29.09ms    24.9 MB/sec    1.25    478.1±8.76ms    19.9 MB/sec
    parser/vue.global.prod.js             1.00     13.7±0.39ms     8.8 MB/sec    1.39     19.1±0.48ms     6.3 MB/sec
    

    formatter

    group                                    formatter-jamalloc                      formatter-main
    -----                                    ------------------                      --------------
    formatter/checker.ts                     1.00   360.2±11.12ms     7.2 MB/sec     1.99   718.7±88.40ms     3.6 MB/sec
    formatter/compiler.js                    1.00   213.1±24.96ms     4.9 MB/sec     1.94   413.6±32.24ms     2.5 MB/sec
    formatter/d3.min.js                      1.00    162.9±6.40ms  1647.7 KB/sec     2.14   348.4±24.40ms   770.3 KB/sec
    formatter/dojo.js                        1.00     10.1±0.38ms     6.8 MB/sec     1.83     18.6±0.68ms     3.7 MB/sec
    formatter/ios.d.ts                       1.00    224.4±7.34ms     8.3 MB/sec     2.09   469.8±52.19ms     4.0 MB/sec
    formatter/jquery.min.js                  1.00     46.2±3.25ms  1830.6 KB/sec     1.88     86.9±4.87ms   973.9 KB/sec
    formatter/math.js                        1.00   316.2±16.29ms     2.0 MB/sec     2.07   654.2±44.04ms  1013.5 KB/sec
    formatter/parser.ts                      1.00      7.6±0.24ms     6.4 MB/sec     1.78     13.5±0.81ms     3.6 MB/sec
    formatter/pixi.min.js                    1.00   182.9±20.46ms     2.4 MB/sec     2.04   372.9±26.13ms  1205.1 KB/sec
    formatter/react-dom.production.min.js    1.00     53.6±3.05ms     2.1 MB/sec     2.16   115.6±16.34ms  1019.3 KB/sec
    formatter/react.production.min.js        1.00      2.5±0.07ms     2.5 MB/sec     1.82      4.5±0.22ms  1385.1 KB/sec
    formatter/router.ts                      1.00      6.0±0.37ms    10.2 MB/sec     1.65      9.9±0.51ms     6.2 MB/sec
    formatter/tex-chtml-full.js              1.00   405.0±17.74ms     2.3 MB/sec     2.19   886.4±69.69ms  1052.8 KB/sec
    formatter/three.min.js                   1.00   210.4±23.22ms     2.8 MB/sec     1.99   418.5±33.31ms  1436.6 KB/sec
    formatter/typescript.js                  1.00  1444.9±154.91ms     6.6 MB/sec    1.67       2.4±0.10s     3.9 MB/sec
    formatter/vue.global.prod.js             1.00     70.9±5.05ms  1740.0 KB/sec     2.07   146.9±13.28ms   839.9 KB/sec
    

    analyzer

    group                     analyzer-jamalloc                      analyzer-main
    -----                     -----------------                      -------------
    analyzer/css.js           1.00  1682.7±79.01µs     6.9 MB/sec    2.03      3.4±0.10ms     3.4 MB/sec
    analyzer/index.js         1.00      4.5±0.08ms     7.2 MB/sec    2.43     10.9±0.36ms     3.0 MB/sec
    analyzer/lint.ts          1.00      2.5±0.20ms    16.8 MB/sec    1.73      4.3±0.12ms     9.7 MB/sec
    analyzer/parser.ts        1.00      5.8±0.28ms     8.4 MB/sec    1.84     10.7±0.18ms     4.6 MB/sec
    analyzer/router.ts        1.00      4.0±0.14ms    15.4 MB/sec    1.85      7.4±0.10ms     8.3 MB/sec
    analyzer/statement.ts     1.00      5.4±0.25ms     6.5 MB/sec    1.99     10.8±0.72ms     3.3 MB/sec
    analyzer/typescript.ts    1.00      9.1±0.52ms     6.0 MB/sec    1.67     15.2±0.26ms     3.6 MB/sec
    

    Memory consumption

    I used cargo instruments and I am not an expert at using the trace tool provided by XCode. I share here the screenshots and the trace file in case someone has more knowledge than me.

    I run the formatter on the prettier repository, their src folder. No --write.

    jemalloc

    Screenshot 2022-09-21 at 10 32 34

    main

    Screenshot 2022-09-21 at 10 32 29

    A-Core A-CLI 
    opened by ematipico 24
  • fix(rome_js_formatter): in JSX, some spaces are removed #3211

    fix(rome_js_formatter): in JSX, some spaces are removed #3211

    Summary

    Fix https://github.com/rome/tools/issues/3211

    Prettier removes softline, hardline before and after jsxWhitespace.

    Open Question

    There is another one difference between Rome and Prettier. Prettier adds jsxWhitespace and break a line after Text. But IR the same. Can it be a problem with fill builder?

    Rome:

                     ...
    		Text <a data-very-long-prop-breakline-rome-playground data-other>
    			some link
    		</a>
    		....
    
    

    Prettier:

                     ...
    		Text{" "}
    		<a data-very-long-prop-breakline-rome-playground data-other>
    			some link
    		</a>
    		 ...
    

    Playground

    Test Plan

    Add new test cases. cargo test -p rome_js_formatter

    This PR: Average compatibility: 88.44 Compatible lines: 89.60

    Main: Average compatibility: 88.42 Compatible lines: 89.30

    A-Formatter 
    opened by denbezrukov 23
  • Add governance document

    Add governance document

    This PR introduces a governance document that outlines the governance model for Rome. This includes the contributor model, code review, merging, and the consequences and process for code of conduct violations.

    cc @romejs/contributors

    opened by sebmck 23
  • 🐛 Parser doesn't throw an error about the duplicate private class member

    🐛 Parser doesn't throw an error about the duplicate private class member

    Environment information

    I will share the playground link in the next section.
    

    What happened?

    Parser doesn't throw an error about the duplicate private class member. The duplicate private class member raises the syntax error in runtime.

    Playground Link

    https://docs.rome.tools/playground/?indentStyle=space&quoteStyle=single&trailingComma=none&lintRules=all&enabledLinting=false&code=YwBsAGEAcwBzACAAQQAgAHsACgAgACAAIwBmAG8AbwA7AAoAIAAgACMAZgBvAG8AOwAKAH0ACgA%3D

    https://docs.rome.tools/playground/?indentStyle=space&quoteStyle=single&trailingComma=none&lintRules=all&enabledLinting=false&code=YwBsAGEAcwBzACAAQQAgAHsACgAgACAAZwBlAHQAIAAjAGYAbwBvACgAKQAgAHsAfQAKACAAIAAjAGYAbwBvADsACgB9AAoA

    Expected result

    Prettier and TypeScript throw an error about the duplicate private class member. Rome also throw an error?

    TypeScript Playground Link https://www.typescriptlang.org/play?#code/MYGwhgzhAECC0G8BQ1oGIBmB7L0C80AjANwrra4EBMpAvkkA

    Code of Conduct

    • [X] I agree to follow Rome's Code of Conduct
    S-Bug: confirmed enhancement good first issue A-linter I-Easy 
    opened by nissy-dev 4
  • "This hook do not specify all of its dependencies." but for function defined OUTSIDE of the component function body

    Environment information

    When I run this command I got insanely long output full of code.

    I have this version of rome:

    rome@^11:
      version "11.0.0"
      resolved "https://registry.yarnpkg.com/rome/-/rome-11.0.0.tgz#cd2f00fadfd3611399eba9a2f87612e1f3299a23"
    

    What happened?

    I have a function that is outside of the component function body:

    const dayToYyyymmdd = (d: Date) => d.toJSON().substring(0, 10); // <---- THIS
    
    
    export const Calendar: React.FC<CalendarProps> = ({
       // ...
       const isFirstMonth = useMemo(() => {
        if (typeof min === "undefined") return false;
        return dayToYyyymmdd(firstDay) <= min;
      }, [min, firstDay, dayToYyyymmdd]);
      // ...
    

    I am porting project from ESLint to Rome and when I add dependency to the useMemo I got this from ESLint

    React Hook useMemo has an unnecessary dependency: 'dayToYyyymmdd'. Either exclude it or remove the dependency array. Outer scope values like 'dayToYyyymmdd' aren't valid dependencies because mutating them doesn't re-render the component  react-hooks/exhaustive-deps
    

    However if I remove it I got error from the Rome.

    Expected result

    I think the dependency OUTSIDE of the function body is not necessary to specify as dependency and Rome should not require it.

    Code of Conduct

    • [X] I agree to follow Rome's Code of Conduct
    S-To triage 
    opened by peter-goodfill 0
  • 🐛 Linter rule `noUnusedVariables` doesn't like `as const` sometimes

    🐛 Linter rule `noUnusedVariables` doesn't like `as const` sometimes

    Environment information

    I added it to the comment as a txt file since my "comment was too long"
    

    What happened?

    So I had an existing project and had been using Rome as its full time formatter and linter, but then I turned on noUndeclaredVariables and noUnusedVariables

    {
      "$schema": "./node_modules/rome/configuration_schema.json",
      "linter": {
        "enabled": true,
        "rules": {
          "recommended": true,
          "correctness": {
            "noUnusedVariables": "error",
            "noUndeclaredVariables": "error"
          }
        }
      }
    }
    

    and now running yarn rome check . and the vscode extension both give me errors of

    The const variable is undeclared
    

    everywhere I try to do something like

    import * as React from "react";
    import { useSpring } from "@react-spring/native";
    import { sleep } from "utils/async";
    
    const useSpringSwitch = (on: boolean) => {
    	const { opacity } = useSpring({ opacity: on ? 1 : 0 });
    	const [opacityState, setOpacityState] = React.useState(0);
    
    	React.useEffect(() => {
    		const tick = async () => {
    			const newValue = opacity.get();
    			setOpacityState(newValue);
    			if ((on && newValue < 1) || (!on && newValue > 0)) {
    				await sleep(50);
    				tick();
    			}
    		};
    
    		tick();
    	}, [on]);
    
    	return [opacityState, opacity] as const; // <- this right here is where I get the error
    };
    
    export default useSpringSwitch;
    
    Screenshot 2023-01-04 at 8 29 21 PM

    But I can upload this code to the playground and it works as expected, so it seems like this is just a bug somewhere in my setup. I have tried removing and reinstalling my node_modules, and I am on version 11.0.0, which is just installed locally to my project.

    rome_rage.txt

    Expected result

    const should be a valid global typescript type.

    Code of Conduct

    • [X] I agree to follow Rome's Code of Conduct
    S-Needs info 
    opened by amatthews4851 2
  • refactor(js_ungram): normalize `BigInt` to `Bigint`

    refactor(js_ungram): normalize `BigInt` to `Bigint`

    Summary

    Both BigInt (also big_int) and Bigint (alsobigint`) are used. This PR normalizes the first form to the second form.

    Test Plan

    I run just check-ready

    Documentation

    • [ ] The PR requires documentation
    • [ ] I will create a new PR to update the documentation
    opened by Conaclos 1
  • feat(rome_service): recycle the node cache across parsing sessions

    feat(rome_service): recycle the node cache across parsing sessions

    Summary

    This PR aims at improving the performance of running multiple parsing session over the same document by allowing the green node cache to be stored in the workspace alongside the syntax tree and reused by each parser invocation.

    As the cache is now long-lived, this requires the implementation of a cache eviction strategy to avoid having the in-memory caches of the open documents grow indefinitely. This behavior is implemented in the TreeBuilder with the help of a new LiveSet structure that tracks the set of tokens and nodes that were retrieved from the cache or inserted by a given instance of the builder, and drains the entries that have not been marked from the cache when finish is called on the builder. This strategy is sufficient as the workspace maintains a node cache per-document, so only the nodes that are part of the latest revision of the syntax tree for this document need to be retained.

    Test Plan

    This is an internal change that should not have observable effects (in theory even if the behavior of the cache were incorrect the workspace and parsers should continue to work correctly, but their memory usage characteristics might become less efficient). I don't expect this change to have a significant impact on benchmarks either as those are only run "cold" on an empty cache, and the set of live nodes doesn't get build in the initial parser run.

    Documentation

    • [ ] The PR requires documentation
    • [ ] I will create a new PR to update the documentation
    opened by leops 6
  • feat(rome_js_analyze): `noDuplicateClassMembers`

    feat(rome_js_analyze): `noDuplicateClassMembers`

    Summary

    Fix #3963

    Test Plan

    I made the same test cases as in ESLint. In this PR, this rule doesn't support computed and numerical properties.

    I refer to the following comments. https://github.com/rome/tools/blob/b6e7a394697d74b40242b18bac836428290b33f3/crates/rome_js_analyze/tests/specs/nursery/noDuplicateObjectKeys.js#L27-L29

    Documentation

    • [ ] The PR requires documentation
    • [ ] I will create a new PR to update the documentation
    opened by nissy-dev 5
Releases(lsp/v0.21.20221217)
  • lsp/v0.21.20221217(Dec 19, 2022)

    What's Changed

    • fix(rome_js_analyze): fix useConst suggestion when some bindings cannot live inside const by @xunilrj in https://github.com/rome/tools/pull/4014
    • docs(noConstructorReturn): fix rule description by @Conaclos in https://github.com/rome/tools/pull/4015
    • feat(playground): Add JSON support by @MichaReiser in https://github.com/rome/tools/pull/3968
    • fix(rome_js_analyze): fix ts const assertion on noUndeclaredVariables by @xunilrj in https://github.com/rome/tools/pull/3981
    • feat(rome_js_analyze): lint rule to check if react hooks are at top level by @xunilrj in https://github.com/rome/tools/pull/3927
    • feat(rome_js_analyze): noAssignInExpressions by @Conaclos in https://github.com/rome/tools/pull/3928
    • feat(rome_cli): Add JS runtime and package manager information to rage by @MichaReiser in https://github.com/rome/tools/pull/4021
    • feat(rome_js_analyze): noUselessSwitchCase by @Conaclos in https://github.com/rome/tools/pull/3912
    • fix(vscode): ignore incompatible versions of the binary and improve the restart logic by @leops in https://github.com/rome/tools/pull/4022
    • feat(rome_js_analyze): complete useAriaPropTypes rule by @ematipico in https://github.com/rome/tools/pull/3959
    • docs: fix typo in configuration.mdx by @ShiChenCong in https://github.com/rome/tools/pull/4034
    • feat(rome_js_analyze): add module and classes support for noRedundantUseStrict by @mzbac in https://github.com/rome/tools/pull/3955
    • chore(xtask): update the coverage submodules by @leops in https://github.com/rome/tools/pull/4041
    • feat(rome_js_analyzer): add noWith rule by @ktfth in https://github.com/rome/tools/pull/4025
    • chore: update contribution guidelines by @ematipico in https://github.com/rome/tools/pull/3996
    • refactor(rome_lsp): refactor the initialization and configuration loading logic by @leops in https://github.com/rome/tools/pull/4044
    • fix(rome_lsp): improve the pattern matching logic for ignored files by @leops in https://github.com/rome/tools/pull/4024
    • fix(rome_lsp): fix the merge conflict of #4042 and #4044 by @leops in https://github.com/rome/tools/pull/4051
    • feat: Support Auto Accessors by @nissy-dev in https://github.com/rome/tools/pull/3956
    • feat(rome_json_formatter): JSON Formatting object #2570 by @denbezrukov in https://github.com/rome/tools/pull/4040
    • feat(rome_js_analyze): noCommaOperator by @Conaclos in https://github.com/rome/tools/pull/4019
    • chore(codegen): fix codegen for new lint rule by @xunilrj in https://github.com/rome/tools/pull/4057
    • refactor(rome_formatter): Extract shared separated logic by @MichaReiser in https://github.com/rome/tools/pull/4056
    • feat(rome_js_analyze): noSelfCompare rule by @kaioduarte in https://github.com/rome/tools/pull/4031
    • feat(rome_js_analyze): noClassAssign rule by @kaioduarte in https://github.com/rome/tools/pull/4033
    • fix(rome_js_analyze): should handle read-only arrays by @unvalley in https://github.com/rome/tools/pull/3954
    • feat(rome_json_formatter): Fallback to Verbatim for nodes with syntax errors by @MichaReiser in https://github.com/rome/tools/pull/4066

    New Contributors

    • @ShiChenCong made their first contribution in https://github.com/rome/tools/pull/4034

    Full Changelog: https://github.com/rome/tools/compare/js-api/v0.2.0...lsp/v0.21.20221217

    Source code(tar.gz)
    Source code(zip)
    rome_lsp-darwin-arm64.vsix(4.03 MB)
    rome_lsp-darwin-x64.vsix(4.27 MB)
    rome_lsp-linux-arm64.vsix(4.21 MB)
    rome_lsp-linux-x64.vsix(4.48 MB)
    rome_lsp-win32-arm64.vsix(4.25 MB)
    rome_lsp-win32-x64.vsix(4.55 MB)
  • cli/v11.0.0-nightly.fab5440(Dec 19, 2022)

    What's Changed

    • fix(rome_js_analyze): fix useConst suggestion when some bindings cannot live inside const by @xunilrj in https://github.com/rome/tools/pull/4014
    • docs(noConstructorReturn): fix rule description by @Conaclos in https://github.com/rome/tools/pull/4015
    • feat(playground): Add JSON support by @MichaReiser in https://github.com/rome/tools/pull/3968
    • fix(rome_js_analyze): fix ts const assertion on noUndeclaredVariables by @xunilrj in https://github.com/rome/tools/pull/3981
    • feat(rome_js_analyze): lint rule to check if react hooks are at top level by @xunilrj in https://github.com/rome/tools/pull/3927
    • feat(rome_js_analyze): noAssignInExpressions by @Conaclos in https://github.com/rome/tools/pull/3928
    • feat(rome_cli): Add JS runtime and package manager information to rage by @MichaReiser in https://github.com/rome/tools/pull/4021
    • feat(rome_js_analyze): noUselessSwitchCase by @Conaclos in https://github.com/rome/tools/pull/3912
    • fix(vscode): ignore incompatible versions of the binary and improve the restart logic by @leops in https://github.com/rome/tools/pull/4022
    • feat(rome_js_analyze): complete useAriaPropTypes rule by @ematipico in https://github.com/rome/tools/pull/3959
    • docs: fix typo in configuration.mdx by @ShiChenCong in https://github.com/rome/tools/pull/4034
    • feat(rome_js_analyze): add module and classes support for noRedundantUseStrict by @mzbac in https://github.com/rome/tools/pull/3955
    • chore(xtask): update the coverage submodules by @leops in https://github.com/rome/tools/pull/4041
    • feat(rome_js_analyzer): add noWith rule by @ktfth in https://github.com/rome/tools/pull/4025
    • chore: update contribution guidelines by @ematipico in https://github.com/rome/tools/pull/3996
    • refactor(rome_lsp): refactor the initialization and configuration loading logic by @leops in https://github.com/rome/tools/pull/4044
    • fix(rome_lsp): improve the pattern matching logic for ignored files by @leops in https://github.com/rome/tools/pull/4024
    • fix(rome_lsp): fix the merge conflict of #4042 and #4044 by @leops in https://github.com/rome/tools/pull/4051
    • feat: Support Auto Accessors by @nissy-dev in https://github.com/rome/tools/pull/3956
    • feat(rome_json_formatter): JSON Formatting object #2570 by @denbezrukov in https://github.com/rome/tools/pull/4040
    • feat(rome_js_analyze): noCommaOperator by @Conaclos in https://github.com/rome/tools/pull/4019
    • chore(codegen): fix codegen for new lint rule by @xunilrj in https://github.com/rome/tools/pull/4057
    • refactor(rome_formatter): Extract shared separated logic by @MichaReiser in https://github.com/rome/tools/pull/4056
    • feat(rome_js_analyze): noSelfCompare rule by @kaioduarte in https://github.com/rome/tools/pull/4031
    • feat(rome_js_analyze): noClassAssign rule by @kaioduarte in https://github.com/rome/tools/pull/4033
    • fix(rome_js_analyze): should handle read-only arrays by @unvalley in https://github.com/rome/tools/pull/3954
    • feat(rome_json_formatter): Fallback to Verbatim for nodes with syntax errors by @MichaReiser in https://github.com/rome/tools/pull/4066

    New Contributors

    • @ShiChenCong made their first contribution in https://github.com/rome/tools/pull/4034

    Full Changelog: https://github.com/rome/tools/compare/js-api/v0.2.0...cli/v11.0.0-nightly.fab5440

    Source code(tar.gz)
    Source code(zip)
    rome-darwin-arm64(9.28 MB)
    rome-darwin-x64(9.71 MB)
    rome-linux-arm64(9.64 MB)
    rome-linux-x64(10.90 MB)
    rome-win32-arm64.exe(10.89 MB)
    rome-win32-x64.exe(12.69 MB)
  • js-api/v0.2.0(Dec 8, 2022)

    What's Changed

    • fix(rome_js_analyzer): correctly delegate unresolved references to its parent scope by @xunilrj in https://github.com/rome/tools/pull/4004
    • docs: Add default for indentSize by @Shraymonks in https://github.com/rome/tools/pull/4000
    • fix(ci): fix the release workflow for the JS API by @leops in https://github.com/rome/tools/pull/4009
    • feat(rome_js_analyze): implement noRedundantAlt rule by @notmd in https://github.com/rome/tools/pull/3964
    • fix(rome_js_analyze): use exhaustive deps considering external const as stable by @xunilrj in https://github.com/rome/tools/pull/3926
    • feat(rome_service): internal errors as diagnostics by @ematipico in https://github.com/rome/tools/pull/3921

    New Contributors

    • @Shraymonks made their first contribution in https://github.com/rome/tools/pull/4000

    Full Changelog: https://github.com/rome/tools/compare/lsp/v0.20.0...js-api/v0.2.0

    Source code(tar.gz)
    Source code(zip)
  • lsp/v0.20.0(Dec 6, 2022)

  • lsp/v0.19.0(Dec 6, 2022)

    What's Changed

    • fix(vscode): add a timeout on the stream reading tasks by @leops in https://github.com/rome/tools/pull/3995
    • release: 11.0.0 by @ematipico in https://github.com/rome/tools/pull/3906

    Full Changelog: https://github.com/rome/tools/compare/cli/v10.0.1-nightly.5cd4dfd...lsp/v0.19.0

    Source code(tar.gz)
    Source code(zip)
    rome_lsp-darwin-arm64.vsix(3.99 MB)
    rome_lsp-darwin-x64.vsix(4.23 MB)
    rome_lsp-linux-arm64.vsix(4.16 MB)
    rome_lsp-linux-x64.vsix(4.43 MB)
    rome_lsp-win32-arm64.vsix(4.20 MB)
    rome_lsp-win32-x64.vsix(4.49 MB)
  • cli/v11.0.0(Dec 6, 2022)

  • lsp/v0.19.20221206(Dec 6, 2022)

    What's Changed

    • feat(rome_js_analyze): complete rule useAriaPropsForRole by @ematipico in https://github.com/rome/tools/pull/3902
    • feat(rome_js_analyze): better JS suppressions by @ematipico in https://github.com/rome/tools/pull/3855
    • fix(rome_cli): Remove eprintln by @MichaReiser in https://github.com/rome/tools/pull/3922
    • test(rome_formatter_test): JSON Prettier Tests #2568 by @denbezrukov in https://github.com/rome/tools/pull/3913
    • feat(rome_js_analyze): Improve generated suppression text by @MichaReiser in https://github.com/rome/tools/pull/3924
    • refactor(rome_js_analyze): enable the recommended nursery rules on unstable builds by @leops in https://github.com/rome/tools/pull/3880
    • feat(rome_js_analyze): useEnumInitializers by @Conaclos in https://github.com/rome/tools/pull/3839
    • feat(rome_js_analyze): useExponentiationOperator rule by @kaioduarte in https://github.com/rome/tools/pull/3848
    • feat(rome_js_analyze): useDefaultParameterLast by @Conaclos in https://github.com/rome/tools/pull/3873
    • feature(rome_js_analyze): implement import sorting for named specifiers by @leops in https://github.com/rome/tools/pull/3916
    • fix(vscode): improve the logging of connection errors by @leops in https://github.com/rome/tools/pull/3952
    • fix(rome_js_analyze): fix for unused flag on functional types on ts by @xunilrj in https://github.com/rome/tools/pull/3860
    • feat(rome_formatter_test): spec test #2568 by @denbezrukov in https://github.com/rome/tools/pull/3935
    • refactor(rome_js_analyze): reorganize lint rules into additional categories by @leops in https://github.com/rome/tools/pull/3908
    • fix(rome_cli): improve the logging of panics and connection errors by @leops in https://github.com/rome/tools/pull/3957

    Full Changelog: https://github.com/rome/tools/compare/cli/v10.0.1-nightly.40f10a4...lsp/v0.19.20221206

    Source code(tar.gz)
    Source code(zip)
    rome_lsp-darwin-arm64.vsix(3.99 MB)
    rome_lsp-darwin-x64.vsix(4.23 MB)
    rome_lsp-linux-arm64.vsix(4.16 MB)
    rome_lsp-linux-x64.vsix(4.43 MB)
    rome_lsp-win32-arm64.vsix(4.20 MB)
    rome_lsp-win32-x64.vsix(4.49 MB)
  • cli/v10.0.1-nightly.5cd4dfd(Dec 6, 2022)

    What's Changed

    • feat(rome_js_analyze): complete rule useAriaPropsForRole by @ematipico in https://github.com/rome/tools/pull/3902
    • feat(rome_js_analyze): better JS suppressions by @ematipico in https://github.com/rome/tools/pull/3855
    • fix(rome_cli): Remove eprintln by @MichaReiser in https://github.com/rome/tools/pull/3922
    • test(rome_formatter_test): JSON Prettier Tests #2568 by @denbezrukov in https://github.com/rome/tools/pull/3913
    • feat(rome_js_analyze): Improve generated suppression text by @MichaReiser in https://github.com/rome/tools/pull/3924
    • refactor(rome_js_analyze): enable the recommended nursery rules on unstable builds by @leops in https://github.com/rome/tools/pull/3880
    • feat(rome_js_analyze): useEnumInitializers by @Conaclos in https://github.com/rome/tools/pull/3839
    • feat(rome_js_analyze): useExponentiationOperator rule by @kaioduarte in https://github.com/rome/tools/pull/3848
    • feat(rome_js_analyze): useDefaultParameterLast by @Conaclos in https://github.com/rome/tools/pull/3873
    • feature(rome_js_analyze): implement import sorting for named specifiers by @leops in https://github.com/rome/tools/pull/3916
    • fix(vscode): improve the logging of connection errors by @leops in https://github.com/rome/tools/pull/3952
    • fix(rome_js_analyze): fix for unused flag on functional types on ts by @xunilrj in https://github.com/rome/tools/pull/3860
    • feat(rome_formatter_test): spec test #2568 by @denbezrukov in https://github.com/rome/tools/pull/3935
    • refactor(rome_js_analyze): reorganize lint rules into additional categories by @leops in https://github.com/rome/tools/pull/3908
    • fix(rome_cli): improve the logging of panics and connection errors by @leops in https://github.com/rome/tools/pull/3957

    Full Changelog: https://github.com/rome/tools/compare/cli/v10.0.1-nightly.40f10a4...cli/v10.0.1-nightly.5cd4dfd

    Source code(tar.gz)
    Source code(zip)
    rome-darwin-arm64(9.18 MB)
    rome-darwin-x64(9.62 MB)
    rome-linux-arm64(9.54 MB)
    rome-linux-x64(10.79 MB)
    rome-win32-arm64.exe(10.75 MB)
    rome-win32-x64.exe(12.52 MB)
  • lsp/v0.19.20221202(Dec 2, 2022)

    What's Changed

    • chore: update lint alias by @ematipico in https://github.com/rome/tools/pull/3899
    • feat(rome_js_analyze): sort imports using natural ordering by @leops in https://github.com/rome/tools/pull/3900
    • fix(playground): Script Type by @MichaReiser in https://github.com/rome/tools/pull/3903
    • feat(rome_js_analyze): implement noNonNullAssertion rule by @notmd in https://github.com/rome/tools/pull/3891
    • feat(rome_json_formatter): Enable JSON formatting for debug builds by @MichaReiser in https://github.com/rome/tools/pull/3859
    • chore(ci): centos7 ci container by @xunilrj in https://github.com/rome/tools/pull/3866
    • chore(rome_cli): Remove dead snapshot file by @realtimetodie in https://github.com/rome/tools/pull/3911
    • feat(rome_js_analyze): noRedundantUseStrict rule by @mzbac in https://github.com/rome/tools/pull/3895
    • fix(rome_cli): Allow to run on read-only file systems by @realtimetodie in https://github.com/rome/tools/pull/3851

    Full Changelog: https://github.com/rome/tools/compare/cli/v10.0.1-nightly.00f5dfe...lsp/v0.19.20221202

    Source code(tar.gz)
    Source code(zip)
    rome_lsp-darwin-arm64.vsix(3.93 MB)
    rome_lsp-darwin-x64.vsix(4.17 MB)
    rome_lsp-linux-arm64.vsix(4.11 MB)
    rome_lsp-linux-x64.vsix(4.37 MB)
    rome_lsp-win32-arm64.vsix(4.14 MB)
    rome_lsp-win32-x64.vsix(4.42 MB)
  • lsp/v0.19.20221201(Dec 1, 2022)

    What's Changed

    • chore: update lint alias by @ematipico in https://github.com/rome/tools/pull/3899
    • feat(rome_js_analyze): sort imports using natural ordering by @leops in https://github.com/rome/tools/pull/3900
    • fix(playground): Script Type by @MichaReiser in https://github.com/rome/tools/pull/3903
    • feat(rome_js_analyze): implement noNonNullAssertion rule by @notmd in https://github.com/rome/tools/pull/3891
    • feat(rome_json_formatter): Enable JSON formatting for debug builds by @MichaReiser in https://github.com/rome/tools/pull/3859
    • chore(ci): centos7 ci container by @xunilrj in https://github.com/rome/tools/pull/3866
    • chore(rome_cli): Remove dead snapshot file by @realtimetodie in https://github.com/rome/tools/pull/3911
    • feat(rome_js_analyze): noRedundantUseStrict rule by @mzbac in https://github.com/rome/tools/pull/3895
    • fix(rome_cli): Allow to run on read-only file systems by @realtimetodie in https://github.com/rome/tools/pull/3851

    Full Changelog: https://github.com/rome/tools/compare/cli/v10.0.1-nightly.00f5dfe...lsp/v0.19.20221201

    Source code(tar.gz)
    Source code(zip)
    rome_lsp-darwin-arm64.vsix(3.93 MB)
    rome_lsp-darwin-x64.vsix(4.17 MB)
    rome_lsp-linux-arm64.vsix(4.11 MB)
    rome_lsp-linux-x64.vsix(4.37 MB)
    rome_lsp-win32-arm64.vsix(4.14 MB)
    rome_lsp-win32-x64.vsix(4.42 MB)
  • cli/v10.0.1-nightly.c595ab0(Dec 1, 2022)

    What's Changed

    • chore: update lint alias by @ematipico in https://github.com/rome/tools/pull/3899
    • feat(rome_js_analyze): sort imports using natural ordering by @leops in https://github.com/rome/tools/pull/3900
    • fix(playground): Script Type by @MichaReiser in https://github.com/rome/tools/pull/3903
    • feat(rome_js_analyze): implement noNonNullAssertion rule by @notmd in https://github.com/rome/tools/pull/3891
    • feat(rome_json_formatter): Enable JSON formatting for debug builds by @MichaReiser in https://github.com/rome/tools/pull/3859
    • chore(ci): centos7 ci container by @xunilrj in https://github.com/rome/tools/pull/3866
    • chore(rome_cli): Remove dead snapshot file by @realtimetodie in https://github.com/rome/tools/pull/3911
    • feat(rome_js_analyze): noRedundantUseStrict rule by @mzbac in https://github.com/rome/tools/pull/3895
    • fix(rome_cli): Allow to run on read-only file systems by @realtimetodie in https://github.com/rome/tools/pull/3851

    Full Changelog: https://github.com/rome/tools/compare/cli/v10.0.1-nightly.00f5dfe...cli/v10.0.1-nightly.c595ab0

    Source code(tar.gz)
    Source code(zip)
    rome-darwin-arm64(9.01 MB)
    rome-darwin-x64(9.45 MB)
    rome-linux-arm64(9.37 MB)
    rome-linux-x64(10.60 MB)
    rome-win32-arm64.exe(10.54 MB)
    rome-win32-x64.exe(12.28 MB)
  • cli/v10.0.1-nightly.40f10a4(Dec 2, 2022)

    What's Changed

    • chore: update lint alias by @ematipico in https://github.com/rome/tools/pull/3899
    • feat(rome_js_analyze): sort imports using natural ordering by @leops in https://github.com/rome/tools/pull/3900
    • fix(playground): Script Type by @MichaReiser in https://github.com/rome/tools/pull/3903
    • feat(rome_js_analyze): implement noNonNullAssertion rule by @notmd in https://github.com/rome/tools/pull/3891
    • feat(rome_json_formatter): Enable JSON formatting for debug builds by @MichaReiser in https://github.com/rome/tools/pull/3859
    • chore(ci): centos7 ci container by @xunilrj in https://github.com/rome/tools/pull/3866
    • chore(rome_cli): Remove dead snapshot file by @realtimetodie in https://github.com/rome/tools/pull/3911
    • feat(rome_js_analyze): noRedundantUseStrict rule by @mzbac in https://github.com/rome/tools/pull/3895
    • fix(rome_cli): Allow to run on read-only file systems by @realtimetodie in https://github.com/rome/tools/pull/3851

    Full Changelog: https://github.com/rome/tools/compare/cli/v10.0.1-nightly.00f5dfe...cli/v10.0.1-nightly.40f10a4

    Source code(tar.gz)
    Source code(zip)
    rome-darwin-arm64(9.01 MB)
    rome-darwin-x64(9.45 MB)
    rome-linux-arm64(9.37 MB)
    rome-linux-x64(10.60 MB)
    rome-win32-arm64.exe(10.54 MB)
    rome-win32-x64.exe(12.28 MB)
  • lsp/v0.19.20221129(Nov 29, 2022)

    What's Changed

    • feat(rome_json_formatter): Setup JSON Formatter crate by @MichaReiser in https://github.com/rome/tools/pull/3854
    • fix(rome_js_formatter): jsx punctuation by @denbezrukov in https://github.com/rome/tools/pull/3842
    • feat: Support TS satisfies expression by @nissy-dev in https://github.com/rome/tools/pull/3846
    • fix(rome_cli): Fix max diagnostic counts by @MichaReiser in https://github.com/rome/tools/pull/3869
    • fix(rome_js_analyze): fix noShoutyConstants with empty string by @rosslh in https://github.com/rome/tools/pull/3868
    • chore: Update rust-cache and add it to more jobs by @MichaReiser in https://github.com/rome/tools/pull/3871
    • bench: Add JSON support to xtask bench by @MichaReiser in https://github.com/rome/tools/pull/3845
    • refactor(rome_json_syntax): Introduce JsonMemberName by @MichaReiser in https://github.com/rome/tools/pull/3876
    • fix(rome_js_analyze): false positives for noUselessFragments #3668 by @ematipico in https://github.com/rome/tools/pull/3858
    • refactor(rome_js_syntax): Rename Template, NewTarget, and ImportMeta by @MichaReiser in https://github.com/rome/tools/pull/3878
    • feat(rome_js_analyze): noConstEnum by @Conaclos in https://github.com/rome/tools/pull/3849
    • fix(rome_js_analyze): fix class expr binding by @xunilrj in https://github.com/rome/tools/pull/3861
    • chore: Remove unused dependencies by @MichaReiser in https://github.com/rome/tools/pull/3879
    • feat(rome_fs): implement permission checking in the memory filesystem by @leops in https://github.com/rome/tools/pull/3882
    • refactor(rome_js_syntax,rome_json_syntax): Rename Unknown nodes to Bogus by @MichaReiser in https://github.com/rome/tools/pull/3881
    • fix(js-api): fix the JS API tests by @leops in https://github.com/rome/tools/pull/3884
    • refactor(rome_js_syntax,rome_json_syntax): Rename JsAny... to AnyJs... by @MichaReiser in https://github.com/rome/tools/pull/3883
    • feat(rome_analyzer): ARIA query by @ematipico in https://github.com/rome/tools/pull/3832
    • feat(rome_analyze): emit syntax error diagnostics for suppression comments by @leops in https://github.com/rome/tools/pull/3847
    • script to analyze behaviour of rome throughout time by @xunilrj in https://github.com/rome/tools/pull/3885
    • fix(rome_analyze): move config to a more performant place by @xunilrj in https://github.com/rome/tools/pull/3542
    • chore(rome_js_analyze): remove dbg macro by @notmd in https://github.com/rome/tools/pull/3894
    • ci: Add more clippy & dependency checks by @MichaReiser in https://github.com/rome/tools/pull/3896
    • feat(rome_fs): implement a read-only mode for MemoryFileSystem by @leops in https://github.com/rome/tools/pull/3897

    New Contributors

    • @rosslh made their first contribution in https://github.com/rome/tools/pull/3868
    • @notmd made their first contribution in https://github.com/rome/tools/pull/3894

    Full Changelog: https://github.com/rome/tools/compare/cli/v10.0.1-nightly.b7eb6fd...lsp/v0.19.20221129

    Source code(tar.gz)
    Source code(zip)
    rome_lsp-darwin-arm64.vsix(3.91 MB)
    rome_lsp-darwin-x64.vsix(4.16 MB)
    rome_lsp-linux-arm64.vsix(4.09 MB)
    rome_lsp-linux-x64.vsix(4.35 MB)
    rome_lsp-win32-arm64.vsix(4.11 MB)
    rome_lsp-win32-x64.vsix(4.39 MB)
  • cli/v10.0.1-nightly.00f5dfe(Nov 29, 2022)

    What's Changed

    • feat(rome_json_formatter): Setup JSON Formatter crate by @MichaReiser in https://github.com/rome/tools/pull/3854
    • fix(rome_js_formatter): jsx punctuation by @denbezrukov in https://github.com/rome/tools/pull/3842
    • feat: Support TS satisfies expression by @nissy-dev in https://github.com/rome/tools/pull/3846
    • fix(rome_cli): Fix max diagnostic counts by @MichaReiser in https://github.com/rome/tools/pull/3869
    • fix(rome_js_analyze): fix noShoutyConstants with empty string by @rosslh in https://github.com/rome/tools/pull/3868
    • chore: Update rust-cache and add it to more jobs by @MichaReiser in https://github.com/rome/tools/pull/3871
    • bench: Add JSON support to xtask bench by @MichaReiser in https://github.com/rome/tools/pull/3845
    • refactor(rome_json_syntax): Introduce JsonMemberName by @MichaReiser in https://github.com/rome/tools/pull/3876
    • fix(rome_js_analyze): false positives for noUselessFragments #3668 by @ematipico in https://github.com/rome/tools/pull/3858
    • refactor(rome_js_syntax): Rename Template, NewTarget, and ImportMeta by @MichaReiser in https://github.com/rome/tools/pull/3878
    • feat(rome_js_analyze): noConstEnum by @Conaclos in https://github.com/rome/tools/pull/3849
    • fix(rome_js_analyze): fix class expr binding by @xunilrj in https://github.com/rome/tools/pull/3861
    • chore: Remove unused dependencies by @MichaReiser in https://github.com/rome/tools/pull/3879
    • feat(rome_fs): implement permission checking in the memory filesystem by @leops in https://github.com/rome/tools/pull/3882
    • refactor(rome_js_syntax,rome_json_syntax): Rename Unknown nodes to Bogus by @MichaReiser in https://github.com/rome/tools/pull/3881
    • fix(js-api): fix the JS API tests by @leops in https://github.com/rome/tools/pull/3884
    • refactor(rome_js_syntax,rome_json_syntax): Rename JsAny... to AnyJs... by @MichaReiser in https://github.com/rome/tools/pull/3883
    • feat(rome_analyzer): ARIA query by @ematipico in https://github.com/rome/tools/pull/3832
    • feat(rome_analyze): emit syntax error diagnostics for suppression comments by @leops in https://github.com/rome/tools/pull/3847
    • script to analyze behaviour of rome throughout time by @xunilrj in https://github.com/rome/tools/pull/3885
    • fix(rome_analyze): move config to a more performant place by @xunilrj in https://github.com/rome/tools/pull/3542
    • chore(rome_js_analyze): remove dbg macro by @notmd in https://github.com/rome/tools/pull/3894
    • ci: Add more clippy & dependency checks by @MichaReiser in https://github.com/rome/tools/pull/3896
    • feat(rome_fs): implement a read-only mode for MemoryFileSystem by @leops in https://github.com/rome/tools/pull/3897

    New Contributors

    • @rosslh made their first contribution in https://github.com/rome/tools/pull/3868
    • @notmd made their first contribution in https://github.com/rome/tools/pull/3894

    Full Changelog: https://github.com/rome/tools/compare/cli/v10.0.1-nightly.b7eb6fd...cli/v10.0.1-nightly.00f5dfe

    Source code(tar.gz)
    Source code(zip)
    rome-darwin-arm64(8.96 MB)
    rome-darwin-x64(9.41 MB)
    rome-linux-arm64(9.33 MB)
    rome-linux-x64(10.57 MB)
    rome-win32-arm64.exe(10.48 MB)
    rome-win32-x64.exe(12.20 MB)
  • lsp/v0.19.20221125(Nov 25, 2022)

    What's Changed

    • feat(rome_js_analyze): implement noUnsafeFinally lint by @95th in https://github.com/rome/tools/pull/3752
    • feat(rome_js_analyze): Suggested fix for Conditional Assignment by @95th in https://github.com/rome/tools/pull/3771
    • feat(rome_js_parser): export default function in declare module #3485 by @denbezrukov in https://github.com/rome/tools/pull/3775
    • chore: remove unused .. by @msdlisper in https://github.com/rome/tools/pull/3773
    • docs(website): add language support page by @ematipico in https://github.com/rome/tools/pull/3751
    • fix(rome_js_analyze): inline variable considering initializer by @xunilrj in https://github.com/rome/tools/pull/3777
    • feat(rome_cli): cli exit as error when no files are found by @xunilrj in https://github.com/rome/tools/pull/3722
    • feat(rome_js_analyze): noPrecisionLoss by @95th in https://github.com/rome/tools/pull/3756
    • doc(contributing): fix the wrong link for analyzers and lint rules selection by @mzbac in https://github.com/rome/tools/pull/3784
    • chore: remove dbg by @95th in https://github.com/rome/tools/pull/3785
    • feat(rome_js_parser): Improve parser error for generator function in an ambient context by @denbezrukov in https://github.com/rome/tools/pull/3778
    • fix(semantic_analyzers): fix the false positive for noConstAssign by @mzbac in https://github.com/rome/tools/pull/3747
    • fix(rome_js_analyze): false negatives of noArrayIndexKey by @lucasweng in https://github.com/rome/tools/pull/3681
    • fix(rome_js_semantic): include binding for type parameters by @95th in https://github.com/rome/tools/pull/3803
    • refactor(rome_diagnostics): remove the legacy Diagnostics API by @leops in https://github.com/rome/tools/pull/3811
    • feat(rome_service): add $schema to configuration by @ematipico in https://github.com/rome/tools/pull/3738
    • fix(rome_js_formatter): Inline object like pattern for formal parameter by @denbezrukov in https://github.com/rome/tools/pull/3802
    • fix(rome_js_parser): async label #3612 by @denbezrukov in https://github.com/rome/tools/pull/3808
    • feat(rome_js_analyze): add noEmptyInterface rule by @kaioduarte in https://github.com/rome/tools/pull/3801
    • fix: apply chmod at pkg creation time by @castarco in https://github.com/rome/tools/pull/3800
    • refactor(rome_cli): improve the stability of the max_diagnostics tests by @leops in https://github.com/rome/tools/pull/3729
    • refactor(rome_analyze): align the syntax of lint suppression with the corresponding diagnostic category by @leops in https://github.com/rome/tools/pull/3788
    • feat(rome_js_analyze): add noHeaderScope rule by @kaioduarte in https://github.com/rome/tools/pull/3804
    • chore(website): update code contributors list by @kaioduarte in https://github.com/rome/tools/pull/3819
    • feat(website): Throttle playground URL update by @sebmck in https://github.com/rome/tools/pull/3821
    • feat(rome_js_analyze): Implement noStringCaseMismatch by @95th in https://github.com/rome/tools/pull/3794
    • feat(rome_js_analyze): rule noAccessKey by @lucasweng in https://github.com/rome/tools/pull/3796
    • feat(rome_js_analyze): noVar by @Conaclos in https://github.com/rome/tools/pull/3765
    • feat(rome_analyze): suppress rule via code actions by @ematipico in https://github.com/rome/tools/pull/3572
    • feat(website): change enabledNurseryRules to All/Recommended select by @Kanary159357 in https://github.com/rome/tools/pull/3810
    • feat(rome_js_analyze): noConstructorReturn by @Conaclos in https://github.com/rome/tools/pull/3805
    • feat(rome_js_analyze): noSetterReturn by @Conaclos in https://github.com/rome/tools/pull/3783
    • fix(rome_js_formatter): shothanded named import line break with default import by @unvalley in https://github.com/rome/tools/pull/3826
    • feat(rome_js_analyze): implement noDistractingElements by @95th in https://github.com/rome/tools/pull/3820
    • feat(rome_json_parser): JSON Lexer by @MichaReiser in https://github.com/rome/tools/pull/3809
    • feat(rome_js_semantic): model improvements by @xunilrj in https://github.com/rome/tools/pull/3825
    • fix(rome_lsp): lsp friendly catch unwind by @xunilrj in https://github.com/rome/tools/pull/3740
    • feat(rome_js_analyze): add noExtraNonNullAssertion rule by @kaioduarte in https://github.com/rome/tools/pull/3797
    • fix(rome_diagnostics): allow diagnostic locations to be created without a resource by @leops in https://github.com/rome/tools/pull/3834
    • feat(rome_cli): expose the --verbose flag to the CLI by @leops in https://github.com/rome/tools/pull/3812
    • feat(rome_js_analyze): noVoidTypeReturn by @Conaclos in https://github.com/rome/tools/pull/3806
    • website(docs): Fix text formatting by @andywampir in https://github.com/rome/tools/pull/3828
    • feat(rome_js_analyze): use exhaustive deps support properties by @xunilrj in https://github.com/rome/tools/pull/3581
    • chore: run rustfmt and typo fix by @lucasweng in https://github.com/rome/tools/pull/3840
    • feat(rome_js_analyze): useDefaultSwitchClauseLast by @Conaclos in https://github.com/rome/tools/pull/3791
    • fix(semantic_analyzers): style/noShoutyConstants does not recognize multiple uses of a constant. by @mzbac in https://github.com/rome/tools/pull/3789
    • feat(rome_js_analyze): faster version of noArguments by @xunilrj in https://github.com/rome/tools/pull/3838
    • chore(rome_analyze): remove FileId from diagnostics by @ematipico in https://github.com/rome/tools/pull/3843
    • docs(formatter): configuration using rome.json by @simon04 in https://github.com/rome/tools/pull/3689
    • refactor(rome_js_parser): Extract shared parser infrastructure by @MichaReiser in https://github.com/rome/tools/pull/3833
    • fix(rome_cli): normalize the content of CLI snapshots by @leops in https://github.com/rome/tools/pull/3835
    • fix(rome_cli): fix small CLI and test issues by @leops in https://github.com/rome/tools/pull/3853
    • feat(rome_diagnostics): add with_severity API by @ematipico in https://github.com/rome/tools/pull/3823
    • feat(rome_json_parser): JSON Parser by @MichaReiser in https://github.com/rome/tools/pull/3836
    • chore: Upgrade Prettier by @MichaReiser in https://github.com/rome/tools/pull/3857
    • refactor(js-api): remove the JSON-RPC backend and unimplemented methods by @leops in https://github.com/rome/tools/pull/3831
    • feat(rome_js_analyze): implement the organizeImports code action by @leops in https://github.com/rome/tools/pull/3818

    New Contributors

    • @msdlisper made their first contribution in https://github.com/rome/tools/pull/3773
    • @castarco made their first contribution in https://github.com/rome/tools/pull/3800
    • @Kanary159357 made their first contribution in https://github.com/rome/tools/pull/3810

    Full Changelog: https://github.com/rome/tools/compare/cli/v10.0.1-nightly.00266da...lsp/v0.19.20221125

    Source code(tar.gz)
    Source code(zip)
    rome_lsp-darwin-arm64.vsix(3.83 MB)
    rome_lsp-darwin-x64.vsix(4.08 MB)
    rome_lsp-linux-arm64.vsix(4.01 MB)
    rome_lsp-linux-x64.vsix(4.27 MB)
    rome_lsp-win32-arm64.vsix(4.04 MB)
    rome_lsp-win32-x64.vsix(4.33 MB)
  • cli/v10.0.1-nightly.b7eb6fd(Nov 25, 2022)

    What's Changed

    • feat(rome_js_analyze): implement noUnsafeFinally lint by @95th in https://github.com/rome/tools/pull/3752
    • feat(rome_js_analyze): Suggested fix for Conditional Assignment by @95th in https://github.com/rome/tools/pull/3771
    • feat(rome_js_parser): export default function in declare module #3485 by @denbezrukov in https://github.com/rome/tools/pull/3775
    • chore: remove unused .. by @msdlisper in https://github.com/rome/tools/pull/3773
    • docs(website): add language support page by @ematipico in https://github.com/rome/tools/pull/3751
    • fix(rome_js_analyze): inline variable considering initializer by @xunilrj in https://github.com/rome/tools/pull/3777
    • feat(rome_cli): cli exit as error when no files are found by @xunilrj in https://github.com/rome/tools/pull/3722
    • feat(rome_js_analyze): noPrecisionLoss by @95th in https://github.com/rome/tools/pull/3756
    • doc(contributing): fix the wrong link for analyzers and lint rules selection by @mzbac in https://github.com/rome/tools/pull/3784
    • chore: remove dbg by @95th in https://github.com/rome/tools/pull/3785
    • feat(rome_js_parser): Improve parser error for generator function in an ambient context by @denbezrukov in https://github.com/rome/tools/pull/3778
    • fix(semantic_analyzers): fix the false positive for noConstAssign by @mzbac in https://github.com/rome/tools/pull/3747
    • fix(rome_js_analyze): false negatives of noArrayIndexKey by @lucasweng in https://github.com/rome/tools/pull/3681
    • fix(rome_js_semantic): include binding for type parameters by @95th in https://github.com/rome/tools/pull/3803
    • refactor(rome_diagnostics): remove the legacy Diagnostics API by @leops in https://github.com/rome/tools/pull/3811
    • feat(rome_service): add $schema to configuration by @ematipico in https://github.com/rome/tools/pull/3738
    • fix(rome_js_formatter): Inline object like pattern for formal parameter by @denbezrukov in https://github.com/rome/tools/pull/3802
    • fix(rome_js_parser): async label #3612 by @denbezrukov in https://github.com/rome/tools/pull/3808
    • feat(rome_js_analyze): add noEmptyInterface rule by @kaioduarte in https://github.com/rome/tools/pull/3801
    • fix: apply chmod at pkg creation time by @castarco in https://github.com/rome/tools/pull/3800
    • refactor(rome_cli): improve the stability of the max_diagnostics tests by @leops in https://github.com/rome/tools/pull/3729
    • refactor(rome_analyze): align the syntax of lint suppression with the corresponding diagnostic category by @leops in https://github.com/rome/tools/pull/3788
    • feat(rome_js_analyze): add noHeaderScope rule by @kaioduarte in https://github.com/rome/tools/pull/3804
    • chore(website): update code contributors list by @kaioduarte in https://github.com/rome/tools/pull/3819
    • feat(website): Throttle playground URL update by @sebmck in https://github.com/rome/tools/pull/3821
    • feat(rome_js_analyze): Implement noStringCaseMismatch by @95th in https://github.com/rome/tools/pull/3794
    • feat(rome_js_analyze): rule noAccessKey by @lucasweng in https://github.com/rome/tools/pull/3796
    • feat(rome_js_analyze): noVar by @Conaclos in https://github.com/rome/tools/pull/3765
    • feat(rome_analyze): suppress rule via code actions by @ematipico in https://github.com/rome/tools/pull/3572
    • feat(website): change enabledNurseryRules to All/Recommended select by @Kanary159357 in https://github.com/rome/tools/pull/3810
    • feat(rome_js_analyze): noConstructorReturn by @Conaclos in https://github.com/rome/tools/pull/3805
    • feat(rome_js_analyze): noSetterReturn by @Conaclos in https://github.com/rome/tools/pull/3783
    • fix(rome_js_formatter): shothanded named import line break with default import by @unvalley in https://github.com/rome/tools/pull/3826
    • feat(rome_js_analyze): implement noDistractingElements by @95th in https://github.com/rome/tools/pull/3820
    • feat(rome_json_parser): JSON Lexer by @MichaReiser in https://github.com/rome/tools/pull/3809
    • feat(rome_js_semantic): model improvements by @xunilrj in https://github.com/rome/tools/pull/3825
    • fix(rome_lsp): lsp friendly catch unwind by @xunilrj in https://github.com/rome/tools/pull/3740
    • feat(rome_js_analyze): add noExtraNonNullAssertion rule by @kaioduarte in https://github.com/rome/tools/pull/3797
    • fix(rome_diagnostics): allow diagnostic locations to be created without a resource by @leops in https://github.com/rome/tools/pull/3834
    • feat(rome_cli): expose the --verbose flag to the CLI by @leops in https://github.com/rome/tools/pull/3812
    • feat(rome_js_analyze): noVoidTypeReturn by @Conaclos in https://github.com/rome/tools/pull/3806
    • website(docs): Fix text formatting by @andywampir in https://github.com/rome/tools/pull/3828
    • feat(rome_js_analyze): use exhaustive deps support properties by @xunilrj in https://github.com/rome/tools/pull/3581
    • chore: run rustfmt and typo fix by @lucasweng in https://github.com/rome/tools/pull/3840
    • feat(rome_js_analyze): useDefaultSwitchClauseLast by @Conaclos in https://github.com/rome/tools/pull/3791
    • fix(semantic_analyzers): style/noShoutyConstants does not recognize multiple uses of a constant. by @mzbac in https://github.com/rome/tools/pull/3789
    • feat(rome_js_analyze): faster version of noArguments by @xunilrj in https://github.com/rome/tools/pull/3838
    • chore(rome_analyze): remove FileId from diagnostics by @ematipico in https://github.com/rome/tools/pull/3843
    • docs(formatter): configuration using rome.json by @simon04 in https://github.com/rome/tools/pull/3689
    • refactor(rome_js_parser): Extract shared parser infrastructure by @MichaReiser in https://github.com/rome/tools/pull/3833
    • fix(rome_cli): normalize the content of CLI snapshots by @leops in https://github.com/rome/tools/pull/3835
    • fix(rome_cli): fix small CLI and test issues by @leops in https://github.com/rome/tools/pull/3853
    • feat(rome_diagnostics): add with_severity API by @ematipico in https://github.com/rome/tools/pull/3823
    • feat(rome_json_parser): JSON Parser by @MichaReiser in https://github.com/rome/tools/pull/3836
    • chore: Upgrade Prettier by @MichaReiser in https://github.com/rome/tools/pull/3857
    • refactor(js-api): remove the JSON-RPC backend and unimplemented methods by @leops in https://github.com/rome/tools/pull/3831
    • feat(rome_js_analyze): implement the organizeImports code action by @leops in https://github.com/rome/tools/pull/3818

    New Contributors

    • @msdlisper made their first contribution in https://github.com/rome/tools/pull/3773
    • @castarco made their first contribution in https://github.com/rome/tools/pull/3800
    • @Kanary159357 made their first contribution in https://github.com/rome/tools/pull/3810

    Full Changelog: https://github.com/rome/tools/compare/cli/v10.0.1-nightly.00266da...cli/v10.0.1-nightly.b7eb6fd

    Source code(tar.gz)
    Source code(zip)
    rome-darwin-arm64(8.83 MB)
    rome-darwin-x64(9.30 MB)
    rome-linux-arm64(9.17 MB)
    rome-linux-x64(10.43 MB)
    rome-win32-arm64.exe(10.35 MB)
    rome-win32-x64.exe(12.08 MB)
  • lsp/v0.19.20221117(Nov 17, 2022)

    What's Changed

    • chore(VSCode): publish extension to Open VSX by @sebmck in https://github.com/rome/tools/pull/3677
    • feat(rome_js_formatter,rome_cli): Add semicolons option by @MichaReiser in https://github.com/rome/tools/pull/3702
    • chore: remove preview from VSCode extension by @ematipico in https://github.com/rome/tools/pull/3759
    • fix(rome_js_analyze): improve exception control flow handling by @leops in https://github.com/rome/tools/pull/3761
    • feat(rome_js_analyze): new rule noCondAssign by @95th in https://github.com/rome/tools/pull/3750
    • feat(ci): add a new PR command to benchmark the CLI with hyperfine by @leops in https://github.com/rome/tools/pull/3764
    • ci: change stable bot wording by @ematipico in https://github.com/rome/tools/pull/3760
    • fix(ci): finish the !bench_cli command by @leops in https://github.com/rome/tools/pull/3766
    • feat(rome_fs): Add support for symbolic links (symlinks) by @diceride in https://github.com/rome/tools/pull/3706

    New Contributors

    • @diceride made their first contribution in https://github.com/rome/tools/pull/3706

    Full Changelog: https://github.com/rome/tools/compare/lsp/v0.19.20221116...lsp/v0.19.20221117

    Source code(tar.gz)
    Source code(zip)
    rome_lsp-darwin-arm64.vsix(3.72 MB)
    rome_lsp-darwin-x64.vsix(3.94 MB)
    rome_lsp-linux-arm64.vsix(3.88 MB)
    rome_lsp-linux-x64.vsix(4.13 MB)
    rome_lsp-win32-arm64.vsix(3.89 MB)
    rome_lsp-win32-x64.vsix(4.17 MB)
  • lsp/v0.19.20221116(Nov 16, 2022)

    What's Changed

    • fix(npm/js-api): Import type from @rometools/backend-jsonrpc by @nikolaxhristov in https://github.com/rome/tools/pull/3647
    • [website] Port docs to astro by @sebmck in https://github.com/rome/tools/pull/3659
    • Revert "[website] Port docs to astro" by @sebmck in https://github.com/rome/tools/pull/3662
    • docs: change indent-style from tabs to tab by @lolopinto in https://github.com/rome/tools/pull/3657
    • fix(website): fix grammar mistake by @strager in https://github.com/rome/tools/pull/3666
    • doc(website): Astro migration and playground polish by @sebmck in https://github.com/rome/tools/pull/3679
    • website(docs): Astro fixes by @sebmck in https://github.com/rome/tools/pull/3687
    • Fix pnpm install command by @levrik in https://github.com/rome/tools/pull/3688
    • docs(configuration): add to sidebar by @simon04 in https://github.com/rome/tools/pull/3691
    • website(docs): Add package manager command selector by @sebmck in https://github.com/rome/tools/pull/3692
    • website(docs): Add ability to resize playground code view and collapse settings by @sebmck in https://github.com/rome/tools/pull/3693
    • website(docs): Fix some regressions by @sebmck in https://github.com/rome/tools/pull/3694
    • website(docs): Remove base property from netlify.toml by @sebmck in https://github.com/rome/tools/pull/3696
    • docs: fix broken links by @mkusaka in https://github.com/rome/tools/pull/3685
    • fix(lindoc): fix generated docs path by @95th in https://github.com/rome/tools/pull/3700
    • fix(rome_js_parser): Allow super in constructor parameter #3613 by @denbezrukov in https://github.com/rome/tools/pull/3678
    • docs: Add repository field in package.json files of published npm packages by @nstepien in https://github.com/rome/tools/pull/3703
    • website(docs): Add CodeBlockHeader by @sebmck in https://github.com/rome/tools/pull/3704
    • website(docs): Add default layout property by @sebmck in https://github.com/rome/tools/pull/3705
    • website(docs): More website tweaks by @sebmck in https://github.com/rome/tools/pull/3707
    • docs(website): added checkbox to toggle linter in playground by @PatrM in https://github.com/rome/tools/pull/3699
    • fix(rome_js_formatter): new expression attribute by @denbezrukov in https://github.com/rome/tools/pull/3686
    • website(docs): More playground IDE features by @sebmck in https://github.com/rome/tools/pull/3711
    • fix(rome_js_parser): improve yield parsing in non generator function by @95th in https://github.com/rome/tools/pull/3622
    • fix(rome_js_parser): improve await handling in non-async context by @95th in https://github.com/rome/tools/pull/3573
    • test(rome_js_formatter): update prettier tests by @denbezrukov in https://github.com/rome/tools/pull/3684
    • fix(rome_js_formatter): Single-line comment below a JSX prop triggers… by @denbezrukov in https://github.com/rome/tools/pull/3641
    • doc(website): Add context about Romes philosophy by @jaschaio in https://github.com/rome/tools/pull/3714
    • feat(rome_js_formatter): jestEach template literals #3308 by @denbezrukov in https://github.com/rome/tools/pull/3582
    • feat(rome_js_analyze): Implement prefer-numeric-literals lint by @95th in https://github.com/rome/tools/pull/3558
    • feat(rome_analyze): add a warning for unused suppression comments by @leops in https://github.com/rome/tools/pull/3718
    • website(docs): set color-scheme on the root element by @nstepien in https://github.com/rome/tools/pull/3721
    • fix(rome_lsp): update all diagnostics after a configuration change by @leops in https://github.com/rome/tools/pull/3724
    • feat(vscode): try to resolve the rome package from the workspace root by @leops in https://github.com/rome/tools/pull/3717
    • feat(rome_js_analyze): lint/correctness/noDupeKeys by @jeysal in https://github.com/rome/tools/pull/3562
    • feat(rome_cli): add a --force-colors argument by @leops in https://github.com/rome/tools/pull/3625
    • doc(website): Document Versioning by @MichaReiser in https://github.com/rome/tools/pull/3584
    • feat(rome_cli): print number of errors in summary by @SuperchupuDev in https://github.com/rome/tools/pull/3651
    • feat(rome_analyze): extend ActionCategory to allow expressing more code action kinds by @leops in https://github.com/rome/tools/pull/3627
    • fix(rome_js_formatter): jsx whitespace is meaningful jsx text by @denbezrukov in https://github.com/rome/tools/pull/3732
    • docs(contributing): update internal documentation links by @mzbac in https://github.com/rome/tools/pull/3742
    • ci: fix conformance workflow by @ematipico in https://github.com/rome/tools/pull/3743
    • chore: add @ematipico to some crates by @ematipico in https://github.com/rome/tools/pull/3744
    • Add notes about language-specific config by @IanVS in https://github.com/rome/tools/pull/3730
    • feat(rome_cli): ignore option of files config by @nissy-dev in https://github.com/rome/tools/pull/3564
    • fix(rome_js_formatter): Unnecessary parentheses for return/unary with verbatim argument by @MichaReiser in https://github.com/rome/tools/pull/3736
    • fix(rome_js_formatter): restrict export line break for single specifier by @unvalley in https://github.com/rome/tools/pull/3726
    • fix(rome_lsp): improve the handling of UTF-8 and overflow errors in LineIndex by @leops in https://github.com/rome/tools/pull/3745
    • feat(rome_js_analyzer): new rule: useConst by @95th in https://github.com/rome/tools/pull/3680
    • docs(website): fix broken link to blog by @iamnapo in https://github.com/rome/tools/pull/3758

    New Contributors

    • @nikolaxhristov made their first contribution in https://github.com/rome/tools/pull/3647
    • @lolopinto made their first contribution in https://github.com/rome/tools/pull/3657
    • @levrik made their first contribution in https://github.com/rome/tools/pull/3688
    • @simon04 made their first contribution in https://github.com/rome/tools/pull/3691
    • @mkusaka made their first contribution in https://github.com/rome/tools/pull/3685
    • @nstepien made their first contribution in https://github.com/rome/tools/pull/3703
    • @PatrM made their first contribution in https://github.com/rome/tools/pull/3699
    • @jaschaio made their first contribution in https://github.com/rome/tools/pull/3714
    • @mzbac made their first contribution in https://github.com/rome/tools/pull/3742
    • @IanVS made their first contribution in https://github.com/rome/tools/pull/3730
    • @iamnapo made their first contribution in https://github.com/rome/tools/pull/3758

    Full Changelog: https://github.com/rome/tools/compare/js-api/v0.1.3...lsp/v0.19.20221116

    Source code(tar.gz)
    Source code(zip)
    rome_lsp-darwin-arm64.vsix(3.63 MB)
    rome_lsp-darwin-x64.vsix(3.86 MB)
    rome_lsp-linux-arm64.vsix(3.80 MB)
    rome_lsp-linux-x64.vsix(4.04 MB)
    rome_lsp-win32-arm64.vsix(3.82 MB)
    rome_lsp-win32-x64.vsix(4.08 MB)
  • cli/v10.0.1-nightly.00266da(Nov 17, 2022)

    What's Changed

    • chore(VSCode): publish extension to Open VSX by @sebmck in https://github.com/rome/tools/pull/3677
    • feat(rome_js_formatter,rome_cli): Add semicolons option by @MichaReiser in https://github.com/rome/tools/pull/3702
    • chore: remove preview from VSCode extension by @ematipico in https://github.com/rome/tools/pull/3759
    • fix(rome_js_analyze): improve exception control flow handling by @leops in https://github.com/rome/tools/pull/3761
    • feat(rome_js_analyze): new rule noCondAssign by @95th in https://github.com/rome/tools/pull/3750
    • feat(ci): add a new PR command to benchmark the CLI with hyperfine by @leops in https://github.com/rome/tools/pull/3764
    • ci: change stable bot wording by @ematipico in https://github.com/rome/tools/pull/3760
    • fix(ci): finish the !bench_cli command by @leops in https://github.com/rome/tools/pull/3766
    • feat(rome_fs): Add support for symbolic links (symlinks) by @diceride in https://github.com/rome/tools/pull/3706

    New Contributors

    • @diceride made their first contribution in https://github.com/rome/tools/pull/3706

    Full Changelog: https://github.com/rome/tools/compare/lsp/v0.19.20221116...cli/v10.0.1-nightly.00266da

    Source code(tar.gz)
    Source code(zip)
    rome-darwin-arm64(8.52 MB)
    rome-darwin-x64(8.91 MB)
    rome-linux-arm64(8.81 MB)
    rome-linux-x64(9.99 MB)
    rome-win32-arm64.exe(9.90 MB)
    rome-win32-x64.exe(11.53 MB)
  • lsp/v0.18.1(Nov 10, 2022)

    What's Changed

    • fix(rome_js_analyze): improve the logic of jsx_reference_identifier_is_fragment by @leops in https://github.com/rome/tools/pull/3592
    • fix(rome_cli): Respect formatter/linter enabled from configuration by @MichaReiser in https://github.com/rome/tools/pull/3591
    • fix(rome_cli): correctly account for diff diagnostics in the printed diagnostics count by @leops in https://github.com/rome/tools/pull/3595
    • feat(vscode): display the version of the language server in the status bar by @leops in https://github.com/rome/tools/pull/3616
    • benchmark: Add pprettier and dprint to benchmark by @MichaReiser in https://github.com/rome/tools/pull/3597
    • fix(rome_js_analyze): Verify method name of React API calls by @MichaReiser in https://github.com/rome/tools/pull/3619
    • fix(rome_js_formatter): Trailing comma inside import #3600 by @denbezrukov in https://github.com/rome/tools/pull/3624
    • fix(rome_js_analyze): useValidAnchor considering all possible expressions by @xunilrj in https://github.com/rome/tools/pull/3599
    • chore(npm): add license by @SuperchupuDev in https://github.com/rome/tools/pull/3629
    • fix(rome_js_analyze): improve the detection of ReactDOM.render calls in noRenderReturnValue by @leops in https://github.com/rome/tools/pull/3626
    • doc(editors): Clarify Rome discovery by @MichaReiser in https://github.com/rome/tools/pull/3639
    • fix(rome_js_semantic): support for object and array bindings when exporting by @xunilrj in https://github.com/rome/tools/pull/3620
    • fix(rome_js_analyze): False positives for interactive elements in useKeyWithClickEvents by @MichaReiser in https://github.com/rome/tools/pull/3644
    • release: v10.0.1 by @leops in https://github.com/rome/tools/pull/3649

    New Contributors

    • @SuperchupuDev made their first contribution in https://github.com/rome/tools/pull/3629

    Full Changelog: https://github.com/rome/tools/compare/cli/v10.0.0...lsp/v0.18.1

    Source code(tar.gz)
    Source code(zip)
    rome_lsp-darwin-arm64.vsix(3.62 MB)
    rome_lsp-darwin-x64.vsix(3.85 MB)
    rome_lsp-linux-arm64.vsix(3.79 MB)
    rome_lsp-linux-x64.vsix(4.03 MB)
    rome_lsp-win32-arm64.vsix(3.82 MB)
    rome_lsp-win32-x64.vsix(4.08 MB)
  • js-api/v0.1.3(Nov 10, 2022)

    What's Changed

    • feat(rome_lsp): stop the daemon after the last client disconnects by @leops in https://github.com/rome/tools/pull/3643
    • fix(npm/js-api): Lazy load backend implementations by @MichaReiser in https://github.com/rome/tools/pull/3652

    Full Changelog: https://github.com/rome/tools/compare/js-api/v0.1.2...js-api/v0.1.3

    Source code(tar.gz)
    Source code(zip)
  • js-api/v0.1.2(Nov 10, 2022)

    What's Changed

    • feat(playground): add settings button and group IR by @DhrjArun in https://github.com/rome/tools/pull/3559
    • fix(rome_cli): ensures the service only connects to compatible versions by @leops in https://github.com/rome/tools/pull/3642
    • fix(npm/js_api): Ensure JS API build contains dist folder by @MichaReiser in https://github.com/rome/tools/pull/3648

    New Contributors

    • @DhrjArun made their first contribution in https://github.com/rome/tools/pull/3559

    Full Changelog: https://github.com/rome/tools/compare/cli/v10.0.1...js-api/v0.1.2

    Source code(tar.gz)
    Source code(zip)
  • js-api/v0.1.1(Nov 10, 2022)

    What's Changed

    • fix(rome_js_analyze): improve the logic of jsx_reference_identifier_is_fragment by @leops in https://github.com/rome/tools/pull/3592
    • fix(rome_cli): Respect formatter/linter enabled from configuration by @MichaReiser in https://github.com/rome/tools/pull/3591
    • fix(rome_cli): correctly account for diff diagnostics in the printed diagnostics count by @leops in https://github.com/rome/tools/pull/3595
    • feat(vscode): display the version of the language server in the status bar by @leops in https://github.com/rome/tools/pull/3616
    • benchmark: Add pprettier and dprint to benchmark by @MichaReiser in https://github.com/rome/tools/pull/3597
    • fix(rome_js_analyze): Verify method name of React API calls by @MichaReiser in https://github.com/rome/tools/pull/3619
    • fix(rome_js_formatter): Trailing comma inside import #3600 by @denbezrukov in https://github.com/rome/tools/pull/3624
    • fix(rome_js_analyze): useValidAnchor considering all possible expressions by @xunilrj in https://github.com/rome/tools/pull/3599
    • chore(npm): add license by @SuperchupuDev in https://github.com/rome/tools/pull/3629
    • fix(rome_js_analyze): improve the detection of ReactDOM.render calls in noRenderReturnValue by @leops in https://github.com/rome/tools/pull/3626
    • doc(editors): Clarify Rome discovery by @MichaReiser in https://github.com/rome/tools/pull/3639
    • fix(rome_js_semantic): support for object and array bindings when exporting by @xunilrj in https://github.com/rome/tools/pull/3620
    • fix(rome_js_analyze): False positives for interactive elements in useKeyWithClickEvents by @MichaReiser in https://github.com/rome/tools/pull/3644
    • release: v10.0.1 by @leops in https://github.com/rome/tools/pull/3649

    New Contributors

    • @SuperchupuDev made their first contribution in https://github.com/rome/tools/pull/3629

    Full Changelog: https://github.com/rome/tools/compare/cli/v10.0.0...js-api/v0.1.1

    Source code(tar.gz)
    Source code(zip)
  • cli/v10.0.1(Nov 10, 2022)

    What's Changed

    • fix(rome_js_analyze): improve the logic of jsx_reference_identifier_is_fragment by @leops in https://github.com/rome/tools/pull/3592
    • fix(rome_cli): Respect formatter/linter enabled from configuration by @MichaReiser in https://github.com/rome/tools/pull/3591
    • fix(rome_cli): correctly account for diff diagnostics in the printed diagnostics count by @leops in https://github.com/rome/tools/pull/3595
    • feat(vscode): display the version of the language server in the status bar by @leops in https://github.com/rome/tools/pull/3616
    • benchmark: Add pprettier and dprint to benchmark by @MichaReiser in https://github.com/rome/tools/pull/3597
    • fix(rome_js_analyze): Verify method name of React API calls by @MichaReiser in https://github.com/rome/tools/pull/3619
    • fix(rome_js_formatter): Trailing comma inside import #3600 by @denbezrukov in https://github.com/rome/tools/pull/3624
    • fix(rome_js_analyze): useValidAnchor considering all possible expressions by @xunilrj in https://github.com/rome/tools/pull/3599
    • chore(npm): add license by @SuperchupuDev in https://github.com/rome/tools/pull/3629
    • fix(rome_js_analyze): improve the detection of ReactDOM.render calls in noRenderReturnValue by @leops in https://github.com/rome/tools/pull/3626
    • doc(editors): Clarify Rome discovery by @MichaReiser in https://github.com/rome/tools/pull/3639
    • fix(rome_js_semantic): support for object and array bindings when exporting by @xunilrj in https://github.com/rome/tools/pull/3620
    • fix(rome_js_analyze): False positives for interactive elements in useKeyWithClickEvents by @MichaReiser in https://github.com/rome/tools/pull/3644
    • release: v10.0.1 by @leops in https://github.com/rome/tools/pull/3649

    New Contributors

    • @SuperchupuDev made their first contribution in https://github.com/rome/tools/pull/3629

    Full Changelog: https://github.com/rome/tools/compare/cli/v10.0.0...cli/v10.0.1

    Source code(tar.gz)
    Source code(zip)
    rome-darwin-arm64(8.33 MB)
    rome-darwin-x64(8.71 MB)
    rome-linux-arm64(8.64 MB)
    rome-linux-x64(9.79 MB)
    rome-win32-arm64.exe(9.72 MB)
    rome-win32-x64.exe(11.31 MB)
  • lsp/v0.18.0(Nov 8, 2022)

  • js-api/v0.1.0(Nov 8, 2022)

    What's Changed

    • release: 10.0.0 by @ematipico in https://github.com/rome/tools/pull/3526

    Full Changelog: https://github.com/rome/tools/compare/cli/v0.10.1-nightly.d3351fd...js-api/v0.1.0

    Source code(tar.gz)
    Source code(zip)
  • cli/v10.0.0(Nov 8, 2022)

  • lsp/v0.17.20221108(Nov 8, 2022)

    What's Changed

    • fix(rome_diagnostics): improve the handling of newline characters in diffs by @leops in https://github.com/rome/tools/pull/3523
    • feat(editors): add Restart LSP Server command by @kaioduarte in https://github.com/rome/tools/pull/3533
    • feat(rome_service): add a configuration option to set the file size limit of the workspace by @leops in https://github.com/rome/tools/pull/3530
    • fix(rome_js_analyze): add code action for noUnusedVariables by @ematipico in https://github.com/rome/tools/pull/3534
    • fix(rome_js_parser): Ignore bindings in desctructuring initializers by @MichaReiser in https://github.com/rome/tools/pull/3525
    • docs: update formatter and linter docs by @nissy-dev in https://github.com/rome/tools/pull/3536
    • doc(rome_js_parser,rome_js_formatter): Move Parser Test documentation by @MichaReiser in https://github.com/rome/tools/pull/3540
    • feat(rome_js_analyze): promote rules by @ematipico in https://github.com/rome/tools/pull/3471
    • ci: Fix version on windows build by @MichaReiser in https://github.com/rome/tools/pull/3543
    • docs(website): fix an invalid diagnostic example for useAnchorContent by @lucasweng in https://github.com/rome/tools/pull/3546
    • fix(rome_js_analyzer): escape dollar signs and backticks properly for useTemplate rule by @nissy-dev in https://github.com/rome/tools/pull/3477
    • doc(website): Rework Getting Started by @MichaReiser in https://github.com/rome/tools/pull/3547
    • fix(rome_js_analyze): fix const dependency in react hooks by @xunilrj in https://github.com/rome/tools/pull/3508
    • doc(rome_cli): Use permalinks in rome init by @MichaReiser in https://github.com/rome/tools/pull/3550
    • feat(vscode): watch configuration file by @ematipico in https://github.com/rome/tools/pull/3284
    • feat(rome_cli): allow to skip checks in rome ci command by @ematipico in https://github.com/rome/tools/pull/3545
    • docs(rome_diagnostics): Move Writing Diagnostics to the top by @MichaReiser in https://github.com/rome/tools/pull/3551
    • fix(rome_js_formatter): make empty line after hashbang optional by @unvalley in https://github.com/rome/tools/pull/3552
    • feat(rome_js_formatter): Remove unnecessary string escapes by @95th in https://github.com/rome/tools/pull/3555
    • feat(rome_js_formatter): number literals, number literal types, bigint literal types by @jeysal in https://github.com/rome/tools/pull/3554
    • chore: Upgrade to Rust 1.65.0 by @MichaReiser in https://github.com/rome/tools/pull/3557
    • Implement new website by @sebmck in https://github.com/rome/tools/pull/3556
    • doc(website): Run cargo lintdoc by @95th in https://github.com/rome/tools/pull/3567
    • fix(rome_js_analyzer): noInvalidConstructorSuper false positive for class expressions by @lucasweng in https://github.com/rome/tools/pull/3561
    • perf(rome_js_semantic): Use FX Hash function by @MichaReiser in https://github.com/rome/tools/pull/3565
    • [docs] Add navigation dropdown for docs by @sebmck in https://github.com/rome/tools/pull/3578
    • refactor(rome_cli): refactor the threading of parallel traversal to increase occupancy by @leops in https://github.com/rome/tools/pull/3577
    • doc: VS Code extension by @MichaReiser in https://github.com/rome/tools/pull/3579
    • perf: End-to-end Linter and Formatter benchmarks by @MichaReiser in https://github.com/rome/tools/pull/3570

    New Contributors

    • @unvalley made their first contribution in https://github.com/rome/tools/pull/3552
    • @95th made their first contribution in https://github.com/rome/tools/pull/3555
    • @jeysal made their first contribution in https://github.com/rome/tools/pull/3554

    Full Changelog: https://github.com/rome/tools/compare/cli/v0.10.1-nightly.a9db0f0...lsp/v0.17.20221108

    Source code(tar.gz)
    Source code(zip)
    rome_lsp-darwin-arm64.vsix(3.63 MB)
    rome_lsp-darwin-x64.vsix(3.86 MB)
    rome_lsp-linux-arm64.vsix(3.79 MB)
    rome_lsp-linux-x64.vsix(4.04 MB)
    rome_lsp-win32-arm64.vsix(3.82 MB)
    rome_lsp-win32-x64.vsix(4.09 MB)
  • cli/v0.10.1-nightly.d3351fd(Nov 8, 2022)

    What's Changed

    • fix(ci): fix the release workflows for the stable release by @leops in https://github.com/rome/tools/pull/3583
    • fix(docs): use the standard picture element to display the logo by @leops in https://github.com/rome/tools/pull/3585

    Full Changelog: https://github.com/rome/tools/compare/cli/v0.10.1-nightly.03b7f2f...cli/v0.10.1-nightly.d3351fd

    Source code(tar.gz)
    Source code(zip)
    rome-darwin-arm64(8.33 MB)
    rome-darwin-x64(8.71 MB)
    rome-linux-arm64(8.64 MB)
    rome-linux-x64(9.79 MB)
    rome-win32-arm64.exe(9.72 MB)
    rome-win32-x64.exe(11.31 MB)
  • cli/v0.10.1-nightly.03b7f2f(Nov 8, 2022)

    What's Changed

    • fix(rome_diagnostics): improve the handling of newline characters in diffs by @leops in https://github.com/rome/tools/pull/3523
    • feat(editors): add Restart LSP Server command by @kaioduarte in https://github.com/rome/tools/pull/3533
    • feat(rome_service): add a configuration option to set the file size limit of the workspace by @leops in https://github.com/rome/tools/pull/3530
    • fix(rome_js_analyze): add code action for noUnusedVariables by @ematipico in https://github.com/rome/tools/pull/3534
    • fix(rome_js_parser): Ignore bindings in desctructuring initializers by @MichaReiser in https://github.com/rome/tools/pull/3525
    • docs: update formatter and linter docs by @nissy-dev in https://github.com/rome/tools/pull/3536
    • doc(rome_js_parser,rome_js_formatter): Move Parser Test documentation by @MichaReiser in https://github.com/rome/tools/pull/3540
    • feat(rome_js_analyze): promote rules by @ematipico in https://github.com/rome/tools/pull/3471
    • ci: Fix version on windows build by @MichaReiser in https://github.com/rome/tools/pull/3543
    • docs(website): fix an invalid diagnostic example for useAnchorContent by @lucasweng in https://github.com/rome/tools/pull/3546
    • fix(rome_js_analyzer): escape dollar signs and backticks properly for useTemplate rule by @nissy-dev in https://github.com/rome/tools/pull/3477
    • doc(website): Rework Getting Started by @MichaReiser in https://github.com/rome/tools/pull/3547
    • fix(rome_js_analyze): fix const dependency in react hooks by @xunilrj in https://github.com/rome/tools/pull/3508
    • doc(rome_cli): Use permalinks in rome init by @MichaReiser in https://github.com/rome/tools/pull/3550
    • feat(vscode): watch configuration file by @ematipico in https://github.com/rome/tools/pull/3284
    • feat(rome_cli): allow to skip checks in rome ci command by @ematipico in https://github.com/rome/tools/pull/3545
    • docs(rome_diagnostics): Move Writing Diagnostics to the top by @MichaReiser in https://github.com/rome/tools/pull/3551
    • fix(rome_js_formatter): make empty line after hashbang optional by @unvalley in https://github.com/rome/tools/pull/3552
    • feat(rome_js_formatter): Remove unnecessary string escapes by @95th in https://github.com/rome/tools/pull/3555
    • feat(rome_js_formatter): number literals, number literal types, bigint literal types by @jeysal in https://github.com/rome/tools/pull/3554
    • chore: Upgrade to Rust 1.65.0 by @MichaReiser in https://github.com/rome/tools/pull/3557
    • Implement new website by @sebmck in https://github.com/rome/tools/pull/3556
    • doc(website): Run cargo lintdoc by @95th in https://github.com/rome/tools/pull/3567
    • fix(rome_js_analyzer): noInvalidConstructorSuper false positive for class expressions by @lucasweng in https://github.com/rome/tools/pull/3561
    • perf(rome_js_semantic): Use FX Hash function by @MichaReiser in https://github.com/rome/tools/pull/3565
    • [docs] Add navigation dropdown for docs by @sebmck in https://github.com/rome/tools/pull/3578
    • refactor(rome_cli): refactor the threading of parallel traversal to increase occupancy by @leops in https://github.com/rome/tools/pull/3577
    • doc: VS Code extension by @MichaReiser in https://github.com/rome/tools/pull/3579
    • perf: End-to-end Linter and Formatter benchmarks by @MichaReiser in https://github.com/rome/tools/pull/3570

    New Contributors

    • @unvalley made their first contribution in https://github.com/rome/tools/pull/3552
    • @95th made their first contribution in https://github.com/rome/tools/pull/3555
    • @jeysal made their first contribution in https://github.com/rome/tools/pull/3554

    Full Changelog: https://github.com/rome/tools/compare/cli/v0.10.1-nightly.a9db0f0...cli/v0.10.1-nightly.03b7f2f

    Source code(tar.gz)
    Source code(zip)
    rome-darwin-arm64(8.33 MB)
    rome-darwin-x64(8.71 MB)
    rome-linux-arm64(8.64 MB)
    rome-linux-x64(9.79 MB)
    rome-win32-arm64.exe(9.72 MB)
    rome-win32-x64.exe(11.31 MB)
Owner
Rome
End-to-end development tools
Rome
The JavaScript Oxidation Compiler -> Linter / Prettier

The JavaScript Oxidation Compiler (oxc) Why this project? The goal of this project is to: Create a blazingly fast JavaScript Compiler written in Rust.

Boshen 125 Feb 22, 2023
Opinionated, zero-config linter for JavaScript monorepos

Sherif: Opinionated, zero-config linter for JavaScript monorepos About Sherif is an opinionated, zero-config linter for JavaScript monorepos. It runs

Tom Lienard 219 Oct 10, 2023
⚙️ A curated list of static analysis (SAST) tools for all programming languages, config files, build tools, and more.

This repository lists static analysis tools for all programming languages, build tools, config files and more. The official website, analysis-tools.de

Analysis Tools 10.7k Jan 2, 2023
A minimal browser with a super simple rendering engine for HTML and CSS, using Rust.

minimal-browser A minimal browser with a super simple rendering engine for HTML and CSS, using Rust. Credit: https://github.com/mbrubeck and https://l

Federico Baldini 3 Jan 15, 2023
🏭 Convert Markdown documents into themed HTML pages with support for code syntax highlighting, LaTeX and Mermaid diagrams.

Marky Markdown Magician ?? Features Hot reload previewing ?? Conversion to HTML / PDF ?? Themes! ✨ Extensions - Math, diagrams, syntax-highlighting ??

Vadim 12 Feb 19, 2023
Markdown to HTML converter written in Rust. Inspired by Katsuki Yuri's Makudaun Tool.

Makurust Makurust is a powerful tool written in Rust that allows you to effortlessly convert your Markdown files into static HTML pages. Inspired by T

Said (Fromgodd) 15 Apr 9, 2023
Js-macros - Quickly prototype Rust procedural macros using JavaScript or TypeScript!

js-macros Quickly prototype Rust procedural macros using JavaScript or TypeScript! Have you ever thought "this would be a great use case for a procedu

null 15 Jun 17, 2022
Resolve JavaScript/TypeScript module with Rust

ES Resolve JavaScript/TypeScript module resolution in Rust Installation cargo add es_resolve Get Started use std::path::{Path, PathBuf}; use es_resolv

wang chenyu 2 Oct 12, 2022
compile TypeScript or JavaScript to binaries

the powr project Development is paused until 2023. ?? powr aims to be a javascript/typescript engine to power serverless functions over the web. the j

powr.js 18 Dec 29, 2022
JavaScript/TypeScript runtime Deno was meant to be.

Project Bueno (temporary name) Bueno is a web-standards focused JS/TS runtime with as much tooling built-in as possible. It is meant to be both a lear

Bueno 22 Sep 3, 2023
More beautiful HTML reports for llvm-cov/cargo-llvm-cov

?? llvm-cov-pretty More beautiful HTML reports for llvm-cov (cargo-llvm-cov specifically). Dark theme support (switches automatically based on your br

Dominik Nakamura 13 Jun 26, 2023
Minimal Pandoc compiler -> HTML

Minimal Pandoc compiler -> HTML

/c/ympfh 1 Apr 6, 2022
An extremely fast Python linter, written in Rust.

Ruff An extremely fast Python linter, written in Rust. Linting the CPython codebase from scratch. ⚡️ 10-100x faster than existing linters ?? Installab

Charlie Marsh 5.1k Dec 30, 2022
Configurable, smart and fast CSS/SCSS/Sass/Less formatter.

?? Malva Malva is a configurable, smart and fast CSS/SCSS/Sass/Less formatter. Why? Configurable Malva is configurable. It provides several configurat

Pig Fang 20 Oct 27, 2023
excss is a small, simple, zero-runtime CSS-in-JS library with just two APIs.

excss excss is a small, simple, zero-runtime CSS-in-JS library with just two APIs.

Taishi Naritomi 12 Sep 12, 2023
CLI tool to quickly create React + Typescript + Tailwind projects

QUICK INIT CLI Tool to quickly create React projects with Tailwind automatically configured for use. Typescript is selected as default. If JS is to be

Oscar 5 Nov 3, 2022
A Typescript interpreter in Rust.

typescript This is a Rust native implementation of a Typescript Parser and a JIT execution engine. This project comes in two crates: [typescript-ast]:

Arne Simon 4 Oct 31, 2022
Write CI/CD pipelines using TypeScript

Katoa Katoa is a community fork of Cidada, a tool created by Fig which was sunset in late 2023 following acquisition by AWS. This fork and the underly

Katoa 47 Oct 6, 2023
A command-line tool aiming to upload the local image used in your markdown file to the GitHub repo and replace the local file path with the returned URL.

Pup A command line tool aiming to upload the local image used in your markdown file to the GitHub repo and replace the local file path with the return

SteveLau 11 Aug 17, 2022