diff --git a/Makefile b/Makefile index dfecf4d..915dae7 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,7 @@ clean: test: test/vader.vim @cd test && $(VIM) $(VIM_FLAGS) -c 'Vader! symlink.vader' @cd test && $(VIM) $(VIM_FLAGS) -R -c 'Vader! symlink.vader' + @cd test && $(VIM) $(VIM_FLAGS) -c 'Vader! symlink-edit-in-popup.vader' @cd test && $(VIM) $(VIM_FLAGS) -o fixture/foo.link fixture/bar.link -c 'Vader! symlink-split-horizontal.vader' @cd test && $(VIM) $(VIM_FLAGS) -O fixture/foo.link fixture/bar.link -c 'Vader! symlink-split-vertical.vader' @cd test && $(VIM) $(VIM_FLAGS) -d fixture/foo.link fixture/bar.link -c 'Vader! symlink-split-vertical.vader' diff --git a/test/fixture/tagged.original.vim b/test/fixture/tagged.original.vim new file mode 100644 index 0000000..9346073 --- /dev/null +++ b/test/fixture/tagged.original.vim @@ -0,0 +1 @@ +command! Foo : diff --git a/test/fixture/tagged/tagged.link.vim b/test/fixture/tagged/tagged.link.vim new file mode 120000 index 0000000..8698ab6 --- /dev/null +++ b/test/fixture/tagged/tagged.link.vim @@ -0,0 +1 @@ +../tagged.original.vim \ No newline at end of file diff --git a/test/fixture/tagged/tags b/test/fixture/tagged/tags new file mode 100644 index 0000000..94acfcb --- /dev/null +++ b/test/fixture/tagged/tags @@ -0,0 +1,32 @@ +!_TAG_EXTRA_DESCRIPTION anonymous /Include tags for non-named objects like lambda/ +!_TAG_EXTRA_DESCRIPTION fileScope /Include tags of file scope/ +!_TAG_EXTRA_DESCRIPTION pseudo /Include pseudo tags/ +!_TAG_EXTRA_DESCRIPTION subparser /Include tags generated by subparsers/ +!_TAG_FIELD_DESCRIPTION epoch /the last modified time of the input file (only for F\/file kind tag)/ +!_TAG_FIELD_DESCRIPTION file /File-restricted scoping/ +!_TAG_FIELD_DESCRIPTION input /input file/ +!_TAG_FIELD_DESCRIPTION name /tag name/ +!_TAG_FIELD_DESCRIPTION pattern /pattern/ +!_TAG_FIELD_DESCRIPTION typeref /Type and name of a variable or typedef/ +!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ +!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ +!_TAG_KIND_DESCRIPTION!Vim C,constant /constant definitions/ +!_TAG_KIND_DESCRIPTION!Vim a,augroup /autocommand groups/ +!_TAG_KIND_DESCRIPTION!Vim c,command /user-defined commands/ +!_TAG_KIND_DESCRIPTION!Vim f,function /function definitions/ +!_TAG_KIND_DESCRIPTION!Vim k,class /vim9script classes/ +!_TAG_KIND_DESCRIPTION!Vim m,map /maps/ +!_TAG_KIND_DESCRIPTION!Vim n,filename /vimball filename/ +!_TAG_KIND_DESCRIPTION!Vim v,variable /variable definitions/ +!_TAG_OUTPUT_EXCMD mixed /number, pattern, mixed, or combineV2/ +!_TAG_OUTPUT_FILESEP slash /slash or backslash/ +!_TAG_OUTPUT_MODE u-ctags /u-ctags or e-ctags/ +!_TAG_OUTPUT_VERSION 1.1 /current.age/ +!_TAG_PARSER_VERSION!Vim 1.1 /current.age/ +!_TAG_PATTERN_LENGTH_LIMIT 96 /0 for no limit/ +!_TAG_PROC_CWD /home/aileot/.local/share/nvim/lazy/vim-symlink/test/fixture/tagged/ // +!_TAG_PROGRAM_AUTHOR Universal Ctags Team // +!_TAG_PROGRAM_NAME Universal Ctags /Derived from Exuberant Ctags/ +!_TAG_PROGRAM_URL https://ctags.io/ /official site/ +!_TAG_PROGRAM_VERSION 6.2.0 // +Foo tagged.link.vim /^command! Foo :$/;" c diff --git a/test/symlink-edit-in-popup.vader b/test/symlink-edit-in-popup.vader new file mode 100644 index 0000000..11fcff0 --- /dev/null +++ b/test/symlink-edit-in-popup.vader @@ -0,0 +1,16 @@ +Before: + execute 'cd' fnameescape(fnamemodify(g:vader_file, ':p:h')) + +" It should follow the symlinks for every file +Execute (skip the 2 Vader.vim buffers): + quit! + quit! + +Then (opening a symlinked file to a popup window): + if !has('&previewpopup') + finish + endif + set previewpopup=height:10,width:60 + execute 'set tags='.. fnamemodify(g:vader_file, ':p:h') ..'/fixture/tagged/tags' + ptag Foo + AssertEqual 'fixture/tagged.original.vim', bufname('$')