{"id":13647393,"url":"https://github.com/Tehnix/ide-haskell-hie","last_synced_at":"2025-04-22T02:31:26.951Z","repository":{"id":142164669,"uuid":"100909258","full_name":"Tehnix/ide-haskell-hie","owner":"Tehnix","description":"Atom LSP plugin for HIE (Haskell IDE Engine)","archived":false,"fork":false,"pushed_at":"2019-08-11T19:13:26.000Z","size":40,"stargazers_count":26,"open_issues_count":11,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-16T03:09:32.335Z","etag":null,"topics":["atom","atom-plugin","haskell","haskell-ide-engine","lsp-server"],"latest_commit_sha":null,"homepage":"https://atom.io/packages/ide-haskell-hie","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tehnix.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-08-21T03:37:41.000Z","updated_at":"2020-01-13T13:10:13.000Z","dependencies_parsed_at":"2024-01-14T10:20:07.076Z","dependency_job_id":"bc08c188-beb3-406c-889e-1f629ea8daaf","html_url":"https://github.com/Tehnix/ide-haskell-hie","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tehnix%2Fide-haskell-hie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tehnix%2Fide-haskell-hie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tehnix%2Fide-haskell-hie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tehnix%2Fide-haskell-hie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tehnix","download_url":"https://codeload.github.com/Tehnix/ide-haskell-hie/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250163648,"owners_count":21385279,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["atom","atom-plugin","haskell","haskell-ide-engine","lsp-server"],"created_at":"2024-08-02T01:03:32.285Z","updated_at":"2025-04-22T02:31:26.727Z","avatar_url":"https://github.com/Tehnix.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# Atom plugin for HIE LSP server\nRudimentary support for [HIE](https://github.com/haskell/haskell-ide-engine), relies on [atom-ide-ui](https://atom.io/packages/atom-ide-ui) for displaying LSP interactions, and [language-haskell](https://atom.io/packages/language-haskell) to identify Haskell files. Internatlly uses [atom-languageclient](https://github.com/atom/atom-languageclient) for the LSP client, and [HIE](https://github.com/haskell/haskell-ide-engine) as the LSP server.\n\nTo get hie to automatically detect the correct hie version to use based on your projects GHC version, enable the experimental flag 'Use hie-wrapper', and make sure to build your project using the Makefile in the [HIE](https://github.com/haskell/haskell-ide-engine) repository (builds multiple versions of hie).\n\n## Installation\n\nYou can install `ide-haskell-hie` by using [`apm`](https://github.com/atom/apm).\n```\napm install ide-haskell-hie\n```\nOr via _Atom \u003e Settings view \u003e Install Packages \u003e Search packages \u003e ide-haskell-hie_\n\n### From source\nTo contribute to `ide-haskell-hie` you might want to install it from source:\n```\n# Get source from `ide-haskell-hie` repository\ngit clone git@github.com:Tehnix/ide-haskell-hie.git\ncd ide-haskell-hie\n# install dependencies\nnpm install\n# link local version in `dev` mode\napm link --dev\n# start Atom in `dev` mode\natom --dev\n# To unlink local version of `ide-haskell-hie` run\napm unlink --dev\n```\nFor more information about `apm` and `link` check [Contributing to Official Atom Packages]( https://flight-manual.atom.io/hacking-atom/sections/contributing-to-official-atom-packages/#contributing-to-official-atom-packages).\n\n\n## Configuration\n\nThe plugin should work out-the-box, but your environment may differ for many reasons, and the following are some configurations that might help you get it working.\n\n- `Absolute path to hie executable` will set the path to hie, in case it's not on your $PATH.\n- `Use hie wrapper` makes Atom use the `hie-wrapper.sh` file to start hie through. This does assume that you built the hie executable using `make build`, but will fall back to plain `hie`.\n- `Use custom hie wrapper` enables you to use your own custom hie wrapper script, if the standard one doesn't suit your need (e.g. to use with nix).\n- `The path to your custom hie wrapper` specifies the path to the custom wrapper, and is required for it to take effect.\n- `Turn on debugging output` passes the `--debug` flag to hie (although not if using a custom wrapper, then you're on your own).\n- `Log to a file (if debugging is on)` will set the log file that debug writes to.\n\nFor additional debugging (e.g. stderr), you can enable `Settings -\u003e Core -\u003e Debug L S P` or add `debugLSP: true` to the core section in `Debug -\u003e Config... -\u003e config.cson`, and then view the output in the Atom Developer Console.\n\n\n## A few screenshots of the working things\n#### Type/Datatips information on hover \u0026 Definitions/Hyperclick\n![Definitions/Hypercick support](https://user-images.githubusercontent.com/1189998/30351887-6a3f4d70-9858-11e7-87ae-ab90be448023.png)\n\n#### Linter/diagnostics on save\n![Linter Errors](https://user-images.githubusercontent.com/1189998/30351907-7d3d585e-9858-11e7-9a2f-66a8a1582010.png)\n\n#### Outline view \u0026 Highlighting\n![Outline view on the right side and highlight of anotherFunc](https://user-images.githubusercontent.com/1189998/30351896-71e56dca-9858-11e7-85d7-1d90eee11807.png)\n\n#### Code actions\n![Code actions being applied](https://user-images.githubusercontent.com/1189998/32152232-092b5aaa-bd66-11e7-8b48-583f21a9231e.gif)\n\n#### Code format\nNo screenshot really necessary here.\n\n## Not implemented\n\n- Find references (HIE does not support this yet, see [issue #361](https://github.com/haskell/haskell-ide-engine/issues/361))\n- Rename (HIE supports it, but [atom-languageclient](https://github.com/atom/atom-languageclient#capabilities) is TBD, see [issue #13](https://github.com/atom/atom-languageclient/issues/13))\n\n# Miscellaneous\nThe code for the providers that HIE supports can be found [here](https://github.com/haskell/haskell-ide-engine/blob/master/src/Haskell/Ide/Engine/Transport/LspStdio.hs#L758) (permanent link [here](https://github.com/haskell/haskell-ide-engine/blob/0e520cf8f93dbc6a41723bfc95c8c43f87fa6757/src/Haskell/Ide/Engine/Transport/LspStdio.hs#L758)).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTehnix%2Fide-haskell-hie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTehnix%2Fide-haskell-hie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTehnix%2Fide-haskell-hie/lists"}