moodmosaic / atom-haskell

This Atom extension adds language support for Haskell, powered by the Haskell Language Server.
MIT License
2 stars 0 forks source link

Haskell language support for Atom, powered by haskell-language-server.

$ apm install language-haskell atom-ide-ui haskell

The idea is that if or when haskell-language-server exports a feature, and that feature is supported by the Language Server Protocol support for Atom, it should work without having to release a new version of this Atom package.


Features

Display type and source module of values

Display type and source module of values (and pin them also)

Display error messages (parse errors, typecheck errors, etc.) and enabled warnings

Replace suggested typos for values and module imports

nix-shell, ghcide? It's all supported

If just haskell-language-server-wrapper isn't your cup of tea, you can go to the Settings page and specify the actual command to run, and any arguments as comma-separated values:

exec: nix-shell
args: --run, haskell-language-server-wrapper --lsp

Style Tweaks

If you want to apply styling changes, you can add styles to the styles.less file in your %USERPROFILE%\.atom directory. You can also open this file inside Atom from the File > Stylesheet menu.

Styles used in the screenshots above

.datatip-marked-container {
  font-size: 114%;
  font-family:inherit;
}

.datatip-marked-container pre code {
  font-size: 124%;
  font-family: inherit;
}

.datatip-marked-container p {
  word-break: break-all;
}

.datatip-marked-container p br {
  display: none;
}

.diagnostics-code-action-button.btn.btn-xs span {
  font-size: 124%;
}

.diagnostics-popup {
  overflow-y: auto;

  .diagnostics-popup-header {
    margin-right: 10px;
    display: inline-block;
  }

  .diagnostics-popup-message {
    display: inline-block;
    font-size: 114%;
  }
}

.diagnostics-ui {
  font-size: 104%;
}