UNPKG

dot-language-server

Version:
97 lines (75 loc) 2.32 kB
# dot-language-server [![CI](https://github.com/nikeee/dot-language-server/actions/workflows/CD.yml/badge.svg)](https://github.com/nikeee/dot-language-server/actions/workflows/CD.yml) ![Dependency Status](https://img.shields.io/librariesio/release/npm/dot-language-server) ![npm downloads](https://img.shields.io/npm/dm/dot-language-server) A language Server for the DOT language/Graphviz. ## Prerequisites - Node.js `>=18` - `npm` ## Installation ```Shell npm i -g dot-language-server ``` If you want to request or implement new features, head over to [dot-language-support](https://github.com/nikeee/dot-language-support). ## Features #### Refactorings ![Refactorings Demo in Sublime Text](https://raw.githubusercontent.com/nikeee/dot-language-server/master/doc/refactoring.gif) ## Usage ### Vim #### coc.nvim ```json { "languageserver": { "dot": { "command": "dot-language-server", "args": ["--stdio"], "filetypes": ["dot"] } } } ``` ### vim-lsp ```vim if executable('dot-language-server') augroup lsp autocmd! autocmd User lsp_setup call lsp#register_server({ \ 'name': 'dot', \ 'cmd': {server_info->['dot-language-server', '--stdio']}, \ 'whitelist': ['dot'], \ }) augroup END endif ``` ### [Neovim](https://neovim.io) ```lua vim.api.nvim_create_autocmd({ "BufEnter" }, { pattern = { "*.dot" }, callback = function() vim.lsp.start({ name = "dot", cmd = { "dot-language-server", "--stdio" } }) end, }) ``` ### Visual Studio Code TODO: There's an Extension for that. ### Sublime Text 1. Install [LSP support](https://github.com/tomv564/LSP) via `Install Package` -> [`LSP`](https://packagecontrol.io/packages/LSP) 2. Go to `Preferences: LSP Settings` 3. Add this to clients: ```JSON { "clients": { "dot-language-server": { "command": ["dot-language-server", "--stdio"], "enabled": true, "languageId": "dot", "scopes": ["source.dot"], "syntaxes": ["Packages/Graphviz/DOT.sublime-syntax"] } } } ``` **Note for Windows Users**: You have to append `.cmd` to the first entry in the `command` array (or, if possible, enable shell execution). ### Emacs For Emacs users, you need to use `lsp-mode` which supports the DOT Language Server out of the box. ...and you're done!