Rome unifies your development stack by combining the functionality of separate tools.
Single configuration file, amazing performance, and works with any stack.
Experience the seamless integration of a vertical toolchain. Full of useful features like formatting and linting, with even more coming soon.
function HelloWorld({greeting = "hello", greeted = '"World"', silent = false, onMouseOver,}) {
if(!greeting){return null};
// TODO: Don't use random in render
let num = Math.floor (Math.random() * 1E+7).toString().replace(/.d+/ig, "")
return <div className='HelloWorld' title={`You are visitor number ${ num }`} onMouseOver={onMouseOver}>
<strong>{ greeting.slice( 0, 1 ).toUpperCase() + greeting.slice(1).toLowerCase() }</strong>
{greeting.endsWith(",") ? " " : <span style={{color: 'grey'}}>", "</span> }
<em>
{ greeted }
</em>
{ (silent)
? "."
: "!"}
</div>;
}
function HelloWorld({
greeting = "hello",
greeted = '"World"',
silent = false,
onMouseOver,
}) {
if (!greeting) {
return null;
}
// TODO: Don't use random in render
let num = Math.floor(Math.random() * 1E+7)
.toString()
.replace(/.d+/gi, "");
return (
<div
className="HelloWorld"
title={`You are visitor number ${num}`}
onMouseOver={onMouseOver}
>
<strong>
{greeting.slice(0, 1).toUpperCase() + greeting.slice(1).toLowerCase()}
</strong>
{greeting.endsWith(",") ? (
" "
) : (
<span style={{ color: "grey" }}>", "</span>
)}
<em>{greeted}</em>
{silent ? "." : "!"}
</div>
);
}
Rome finished in 0.1s
Prettier finished in 4.3s
~25x
Faster than Prettier when formatting 85,000 lines of code. See benchmark.
function test(callback) {
try {
return callback();
} catch (e) {
console.log(e);
throw e;
}
return 20;
}
main.tsx:9:3 lint/nursery/noUnreachable ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ This code will never be reached ...
7 │ }
8 │
> 9 │ return 20;
│ ^^^^^^^^^^
10 │ }
ℹ ... because either this statement will return from the function ...
1 │ function test(callback) {
2 │ try {
> 3 │ return callback();
│ ^^^^^^^^^^^^^^^^^^
4 │ } catch (e) {
5 │ console.log(e);
ℹ ... or this statement will throw an exception beforehand
4 │ } catch (e) {
5 │ console.log(e);
> 6 │ throw e;
│ ^^^^^^^^
7 │ }
8 │
Built with Rust and an innovative architecture inspired by rust-analyzer. We are able to do even more while being faster.
Zero configuration needed to get started. Extensive options available for when you need them.
Designed to handle codebases of any size. Focus on growing product instead of your tools.
With tight internal integration we are able to reuse previous work and any improvement to one tool improves them all.
Avoid obscure error messages, when we tell you something is wrong, we tell you exactly where the problem is and how to fix it.
Out of the box support for all the language features you use today. First class support for TypeScript and JSX.
Install Rome using your preferred package manager or get it as a VS Code extension.