boltlessengineer/neorg-language-server
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
* Neorg-language-server
> *NOTE:* this is heavily WIP project
** Current State
*** Dependencies
These are core dependencies for Neorg-language-server that must be completed first.
- [tree-sitter-norg3]{https://github.com/nvim-neorg/tree-sitter-norg3}
\: parser for Norg syntax
- [NorgBerg]{https://github.com/SevorisDoe/Norgberg}
\: DB for workspaces
Basically most of workspace features are stalled waiting for [NorgBerg].
** Features
- (x) `textDocument/documentSymbol` from headings
- ( ) `textDocument/workspaceSymbol` from headings
- ( ) `textDocument/completion`
-- link destination
-- anchor id
-- snippets
-- attached/detached modifier extensions
*** ( ) `textDocument/codeAction`
-- create file on broken link
-- move current section to external file
-- move current nestable list section to structural section
or external file
*** Links
- ( ) support all linkable types
-- link destination
--- (x) URI
---- ( ) support syntax sugars like `{file://~/notes/todo.norg}`
--- (=) file location
---- (x) basic (e.g. `{:file:}`)
---- (=) workspace (e.g. `{:$workspace/file:}`)
(waiting for [NorgBerg])
---- (=) scoping (e.g. `{:file:* heading}`)
(waiting for [tree-sitter-norg3])
--- (=) scope (line number, detached modifier)
(waiting for [tree-sitter-norg3])
-- ( ) alias
- (x) go to definition
- (x) go to references
- ( ) show hover (with norg format? is that even possible?)
- ( ) completion for link destination
- ( ) diagnostic for broken links
- ( ) update on file rename (`textDocument/willRenameFiles`)
-- (x) URI type
-- (=) norg link type (with proper workspace id)
- ( ) notify existing references on new file
*** misc
- ( ) `textDocument/foldingRange`
- ( ) `textDocument/selectionRange`
*** format
> formats should be handled from separate project.\
see [norg-fmt]
- ( ) on type formatting
- ( ) range formatting
---
see more on : {https://github.com/nvim-neorg/neorg/issues/513}[neorg#513]
%|vim: set conceallevel=3:|%