Skip to content

axtk/codeshape

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

codeshape

A linting utility with a built-in set of code-style rules for JS, TS, and CSS

Usage

  • Install codeshape into a project: npm i -D codeshape (or globally: npm i -g codeshape);
  • Run codeshape in the project directory.

Features

Consistent spacing for arrays and objects

As in the mathematical notation of vectors and set elements: (x, y, z), {x, y, z}.

[x, y, z]
{x, y, z}
{x: 0, y: 1, z: -1}

import {x} from './x';

Stroustrup indentation style

else and catch on the next line after } allow for consistent placement of comments covering the condition and the entire following block:

// this is a comment to the condition
if (condition) {
    // ...
}
// another comment
else if (otherCondition) {
    // ...
}
// yet another comment
else {
    // ...
}

Keywords are spaced, function() is not

As in the mathematical notation.

function(params), setCustomValue(value) as in f(x), no space before the bracket.

if (x), for (let i...), while (ok) as in regular logical statements, with a space before the conditional expression.

Arrow function brackets only when necessary

let f = x => x + 10; — akin to mapping a scalar x, normally unbracketed.

let g = (x, y) => x + y - 10; — akin to mapping a vector (x, y), normally bracketed.

Preferring let over const

Motivation:

  • Simple decision making, reduced cognitive load: let is good for all variables, let is the default;
  • Adherence to the semantic meaning of constants: const is an option to emphasize and communicate to other developers that a certain value should not be reassigned, which applies to intentionally fixed values and normally doesn't semantically apply to one-time local variables;
  • Compliance to the definition: const is for values that can't be reassigned, rather than for values that are not reassigned.

About

A linting utility with a built-in set of code-style rules for JS, TS, and CSS

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published