Official haskell ide support via language server (LSP). Successor of ghcide & haskell-ide-engine.
Go to file
Pepe Iborra d0e3e0fe3f
HLS benchmarks (#3117)
* extract ghcide:experiments-types

* extract haskell-language-server:plugins and let go of examples

The main goal here is to move the Plugins module into an internal
library so that it can be reused from the benchmark suite.

In order to
make that easier, and since they hardly serve a purpose in a repository
with 25 plugins, I delete the Example and Example2 plugin descriptors
and their dependencies.

* HLS benchmark suite

Port the ghcide benchmark suite to HLS and benchmark plugin
"configurations" independently.

This includes the following changes to the ghcide benchmark suite and
HLS:
- Support for "configurations" which are defined as sets of plugin ids.
  The benchmark will be run with only these plugins enabled and all
  others disabled
- Support for configurable concurrency. This relies on RTS -ol and -po
  flags to place the RTS traces in the target location rather than in
  the cwd

This change requires two commits, the next one places
ghcide/bench/hist/Main.hs into its final location to help 'git'
recognize the change as a file move

* ghcide/bench/hist/Main.hs -> bench/Main.hs

* CI - fix artifact names for uniqueness

* disable shorten HLS step

* Do not store eventlogs to avoid out of disk space

* render durations up to milliseconds

* shorten titles

Goal is to display the formatted CSV (via column) one row per line

* exclude formatting plugin configurations

* Extract ghcide-bench to a standalone package

* ghcide-bench: fix stderr capturing

* Fix mem stats

We parse maxResidency and allocatedBytes from the RTS -S output, but runSessionWithHandles kills the server without waiting for it to exit and these stats don't get logged.

The solution is to use runSessionWithHandles', but unfortunately it is internal and not exposed. I have raised a PR to expose it and in the meantime we need a source repo package.

* feedbacks

* delete Example plugins
2022-08-25 15:08:57 +01:00
.circleci Support ghc-9.2.4 (#3085) 2022-08-11 09:54:02 +01:00
.github HLS benchmarks (#3117) 2022-08-25 15:08:57 +01:00
.gitlab gitlab-ci: Fix executable extension on windows 2022-04-27 13:50:57 +05:30
bench HLS benchmarks (#3117) 2022-08-25 15:08:57 +01:00
bindist Support ghc-9.2.4 (#3085) 2022-08-11 09:54:02 +01:00
docs HLS benchmarks (#3117) 2022-08-25 15:08:57 +01:00
exe HLS benchmarks (#3117) 2022-08-25 15:08:57 +01:00
ghcide HLS benchmarks (#3117) 2022-08-25 15:08:57 +01:00
ghcide-bench HLS benchmarks (#3117) 2022-08-25 15:08:57 +01:00
hie-compat Add link to homepage and issues (#3119) 2022-08-23 15:46:53 +00:00
hls-graph Run pre-commit hooks (#3059) 2022-07-28 16:48:13 +00:00
hls-plugin-api HLS benchmarks (#3117) 2022-08-25 15:08:57 +01:00
hls-test-utils upgrade lsp to 1.5 (#3072) 2022-08-12 09:09:07 +00:00
plugins HLS benchmarks (#3117) 2022-08-25 15:08:57 +01:00
release Also recognize gz files in upload script 2022-04-27 13:51:52 +05:30
shake-bench HLS benchmarks (#3117) 2022-08-25 15:08:57 +01:00
src HLS benchmarks (#3117) 2022-08-25 15:08:57 +01:00
test HLS benchmarks (#3117) 2022-08-25 15:08:57 +01:00
test-logs Make sure the test-logs directory exists 2020-03-15 12:38:07 +00:00
.editorconfig removed Makefile section 2020-10-11 20:28:08 +02:00
.gitignore HLS benchmarks (#3117) 2022-08-25 15:08:57 +01:00
.gitlab-ci.yml Support ghc-9.2.4 (#3085) 2022-08-11 09:54:02 +01:00
.gitmodules Remove the ghcide submodule 2020-12-29 13:17:40 +00:00
.gitpod.Dockerfile Support ghc-9.2.4 (#3085) 2022-08-11 09:54:02 +01:00
.gitpod.yml handle trailing comma in import list properly (#3035) 2022-07-16 10:16:55 +00:00
.hlint.yaml Simplify hlint config (#3038) 2022-07-13 00:08:43 +01:00
.pre-commit-config.yaml Add Github precommit workflow (#3060) 2022-07-29 02:03:09 -04:00
.readthedocs.yaml Add initial sphinx doc site (#2083) 2021-08-11 08:54:51 +00:00
.stylish-haskell.yaml Add pre-commit hook for cleaning up mixed-line endings (#2679) 2022-02-04 14:50:18 +00:00
cabal.project HLS benchmarks (#3117) 2022-08-25 15:08:57 +01:00
ChangeLog.md Prepare 1.7.0.0 2022-04-21 14:08:10 +05:30
CITATION.cff Create a citation (#2155) 2021-09-04 04:17:44 +00:00
CODE_OF_CONDUCT.md Add proof of concept hard-coded hover handler 2020-01-25 19:45:32 +00:00
CODEOWNERS Stan integration #258 (#2908) 2022-07-28 02:11:31 +03:00
configuration-ghc-90.nix Bump Nix flake GHC 9.2.3 to 9.2.4 (#3081) 2022-08-08 15:26:15 +01:00
configuration-ghc-92.nix build(nix): ghc922 -> ghc923 (#3049) 2022-07-20 16:59:54 +00:00
default.nix Use cabal-install if nix is failing in CI (#1859) 2021-05-24 07:42:00 +02:00
docutils.nix nix update (#2892) 2022-05-13 10:09:51 +01:00
flake.lock upgrade lsp to 1.5 (#3072) 2022-08-12 09:09:07 +00:00
flake.nix upgrade lsp to 1.5 (#3072) 2022-08-12 09:09:07 +00:00
fmt.sh Add a new benchmark example to characterise multi-component performance (#1326) 2021-02-12 16:03:34 +00:00
FUNDING.yml Include sponsorship section (#2063) 2021-08-02 23:38:45 +00:00
GenChangelogs.hs Prepare 1.5.1 (#2393) 2021-11-28 12:54:17 +00:00
GNUmakefile Fix windows CI 2022-04-26 01:08:40 +05:30
haskell-language-server.cabal HLS benchmarks (#3117) 2022-08-25 15:08:57 +01:00
LICENSE Initial commit 2020-01-25 14:19:40 +00:00
README.md Support hls-hlint-plugin and hls-stylish-plugin for ghc9.0 and ghc9.2 (#2854) 2022-04-28 17:36:25 +00:00
Setup.hs Initial basic infrastucture 2020-01-25 14:33:53 +00:00
shell.nix Fix flake compat (#1852) 2021-05-21 15:58:26 -04:00
stack-lts16.yaml upgrade ghc-check to fix #3002 (#3034) 2022-08-19 02:24:02 +00:00
stack-lts19.yaml upgrade ghc-check to fix #3002 (#3034) 2022-08-19 02:24:02 +00:00
stack.yaml upgrade ghc-check to fix #3002 (#3034) 2022-08-19 02:24:02 +00:00

haskell-language-server

haskell-language-server

Release Hackage License Apache 2.0 CircleCI GitHub Testing Workflow GitHub Nix Workflow ircchat codetriage

The official Haskell language server (LSP) implementation. Consult the project documentation for more details.