A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://haskell-language-server.readthedocs.io/en/latest/features.html below:

Website Navigation


Features — haskell-language-server 2.11.0.0 documentation

Features

This table gives a summary of the features that HLS supports. Many of these are standard LSP features, but a lot of special features are provided as code actions and code lenses.

The individual sections below also identify which HLS plugin is responsible for providing the given functionality, which is useful if you want to raise an issue report or contribute! Additionally, not all plugins are supported on all versions of GHC, see the plugin support page for details.

Diagnostics GHC compiler errors and warnings

Provided by: ghcide

Provides errors and warnings from GHC as diagnostics.

Hlint hints

Provided by: hls-hlint-plugin

Provides hlint hints as diagnostics.

Stan hints

Provided by: hls-stan-plugin

Provides Stan hints as diagnostics.

Cabal parse errors and warnings

Provided by: hls-cabal-plugin

Provides errors and warnings from Cabal as diagnostics

Hovers

Provided by: ghcide

Type information and documentation on hover, including from local definitions.

Show fixity

Provided by: hls-explicit-fixity-plugin

Provides fixity information.

Jump to definition

Provided by: ghcide

Jump to the definition of a name.

Known limitations:

Jump to type definition

Provided by: ghcide

Known limitations:

Jump to implementation

Provided by: ghcide

Jump to the implementation instance of a type class method.

Known limitations:

Jump to note definition

Provided by: hls-notes-plugin

Jump to the definition of a GHC-style note.

Find references

Provided by: ghcide

Find references to a name within the project.

Completions Code completions

Provided by: ghcide

Pragma completions

Provided by: hls-pragmas-plugin

Completions for language pragmas.

Formatting

Format your code with various Haskell code formatters. The default Haskell code formatter is ormolu, and the Haskell formatter can be configured via the formattingProvider option.

Formatter

Provided by

Floskell

hls-floskell-plugin

Fourmolu

hls-fourmolu-plugin

Ormolu

hls-ormolu-plugin

Stylish Haskell

hls-stylish-haskell-plugin

Format your cabal files with a cabal code formatter. The default cabal code formatter is cabal-gild, which needs to be available on the $PATH, or the location needs to be explicitly provided. To change the cabal formatter, edit the cabalFormattingProvider option.

Formatter

Provided by

cabal-fmt

hls-cabal-fmt-plugin

cabal-gild

hls-cabal-gild-plugin

Document symbols

Provided by: ghcide

Provides listing of the symbols defined in a module, used to power outline displays.

Workspace symbols

Provided by: ghcide

Provides listing of the symbols defined in the project, used to power searches.

Call hierarchy

Provided by: hls-call-hierarchy-plugin

Shows ingoing and outgoing calls for a function.

Highlight references

Provided by: ghcide

Highlights references to a name in a document.

Code actions Insert missing pragmas

Provided by: hls-pragma-plugin

Code action kind: quickfix

Inserts missing pragmas needed by GHC.

Apply Hlint fixes

Provided by: hls-hlint-plugin

Code action kind: quickfix

Applies hints, either individually or for the whole file. Uses apply-refact.

Known limitations:

Make import lists fully explicit

Provided by: hls-explicit-imports-plugin

Code action kind: quickfix.literals.style

Make import lists fully explicit (same as the code lens).

Refine import

Provided by: hls-explicit-imports-plugin

Code action kind: quickfix.import.refine

Refines imports to more specific modules when names are re-exported (same as the code lens).

Qualify imported names

Provided by: hls-qualify-imported-names-plugin

Code action kind: quickfix

Rewrites imported names to be qualified.

For usage see the readme.

Add missing class methods

Provided by: hls-class-plugin

Code action kind: quickfix

Adds placeholders for missing class methods in a class instance definition.

Unfold definition

Provided by: hls-retrie-plugin

Code action kind: refactor.extract

Extracts a definition from the code.

Fold definition

Provided by: hls-retrie-plugin

Code action kind: refactor.inline

Inlines a definition from the code.

Insert contents of Template Haskell splice

Provided by: hls-splice-plugin

Code action kind: refactor.rewrite

Evaluates a Template Haskell splice and inserts the resulting code in its place.

Convert numbers to alternative formats

Provided by: hls-alternate-number-format-plugin

Code action kind: quickfix.literals.style

Converts numeric literals to different formats.

Change Type Signature

Provided by: hls-change-type-signature-plugin

Code action kind: quickfix

Change/Update a type signature to match implementation.

Status: Until GHC 9.4, the implementation is ad-hoc and relies on GHC error messages to create a new signature. Not all GHC error messages are supported.

Known Limitations:

Link to Docs

Add argument to function

Provided by: hls-refactor-plugin

Code action kind: quickfix

Add an undefined variable as an argument to the top-level binding.

Convert to GADT syntax

Provided by: hls-gadt-plugin

Code action kind: refactor.rewrite

Convert a datatype to GADT syntax.

Link to Docs

Expand record wildcard

Provided by: hls-explicit-record-fields-plugin

Code action kind: refactor.rewrite

Expand record wildcards, explicitly listing all record fields as field puns.

Unknown SPDX License suggestion

Provided by: hls-cabal-plugin

Code action kind: quickfix

Correct common misspelling of SPDX Licenses such as BSD-3-Clause.

Add dependency to cabal file

Provided by: hls-cabal-plugin

Code action kind: quickfix

Add a missing package dependency to your .cabal file.

Code lenses Add type signature

Provided by: ghcide

Shows the type signature for bindings without type signatures, and adds it with a click.

Make import lists fully explicit code lens

Provided by: hls-explicit-imports-plugin

Shows fully explicit import lists and rewrites them with a click (same as the code action).

Refine import code lens

Provided by: hls-explicit-imports-plugin

Shows refined imports and applies them with a click (same as the code action).

Fix module names

Provided by: hls-module-name-plugin

Shows module name matching file path, and applies it with a click.

Selection range

Provided by: hls-code-range-plugin

Provides haskell specific shrink/expand selection support.

Folding range

Provided by: hls-code-range-plugin

Provides haskell specific Folding support.

Rename

Provided by: hls-rename-plugin

Provides renaming of symbols within a module. Experimental cross-module renaming can be enabled via the configuration.

Known limitations:

To eagerly load all components, you need to

Semantic tokens

Provided by: hls-semantic-tokens-plugin

Provides semantic tokens for each token in the source code to support semantic highlighting.

Rewrite to overloaded record syntax

Provided by: hls-overloaded-record-dot-plugin

Code action kind: refactor.rewrite

Rewrites record selectors to use overloaded dot syntax

Missing features

The following features are supported by the LSP specification but not implemented in HLS. Contributions welcome!

Feature

Status

LSP method

Signature help

Unimplemented

textDocument/signatureHelp

Jump to declaration

Unclear if useful

textDocument/declaration

Jump to implementation

Unclear if useful

textDocument/implementation

Linked editing

Unimplemented

textDocument/linkedEditingRange

Document links

Unimplemented

textDocument/documentLink

Document color

Unclear if useful

textDocument/documentColor

Color presentation

Unclear if useful

textDocument/colorPresentation

Monikers

Unclear if useful

textDocument/moniker


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4