Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Language Server for Hoon. Middleware to translate between the Language Server Protocol and your Urbit.

License

Notifications You must be signed in to change notification settings

urbit/hoon-language-server

Repository files navigation

hoon-language-server

Earth-side component of a language server for Hoon. Enables two-way communication between supported text editors and the language-server agent on an urbit ship.

Installation

npm

npm install -g @urbit/hoon-language-server

nix

nix-build -E 'with import <nixpkgs> {}; callPackage ./default.nix {}'
nix-env -i ./result

Running

NOTE: Usually your editor will handle this, you just need to set the correct parameters in your editor configuration.

hoon-language-server -p 80 -d 0 -u http://localhost -s zod -c lidlut-tabwed-pillex-ridrup

Configuration

  • -p: HTTP port of your (running) ship
  • -d: didSave event delay
  • -u: ship url
  • -s: @p of ship (without a sig)
  • -c: +code of ship (without a sig)

Urbit Setup

You must have an urbit ship running (can be a livenet ship) with the language-server agent started. To create and start a fake ~zod:

urbit -F zod -c zod

In the urbit dojo, start the language server:

dojo> |start %language-server

get the +code

dojo> +code

To start the same ship again in the future just run:

urbit zod

in the same directory it was created in.

Editor Setup

Your code editor now needs to use hoon-language-server as an LSP provider. Supported plugins:

VSCode

Emacs

Vim

hoon.vim does not use the language server itself, but the github page describes a setup using vim-lsp.

Neovim

Neovim users should use hoon.vim with one of the following LSP setups:

Native LSP

Install nvim-lspconfig. To use the default configuration, add the following to init.lua:

require'lspconfig'.hoon_ls.setup{}

To modify the default options use:

require'lspconfig'.hoon_ls.setup{
  cmd = {"hoon-language-server", "-p", "8080"}
}

You can include lua snippets in your init.vim like so:

lua << EOF
require'lspconfig'.hoon_ls.setup{}
EOF

coc.nvim

Install and configure coc.nvim, then add a languageserver entry to ~/.config/nvim/coc-settings.json:

{
  "languageserver": {
    "hoon-language-server": {
      "command": "hoon-language-server",
      "args": ["-p", "8080"],
      "filetypes": ["hoon"]
    }
  }
}

About

Language Server for Hoon. Middleware to translate between the Language Server Protocol and your Urbit.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 8