You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

120 lines
2.0 KiB

3 years ago
# v0.1.0
```plantuml
box "vim/neovim" #A5D6A7
participant core
end box
box "ddc-vim-lsp" #FFCCBC
participant autoload
participant plugin
participant source
end box
box "ddc" #B2EBF2
participant ddc
end box
box "denops" #B2EBF2
participant denops
end box
box "vim-lsp" #B2EBF2
participant vimlsp as "vim-lsp"
end box
box "lsp" #BBDEFB
participant lsp as "lsp server"
end box
== input text ==
core -> ddc: detect input text
ddc -> source: gatherCandidates
source -> autoload: call ddc_vim_lsp#request
autoload ->> vimlsp: call lsp#send_request
source --> ddc: return empty candidates
...
group lsp sequence
vimlsp ->> lsp:
lsp ->> vimlsp:
end
vimlsp ->> autoload: callback
autoload -> vimlsp: call lsp#omni#get_vim_completion_items
return
autoload -> core: store lsp items
note right
store it on
vim global variable
endnote
autoload -> ddc: call ddc#refresh_candidates
return
...
ddc -> source: gatherCandidates
note right
"gatnerCandidates" is called automatically
to trigger by "ddc#refresh_candidates".
endnote
source -> denops: get lsp items
denops -> core: get variable
return variable
denops --> source: lsp items
source --> ddc: return candidates
```
# v0.0.1
3 years ago
```plantuml
box "vim/neovim" #A5D6A7
participant core
end box
box "ddc-vim-lsp" #FFCCBC
participant autoload
participant plugin
participant source
end box
box "ddc" #B2EBF2
participant ddc
end box
box "denops" #B2EBF2
participant denops
end box
box "vim-lsp" #B2EBF2
participant vimlsp as "vim-lsp"
end box
box "lsp" #BBDEFB
participant lsp as "lsp server"
end box
== input text ==
core -> ddc: detect input text
ddc -> source: gatherCandidates
source -> autoload: call ddc_vim_lsp#request
3 years ago
autoload ->> vimlsp: call lsp#send_request
3 years ago
group lsp sequence
vimlsp ->> lsp:
lsp ->> vimlsp:
end
3 years ago
vimlsp ->> autoload: callback
autoload -> vimlsp: call lsp#omni#get_vim_completion_items
return
3 years ago
autoload ->> source: call anonymous func
source -> source: call toCandidates
source ->> ddc: return candidates
```