diff options
author | mattn <mattn.jp@gmail.com> | 2020-01-30 19:18:40 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-30 19:18:40 +0900 |
commit | 45cc9231a106eda4fcbf22e9590397a7d2cce1c3 (patch) | |
tree | 816858c30c238ceb1739b4e0dda54e2e589d2e10 | |
parent | 8a75f94bbbf2e2a0574883a61f0ef04bc5855c33 (diff) | |
parent | 3db5a74ca943c6e9b36d3fd14a4b477d2f064cf7 (diff) | |
download | vim-lsp-settings-45cc9231a106eda4fcbf22e9590397a7d2cce1c3.tar.gz vim-lsp-settings-45cc9231a106eda4fcbf22e9590397a7d2cce1c3.tar.bz2 vim-lsp-settings-45cc9231a106eda4fcbf22e9590397a7d2cce1c3.zip |
Merge pull request #134 from mattn/config-lambda
Poissible to specify settings value with lambda.
-rw-r--r-- | autoload/lsp_settings.vim | 3 | ||||
-rw-r--r-- | test/lsp_settings.vimspec | 2 |
2 files changed, 5 insertions, 0 deletions
diff --git a/autoload/lsp_settings.vim b/autoload/lsp_settings.vim index 82ba5e6..0b149f1 100644 --- a/autoload/lsp_settings.vim +++ b/autoload/lsp_settings.vim @@ -102,6 +102,9 @@ function! lsp_settings#get(name, key, default) abort endif return a:default endif + if type(l:config[a:key]) == v:t_func + return l:config[a:key](a:name, a:key) + endif return l:config[a:key] endfunction diff --git a/test/lsp_settings.vimspec b/test/lsp_settings.vimspec index 30995f6..529187e 100644 --- a/test/lsp_settings.vimspec +++ b/test/lsp_settings.vimspec @@ -4,6 +4,8 @@ Describe lsp_settings Assert Equals(lsp_settings#get('pyls', 'cmd', 'bad'), 'bad') let g:lsp_settings = {'pyls': {'cmd': 'good'}} Assert Equals(lsp_settings#get('pyls', 'cmd', 'bad'), 'good') + let g:lsp_settings = {'pyls': {'cmd': {key,name->'good'}}} + Assert Equals(lsp_settings#get('pyls', 'cmd', 'bad'), 'good') unlet g:lsp_settings End |