Elm Assist LSPA fast Elm development extension for VS Code, powered by a native Rust language server. Real-time diagnostics, auto-fix code actions, hover documentation for 54 built-in lint rules, and document formatting matching FeaturesReal-time diagnosticsLint errors appear as you type with 150ms debouncing. Parse errors are shown inline when syntax is invalid, while lint rules continue to run on the valid portions of your file. Quick-fix code actions25 rules offer auto-fixes via the lightbulb menu or Hover documentationHover over any diagnostic to see the rule name, description, and whether an auto-fix is available. Document formattingFormat Elm files with the same output as If you have another Elm extension installed that also provides formatting, set this as the default in your settings:
File watchingExternal changes (git checkout, build tools) are detected automatically. Config changes to Project-aware analysisThe server scans your entire project at startup, enabling cross-file rules like unused exports, unused modules, and unused custom type constructors. Rules54 rules covering simplification, unused code, code style, debugging, complexity, and port safety. 25 of these offer auto-fixes.
Full rule listSimplification NoIfTrueFalse (fix), NoBooleanCase (fix), NoAlwaysIdentity (fix), NoRedundantCons (fix), NoUnnecessaryParens (fix), NoNegationOfBooleanOperator (fix), NoFullyAppliedPrefixOperator (fix), NoIdentityFunction (fix), NoListLiteralConcat (fix), NoEmptyListConcat (fix), NoStringConcat (fix), NoBoolOperatorSimplify (fix), NoMaybeMapWithNothing (fix), NoResultMapWithErr (fix), NoPipelineSimplify (fix), NoNestedNegation (fix) Unused code NoUnusedImports (fix), NoUnusedVariables (fix), NoUnusedExports, NoUnusedCustomTypeConstructors, NoUnusedCustomTypeConstructorArgs, NoUnusedModules, NoUnusedParameters (fix), NoUnusedLetBinding (fix), NoUnusedPatterns Code style NoMissingTypeAnnotation, NoSinglePatternCase (fix), NoExposingAll (fix), NoImportExposingAll (fix), NoDeprecated, NoMissingDocumentation, NoUnnecessaryTrailingUnderscore, NoPrematureLetComputation, NoSimpleLetBody (fix), NoUnnecessaryPortModule (fix), NoMissingTypeAnnotationInLetIn, NoMissingTypeExpose, NoRedundantlyQualifiedType (fix), NoRecordPatternInFunctionArgs Debugging NoDebug (fix) Complexity CognitiveComplexity, NoUnoptimizedRecursion, NoRecursiveUpdate, NoConfusingPrefixOperator, NoShadowing Port safety NoDuplicatePorts, NoUnsafePorts, NoInconsistentAliases, NoUnusedDependencies Other NoEmptyLet (fix), NoEmptyRecordUpdate (fix), NoWildcardPatternLast, NoMaxLineLength, NoTodoComment RequirementsThe
Or download a pre-built binary from GitHub Releases. The extension searches for the binary in this order:
ConfigurationExtension settings
Project configurationCreate an
Changes to CLI toolsThe
See the elm-assist repository for full documentation. LicenseMIT |