mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-16 01:07:06 +08:00
Merge pull request #3196 from jeremija/autoimport-langserver-pr
Add autoimport and rename support for langservers
This commit is contained in:
@@ -526,3 +526,73 @@ Execute(Should handle completion messages with the deprecated insertText attribu
|
||||
\ ],
|
||||
\ },
|
||||
\ })
|
||||
|
||||
Execute(Should handle completion messages with additionalTextEdits):
|
||||
AssertEqual
|
||||
\ [
|
||||
\ {
|
||||
\ 'word': 'next_callback',
|
||||
\ 'menu': 'PlayTimeCallback',
|
||||
\ 'info': '',
|
||||
\ 'kind': 'v',
|
||||
\ 'icase': 1,
|
||||
\ 'user_data': json_encode({
|
||||
\ 'codeActions': [
|
||||
\ {
|
||||
\ 'description': 'completion',
|
||||
\ 'changes': [
|
||||
\ {
|
||||
\ 'fileName': expand('#' . bufnr('') . ':p'),
|
||||
\ 'textChanges': [
|
||||
\ {
|
||||
\ 'start': {
|
||||
\ 'line': 11,
|
||||
\ 'offset': 2,
|
||||
\ },
|
||||
\ 'end': {
|
||||
\ 'line': 13,
|
||||
\ 'offset': 4,
|
||||
\ },
|
||||
\ 'newText': 'from "module" import next_callback',
|
||||
\ },
|
||||
\ ],
|
||||
\ },
|
||||
\ ],
|
||||
\ },
|
||||
\ ],
|
||||
\ }),
|
||||
\ },
|
||||
\ ],
|
||||
\ ale#completion#ParseLSPCompletions({
|
||||
\ 'id': 226,
|
||||
\ 'jsonrpc': '2.0',
|
||||
\ 'result': {
|
||||
\ 'isIncomplete': v:false,
|
||||
\ 'items': [
|
||||
\ {
|
||||
\ 'detail': 'PlayTimeCallback',
|
||||
\ 'filterText': 'next_callback',
|
||||
\ 'insertText': 'next_callback',
|
||||
\ 'insertTextFormat': 1,
|
||||
\ 'kind': 6,
|
||||
\ 'label': ' next_callback',
|
||||
\ 'sortText': '3ee19999next_callback',
|
||||
\ 'additionalTextEdits': [
|
||||
\ {
|
||||
\ 'range': {
|
||||
\ 'start': {
|
||||
\ 'line': 10,
|
||||
\ 'character': 1,
|
||||
\ },
|
||||
\ 'end': {
|
||||
\ 'line': 12,
|
||||
\ 'character': 3,
|
||||
\ },
|
||||
\ },
|
||||
\ 'newText': 'from "module" import next_callback',
|
||||
\ },
|
||||
\ ],
|
||||
\ },
|
||||
\ ],
|
||||
\ },
|
||||
\ })
|
||||
|
||||
@@ -327,6 +327,115 @@ Execute(Code actions from LSP should be handled):
|
||||
\ ],
|
||||
\ g:code_actions
|
||||
|
||||
Execute(DocumentChanges from LSP should be handled):
|
||||
call ale#rename#HandleLSPResponse(1, {
|
||||
\ 'id': 3,
|
||||
\ 'result': {
|
||||
\ 'documentChanges': [
|
||||
\ {
|
||||
\ 'textDocument': {
|
||||
\ 'version': 1.0,
|
||||
\ 'uri': 'file:///foo/bar/file1.ts',
|
||||
\ },
|
||||
\ 'edits': [
|
||||
\ {
|
||||
\ 'range': {
|
||||
\ 'start': {
|
||||
\ 'line': 1,
|
||||
\ 'character': 2,
|
||||
\ },
|
||||
\ 'end': {
|
||||
\ 'line': 3,
|
||||
\ 'character': 4,
|
||||
\ },
|
||||
\ },
|
||||
\ 'newText': 'bla123',
|
||||
\ },
|
||||
\ ],
|
||||
\ },
|
||||
\ ],
|
||||
\ },
|
||||
\})
|
||||
|
||||
AssertEqual
|
||||
\ [
|
||||
\ {
|
||||
\ 'description': 'rename',
|
||||
\ 'changes': [
|
||||
\ {
|
||||
\ 'fileName': '/foo/bar/file1.ts',
|
||||
\ 'textChanges': [
|
||||
\ {
|
||||
\ 'start': {
|
||||
\ 'line': 2,
|
||||
\ 'offset': 3,
|
||||
\ },
|
||||
\ 'end': {
|
||||
\ 'line': 4,
|
||||
\ 'offset': 5,
|
||||
\ },
|
||||
\ 'newText': 'bla123',
|
||||
\ },
|
||||
\ ],
|
||||
\ },
|
||||
\ ],
|
||||
\ }
|
||||
\ ],
|
||||
\ g:code_actions
|
||||
|
||||
Execute(Single DocumentChange from LSP should be handled):
|
||||
call ale#rename#HandleLSPResponse(1, {
|
||||
\ 'id': 3,
|
||||
\ 'result': {
|
||||
\ 'documentChanges': {
|
||||
\ 'textDocument': {
|
||||
\ 'version': 1.0,
|
||||
\ 'uri': 'file:///foo/bar/file1.ts',
|
||||
\ },
|
||||
\ 'edits': [
|
||||
\ {
|
||||
\ 'range': {
|
||||
\ 'start': {
|
||||
\ 'line': 1,
|
||||
\ 'character': 2,
|
||||
\ },
|
||||
\ 'end': {
|
||||
\ 'line': 3,
|
||||
\ 'character': 4,
|
||||
\ },
|
||||
\ },
|
||||
\ 'newText': 'bla123',
|
||||
\ },
|
||||
\ ],
|
||||
\ },
|
||||
\ },
|
||||
\})
|
||||
|
||||
AssertEqual
|
||||
\ [
|
||||
\ {
|
||||
\ 'description': 'rename',
|
||||
\ 'changes': [
|
||||
\ {
|
||||
\ 'fileName': '/foo/bar/file1.ts',
|
||||
\ 'textChanges': [
|
||||
\ {
|
||||
\ 'start': {
|
||||
\ 'line': 2,
|
||||
\ 'offset': 3,
|
||||
\ },
|
||||
\ 'end': {
|
||||
\ 'line': 4,
|
||||
\ 'offset': 5,
|
||||
\ },
|
||||
\ 'newText': 'bla123',
|
||||
\ },
|
||||
\ ],
|
||||
\ },
|
||||
\ ],
|
||||
\ }
|
||||
\ ],
|
||||
\ g:code_actions
|
||||
Execute(LSP should perform no action when no result):
|
||||
call ale#rename#HandleLSPResponse(1, {
|
||||
\ 'id': 3,
|
||||
|
||||
Reference in New Issue
Block a user