Skip to content

Commit a513c3a

Browse files
committed
Check availability
1 parent 2c6ada3 commit a513c3a

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

autoload/lsp/internal/linked_editing_range.vim

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,9 @@ let s:state['changenr'] = -1
99
let s:state['changedtick'] = -1
1010

1111
function! lsp#internal#linked_editing_range#_enable() abort
12-
if !s:TextEdit.is_text_mark_preserved()
12+
if !s:enabled()
1313
return
1414
endif
15-
if !g:lsp_linked_editing_range_enabled | return | endif
1615

1716
let s:Dispose = lsp#callbag#merge(
1817
\ lsp#callbag#pipe(
@@ -43,10 +42,7 @@ function! lsp#internal#linked_editing_range#_disable() abort
4342
endfunction
4443

4544
function! lsp#internal#linked_editing_range#prepare() abort
46-
if !s:TextEdit.is_text_mark_preserved()
47-
return ''
48-
endif
49-
if !g:lsp_linked_editing_range_enabled
45+
if !s:enabled()
5046
return ''
5147
endif
5248

@@ -60,6 +56,10 @@ function! lsp#internal#linked_editing_range#prepare() abort
6056
return ''
6157
endfunction
6258

59+
function! s:enabled(...) abort
60+
return g:lsp_linked_editing_range_enabled && s:TextEdit.is_text_mark_preserved() && s:TextMark.is_available()
61+
endfunction
62+
6363
function! s:request_sync() abort
6464
let l:server = lsp#get_allowed_servers(&filetype)
6565
let l:server = filter(l:server, 'lsp#capabilities#has_linked_editing_range_provider(v:val)')
@@ -142,4 +142,3 @@ function! s:sync() abort
142142
let s:state['changenr'] = changenr()
143143
let s:state['changedtick'] = b:changedtick
144144
endfunction
145-

autoload/vital/_lsp/VS/Vim/Buffer/TextMark.vim

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
function! s:_SID() abort
55
return matchstr(expand('<sfile>'), '<SNR>\zs\d\+\ze__SID$')
66
endfunction
7-
execute join(['function! vital#_lsp#VS#Vim#Buffer#TextMark#import() abort', printf("return map({'_vital_depends': '', 'clear': '', 'set': '', 'get': '', '_vital_loaded': ''}, \"vital#_lsp#function('<SNR>%s_' . v:key)\")", s:_SID()), 'endfunction'], "\n")
7+
execute join(['function! vital#_lsp#VS#Vim#Buffer#TextMark#import() abort', printf("return map({'_vital_depends': '', 'clear': '', 'set': '', 'is_available': '', 'get': '', '_vital_loaded': ''}, \"vital#_lsp#function('<SNR>%s_' . v:key)\")", s:_SID()), 'endfunction'], "\n")
88
delfunction s:_SID
99
" ___vital___
1010
"
@@ -24,6 +24,17 @@ endfunction
2424
let s:nvim_namespace = {}
2525
let s:vim_prop_types = {}
2626

27+
"
28+
" is_available
29+
"
30+
function! s:is_available() abort
31+
if has('nvim')
32+
return exists('*nvim_buf_set_text')
33+
else
34+
return exists('*prop_type_add') && exists('*prop_add')
35+
endif
36+
endfunction
37+
2738
"
2839
" @param {number} bufnr
2940
" @param {string} id

0 commit comments

Comments
 (0)