#write #explore #wordnet #english #language-server #database #word-net

bin+lib wordnet-ls

A tool to explore language as you write, where you write

1 unstable release

0.1.0 Apr 10, 2024

#200 in Text editors

MIT license

3.5MB
159K SLoC

Wordnet language server

A tool to explore language as you write, where you write.

It currently supports English, using the WordNet database.

Actions

  • hover shows meaning of the word
  • gotoDefinition of a word for all info about it
    • also available through code actions to avoid conflicts
  • completion for words

Installation

Cargo

Currently, the main way to install wordnet-ls is by cloning the repo and running

cargo install --force wordnet-ls

This adds the binary wordnet-ls to the rust bin location.

Nix

You can also get it on nix, using the flake in this repo:

nix shell github:jeffa5/wordnet-ls

Configuration

You'll need to download a copy of wordnet. The tested version is 3.1.

To configure the location of the wordnet dictionary set the initializationOptions as:

{
  "wordnet": "<location>"
}

Home dir (~) should get expanded if needed.

Capabilities are all enabled by default, but can be disabled in the initializationOptions (e.g. to prevent conflicting handling of hover or gotoDefinition):

{
  "wordnet": "<location>",
  "enable_completion": false,
  "enable_hover": false,
  "enable_code_actions": false,
  "enable_goto_definition": false
}

Neovim

For debugging and quickly adding it to neovim you can use the provided vim.lua file, provided you have nvim-lspconfig. Just make sure to run cargo build and enter nvim from the root of this repo.

nvim test.txt
# then :LspStop
# then :luafile vim.lua
# then :LspStart
# Write some words and hit K to hover one

It by default is set up for the text and markdown filetypes.

WordNet

For more information about the WordNet database see here.

Dependencies

~7–19MB
~229K SLoC