33 call ale#test#SetFilename('dummy.txt')
44
55 Save g:ale_default_navigation
6+ Save g:ale_references_show_contents
67
78 let g:old_filename = expand('%:p')
89 let g:Callback = ''
@@ -15,6 +16,7 @@ Before:
1516 let g:conn_id = v:null
1617 let g:InitCallback = v:null
1718 let g:ale_default_navigation = 'buffer'
19+ let g:ale_references_show_contents = 1
1820
1921 runtime autoload/ale/lsp_linter.vim
2022 runtime autoload/ale/lsp.vim
@@ -378,11 +380,13 @@ Execute(LSP reference responses should be handled):
378380 \ 'filename': ale#path#Simplify(g:dir . '/completion_dummy_file'),
379381 \ 'line': 3,
380382 \ 'column': 8,
383+ \ 'match': '',
381384 \ },
382385 \ {
383386 \ 'filename': ale#path#Simplify(g:dir . '/other_file'),
384387 \ 'line': 8,
385388 \ 'column': 16,
389+ \ 'match': '',
386390 \ },
387391 \ ],
388392 \ g:item_list
@@ -415,6 +419,163 @@ Execute(LSP reference responses should be put to quickfix):
415419 \ 2,
416420 \ len(getqflist())
417421
422+ Execute(LSP reference responses should contain line contents):
423+ let tempfile = tempname()
424+ let contents = ['line1 sometext', 'line2 othertext', 'line3 moretext']
425+ call writefile(contents, tempfile)
426+
427+ call ale#references#SetMap({3: { 'show_contents': 1 }})
428+
429+ call ale#references#HandleLSPResponse(
430+ \ 1,
431+ \ {
432+ \ 'id': 3,
433+ \ 'result': [
434+ \ {
435+ \ 'uri': ale#path#ToFileURI(tempfile),
436+ \ 'range': {
437+ \ 'start': {'line': 0, 'character': 6},
438+ \ },
439+ \ },
440+ \ {
441+ \ 'uri': ale#path#ToFileURI(tempfile),
442+ \ 'range': {
443+ \ 'start': {'line': 2, 'character': 1},
444+ \ },
445+ \ },
446+ \ ],
447+ \ }
448+ \)
449+ AssertEqual
450+ \ 2,
451+ \ len(g:item_list)
452+
453+ AssertEqual contents[0], g:item_list[0]['match']
454+ AssertEqual contents[2], g:item_list[1]['match']
455+
456+ call ale#references#SetMap({3: { 'show_contents': 1, 'open_in': 'quickfix' }})
457+
458+ call ale#references#HandleLSPResponse(
459+ \ 1,
460+ \ {
461+ \ 'id': 3,
462+ \ 'result': [
463+ \ {
464+ \ 'uri': ale#path#ToFileURI(tempfile),
465+ \ 'range': {
466+ \ 'start': {'line': 0, 'character': 6},
467+ \ },
468+ \ },
469+ \ {
470+ \ 'uri': ale#path#ToFileURI(tempfile),
471+ \ 'range': {
472+ \ 'start': {'line': 2, 'character': 1},
473+ \ },
474+ \ },
475+ \ ],
476+ \ }
477+ \)
478+
479+ AssertEqual
480+ \ 2,
481+ \ len(getqflist())
482+
483+ AssertEqual contents[0], getqflist()[0]['text']
484+ AssertEqual contents[2], getqflist()[1]['text']
485+
486+ Execute(LSP reference responses should not contain line contents when disabled):
487+ call ale#references#SetMap({3: { 'show_contents': 0 }})
488+
489+ call ale#references#HandleLSPResponse(
490+ \ 1,
491+ \ {
492+ \ 'id': 3,
493+ \ 'result': [
494+ \ {
495+ \ 'uri': ale#path#ToFileURI('dummy'),
496+ \ 'range': {
497+ \ 'start': {'line': 0, 'character': 6},
498+ \ },
499+ \ },
500+ \ {
501+ \ 'uri': ale#path#ToFileURI('dummy'),
502+ \ 'range': {
503+ \ 'start': {'line': 2, 'character': 1},
504+ \ },
505+ \ },
506+ \ ],
507+ \ }
508+ \)
509+ AssertEqual
510+ \ 2,
511+ \ len(g:item_list)
512+
513+ AssertEqual '', g:item_list[0]['match']
514+ AssertEqual '', g:item_list[1]['match']
515+ call ale#references#SetMap({3: { 'show_contents': 0, 'open_in': 'quickfix' }} )
516+
517+ call ale#references#HandleLSPResponse(
518+ \ 1,
519+ \ {
520+ \ 'id': 3,
521+ \ 'result': [
522+ \ {
523+ \ 'uri': ale#path#ToFileURI('dummy'),
524+ \ 'range': {
525+ \ 'start': {'line': 0, 'character': 6},
526+ \ },
527+ \ },
528+ \ {
529+ \ 'uri': ale#path#ToFileURI('dummy'),
530+ \ 'range': {
531+ \ 'start': {'line': 2, 'character': 1},
532+ \ },
533+ \ },
534+ \ ],
535+ \ }
536+ \)
537+ AssertEqual
538+ \ 2,
539+ \ len(getqflist())
540+
541+ AssertEqual '', getqflist()[0]['text']
542+ AssertEqual '', getqflist()[1]['text']
543+
544+ Execute(LSP reference responses should respect the global configuration):
545+ let g:ale_references_show_contents = 0
546+ call ale#references#SetMap({3: {}})
547+
548+ let tempfile = tempname()
549+ let contents = ['line1 sometext', 'line2 othertext', 'line3 moretext']
550+ call writefile(contents, tempfile)
551+
552+ call ale#references#HandleLSPResponse(
553+ \ 1,
554+ \ {
555+ \ 'id': 3,
556+ \ 'result': [
557+ \ {
558+ \ 'uri': ale#path#ToFileURI(tempfile),
559+ \ 'range': {
560+ \ 'start': {'line': 0, 'character': 6},
561+ \ },
562+ \ },
563+ \ {
564+ \ 'uri': ale#path#ToFileURI(tempfile),
565+ \ 'range': {
566+ \ 'start': {'line': 2, 'character': 1},
567+ \ },
568+ \ },
569+ \ ],
570+ \ }
571+ \)
572+ AssertEqual
573+ \ 2,
574+ \ len(g:item_list)
575+
576+ AssertEqual '', g:item_list[0]['match']
577+ AssertEqual '', g:item_list[1]['match']
578+
418579Execute(Preview windows should not be opened for empty LSP reference responses):
419580 call ale#references#SetMap({3: {}})
420581 call ale#references#HandleLSPResponse(1, {'id': 3, 'result': []})
0 commit comments