From 02a415c4904feffd0dc1ac08313d321322fd24fa Mon Sep 17 00:00:00 2001 From: Przepompownia Date: Tue, 17 Mar 2020 01:29:08 +0100 Subject: [PATCH 01/17] Determine the current workspace directory --- autoload/phpactor.vim | 31 +++++++++++++++++++++++++++++-- ftplugin/php.vim | 6 ++++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/autoload/phpactor.vim b/autoload/phpactor.vim index 44e2712df1..812b591e65 100644 --- a/autoload/phpactor.vim +++ b/autoload/phpactor.vim @@ -435,14 +435,41 @@ endfunction " RPC -->-->-->-->-->-- """"""""""""""""""""""" +let g:phpactorProjectRootPatterns = ['composer.json', '.git'] +let g:phpactorGlobalRootPatterns = ['/', '/home'] + +function! s:searchDirectoryUpwardForRootPatterns(initialDirectory, rootPatterns, fallbackDirectory) + let l:directory = a:initialDirectory + while index(g:phpactorGlobalRootPatterns, l:directory) < 0 + for l:pattern in a:rootPatterns + if (filereadable(l:directory .'/'. l:pattern)) + return l:directory + endif + endfor + let l:directory = fnamemodify(l:directory, ':h') + endwhile + + if index(g:phpactorGlobalRootPatterns, l:workspaceDir) >= 0 + let l:workspaceDir = a:fallbackDirectory + endif + + return l:directory +endfunction + function! phpactor#rpc(action, arguments) " Remove any existing output in the message window execute ':redraw' let request = { "action": a:action, "parameters": a:arguments } - let cmd = g:phpactorPhpBin . ' ' . g:phpactorbinpath . ' rpc --working-dir=' . g:phpactorInitialCwd - let result = system(cmd, json_encode(request)) + let l:workspaceDir = s:searchDirectoryUpwardForRootPatterns( + \ expand('%:p:h'), + \ g:phpactorProjectRootPatterns, + \ g:phpactorInitialCwd + \) + + let l:cmd = g:phpactorPhpBin . ' ' . g:phpactorbinpath . ' rpc --working-dir=' . l:workspaceDir + let result = system(l:cmd, json_encode(request)) if (v:shell_error == 0) try diff --git a/ftplugin/php.vim b/ftplugin/php.vim index 3e4e81ffaa..906b26f2c7 100644 --- a/ftplugin/php.vim +++ b/ftplugin/php.vim @@ -40,6 +40,12 @@ let g:phpactorInputListStrategy = get(g:, 'phpactorInputListStrategy', 'phpactor " to that window instead of switching buffers. The default is false. let g:phpactorUseOpenWindows = get(g:, 'phpactorUseOpenWindows', v:false) +" The list of files that determine workspace root directory. +let g:phpactorProjectRootPatterns = get(g:, 'phpactorProjectRootPatterns', ['composer.json', '.git']) + +" The list of directories that should not be considered as workspace root directory. +let g:phpactorGlobalRootPatterns = get(g:, 'phpactorGlobalRootPatterns', ['/', '/home']) + if g:phpactorOmniAutoClassImport == v:true autocmd CompleteDone *.php call phpactor#_completeImportClass(v:completed_item) endif From 2670130dedcad733f9dde621b3cb3a3301dc1e89 Mon Sep 17 00:00:00 2001 From: Przepompownia Date: Wed, 18 Mar 2020 00:32:37 +0100 Subject: [PATCH 02/17] Added '.phpactor.json', '.phpactor.yml' to g:phpactorProjectRootPatterns --- ftplugin/php.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ftplugin/php.vim b/ftplugin/php.vim index 906b26f2c7..50f2090531 100644 --- a/ftplugin/php.vim +++ b/ftplugin/php.vim @@ -41,7 +41,7 @@ let g:phpactorInputListStrategy = get(g:, 'phpactorInputListStrategy', 'phpactor let g:phpactorUseOpenWindows = get(g:, 'phpactorUseOpenWindows', v:false) " The list of files that determine workspace root directory. -let g:phpactorProjectRootPatterns = get(g:, 'phpactorProjectRootPatterns', ['composer.json', '.git']) +let g:phpactorProjectRootPatterns = get(g:, 'phpactorProjectRootPatterns', ['composer.json', '.git', '.phpactor.json', '.phpactor.yml']) " The list of directories that should not be considered as workspace root directory. let g:phpactorGlobalRootPatterns = get(g:, 'phpactorGlobalRootPatterns', ['/', '/home']) From d353bb12094e4b16c058902d00a1dc54b2f08592 Mon Sep 17 00:00:00 2001 From: Przepompownia Date: Wed, 18 Mar 2020 00:37:55 +0100 Subject: [PATCH 03/17] Remove redundant global variable settings that came from the moment when they was not set in ftplugin --- autoload/phpactor.vim | 3 --- 1 file changed, 3 deletions(-) diff --git a/autoload/phpactor.vim b/autoload/phpactor.vim index 812b591e65..219a097783 100644 --- a/autoload/phpactor.vim +++ b/autoload/phpactor.vim @@ -435,9 +435,6 @@ endfunction " RPC -->-->-->-->-->-- """"""""""""""""""""""" -let g:phpactorProjectRootPatterns = ['composer.json', '.git'] -let g:phpactorGlobalRootPatterns = ['/', '/home'] - function! s:searchDirectoryUpwardForRootPatterns(initialDirectory, rootPatterns, fallbackDirectory) let l:directory = a:initialDirectory while index(g:phpactorGlobalRootPatterns, l:directory) < 0 From 4e90d8d8193ccdc33782e3ef28824ac45eaf20e6 Mon Sep 17 00:00:00 2001 From: Przepompownia Date: Wed, 18 Mar 2020 00:41:48 +0100 Subject: [PATCH 04/17] Fixed set to fallback when detected workspace dir is one of global root directories. --- autoload/phpactor.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/autoload/phpactor.vim b/autoload/phpactor.vim index 219a097783..85bbbf86a8 100644 --- a/autoload/phpactor.vim +++ b/autoload/phpactor.vim @@ -446,8 +446,8 @@ function! s:searchDirectoryUpwardForRootPatterns(initialDirectory, rootPatterns, let l:directory = fnamemodify(l:directory, ':h') endwhile - if index(g:phpactorGlobalRootPatterns, l:workspaceDir) >= 0 - let l:workspaceDir = a:fallbackDirectory + if index(g:phpactorGlobalRootPatterns, l:directory) >= 0 + let l:directory = a:fallbackDirectory endif return l:directory From 88840ac12a5da1759a00a57583f4102b05756bfb Mon Sep 17 00:00:00 2001 From: Przepompownia Date: Wed, 18 Mar 2020 01:09:12 +0100 Subject: [PATCH 05/17] Always include '/' in g:phpactorGlobalRootPatterns --- autoload/phpactor.vim | 4 ++++ ftplugin/php.vim | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/autoload/phpactor.vim b/autoload/phpactor.vim index 85bbbf86a8..904dd3867d 100644 --- a/autoload/phpactor.vim +++ b/autoload/phpactor.vim @@ -436,6 +436,10 @@ endfunction """"""""""""""""""""""" function! s:searchDirectoryUpwardForRootPatterns(initialDirectory, rootPatterns, fallbackDirectory) + if index(g:phpactorGlobalRootPatterns, '/') < 0 + let call add(g:phpactorGlobalRootPatterns, '/') + endif + let l:directory = a:initialDirectory while index(g:phpactorGlobalRootPatterns, l:directory) < 0 for l:pattern in a:rootPatterns diff --git a/ftplugin/php.vim b/ftplugin/php.vim index 50f2090531..ac8dd09aa3 100644 --- a/ftplugin/php.vim +++ b/ftplugin/php.vim @@ -40,10 +40,13 @@ let g:phpactorInputListStrategy = get(g:, 'phpactorInputListStrategy', 'phpactor " to that window instead of switching buffers. The default is false. let g:phpactorUseOpenWindows = get(g:, 'phpactorUseOpenWindows', v:false) +"" " The list of files that determine workspace root directory. let g:phpactorProjectRootPatterns = get(g:, 'phpactorProjectRootPatterns', ['composer.json', '.git', '.phpactor.json', '.phpactor.yml']) -" The list of directories that should not be considered as workspace root directory. +"" +" The list of directories that should not be considered as workspace root directory +" (in addition to '/' which is always considered) let g:phpactorGlobalRootPatterns = get(g:, 'phpactorGlobalRootPatterns', ['/', '/home']) if g:phpactorOmniAutoClassImport == v:true From 847badd145a1169c096951c5fe57b2a7e228406a Mon Sep 17 00:00:00 2001 From: Przepompownia Date: Wed, 18 Mar 2020 01:10:28 +0100 Subject: [PATCH 06/17] Rename variable --- autoload/phpactor.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/autoload/phpactor.vim b/autoload/phpactor.vim index 904dd3867d..f87ab46866 100644 --- a/autoload/phpactor.vim +++ b/autoload/phpactor.vim @@ -435,14 +435,14 @@ endfunction " RPC -->-->-->-->-->-- """"""""""""""""""""""" -function! s:searchDirectoryUpwardForRootPatterns(initialDirectory, rootPatterns, fallbackDirectory) +function! s:searchDirectoryUpwardForRootPatterns(initialDirectory, workspaceRootPatterns, fallbackDirectory) if index(g:phpactorGlobalRootPatterns, '/') < 0 let call add(g:phpactorGlobalRootPatterns, '/') endif let l:directory = a:initialDirectory while index(g:phpactorGlobalRootPatterns, l:directory) < 0 - for l:pattern in a:rootPatterns + for l:pattern in a:workspaceRootPatterns if (filereadable(l:directory .'/'. l:pattern)) return l:directory endif From b8c9303bdfa93264af362a8ebb8c76774a525d14 Mon Sep 17 00:00:00 2001 From: Przepompownia Date: Wed, 18 Mar 2020 01:18:04 +0100 Subject: [PATCH 07/17] Split pattern matching to a separate function --- autoload/phpactor.vim | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/autoload/phpactor.vim b/autoload/phpactor.vim index f87ab46866..d6c9346d63 100644 --- a/autoload/phpactor.vim +++ b/autoload/phpactor.vim @@ -441,12 +441,12 @@ function! s:searchDirectoryUpwardForRootPatterns(initialDirectory, workspaceRoot endif let l:directory = a:initialDirectory + while index(g:phpactorGlobalRootPatterns, l:directory) < 0 - for l:pattern in a:workspaceRootPatterns - if (filereadable(l:directory .'/'. l:pattern)) - return l:directory - endif - endfor + if s:directoryMatchesToPatterns(l:directory, a:workspaceRootPatterns) + return l:directory + endif + let l:directory = fnamemodify(l:directory, ':h') endwhile @@ -457,6 +457,16 @@ function! s:searchDirectoryUpwardForRootPatterns(initialDirectory, workspaceRoot return l:directory endfunction +function s:directoryMatchesToPatterns(directory, patterns) abort + for l:pattern in a:patterns + if (filereadable(a:directory .'/'. l:pattern)) + return v:true + endif + endfor + + return v:false +endfunction + function! phpactor#rpc(action, arguments) " Remove any existing output in the message window execute ':redraw' From a30d9cde16b0a6adfe0220a970872b0b5f77c7a1 Mon Sep 17 00:00:00 2001 From: Przepompownia Date: Wed, 18 Mar 2020 01:21:52 +0100 Subject: [PATCH 08/17] Update doc --- ftplugin/php.vim | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ftplugin/php.vim b/ftplugin/php.vim index ac8dd09aa3..65cae72242 100644 --- a/ftplugin/php.vim +++ b/ftplugin/php.vim @@ -41,7 +41,8 @@ let g:phpactorInputListStrategy = get(g:, 'phpactorInputListStrategy', 'phpactor let g:phpactorUseOpenWindows = get(g:, 'phpactorUseOpenWindows', v:false) "" -" The list of files that determine workspace root directory. +" The list of files that determine workspace root directory +" if contained within let g:phpactorProjectRootPatterns = get(g:, 'phpactorProjectRootPatterns', ['composer.json', '.git', '.phpactor.json', '.phpactor.yml']) "" From 1cdac34b07e767b9f15165ae36e157694a4cf5d3 Mon Sep 17 00:00:00 2001 From: Przepompownia Date: Wed, 18 Mar 2020 01:45:15 +0100 Subject: [PATCH 09/17] Remove redundant let --- autoload/phpactor.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autoload/phpactor.vim b/autoload/phpactor.vim index d6c9346d63..1356cec284 100644 --- a/autoload/phpactor.vim +++ b/autoload/phpactor.vim @@ -437,7 +437,7 @@ endfunction function! s:searchDirectoryUpwardForRootPatterns(initialDirectory, workspaceRootPatterns, fallbackDirectory) if index(g:phpactorGlobalRootPatterns, '/') < 0 - let call add(g:phpactorGlobalRootPatterns, '/') + call add(g:phpactorGlobalRootPatterns, '/') endif let l:directory = a:initialDirectory From 36ffca419cfa828994fb595cef1bb4fce2ad236b Mon Sep 17 00:00:00 2001 From: Przepompownia Date: Wed, 18 Mar 2020 13:51:49 +0100 Subject: [PATCH 10/17] Revert it: try to get more verbose test result --- composer.json | 2 +- composer.lock | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index 6fa40ca700..b30b6712e9 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "phpactor/reference-finder-extension": "^0.1.4", "phpactor/reference-finder": "^0.1.3", "phpactor/rpc-extension": "^0.2.1", - "phpactor/source-code-filesystem": "^0.1.4", + "phpactor/source-code-filesystem": "dev-master", "phpactor/source-code-filesystem-extension": "^0.1.3", "phpactor/text-document": "^1.2.0", "phpactor/worse-reference-finder-extension": "^0.1.2", diff --git a/composer.lock b/composer.lock index 6c0270b205..346acd7ef2 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "44f5863fe41238b837f50614a4733d3f", + "content-hash": "e714924a69daddd3f97bf37c84dce81d", "packages": [ { "name": "composer/ca-bundle", @@ -1916,12 +1916,12 @@ "source": { "type": "git", "url": "https://github.com/phpactor/source-code-filesystem.git", - "reference": "72f53091d3692324ccde5d98cd9b666963884c9f" + "reference": "b1e11fdf14053becb37795f01bc5b9b48ea5871e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpactor/source-code-filesystem/zipball/72f53091d3692324ccde5d98cd9b666963884c9f", - "reference": "72f53091d3692324ccde5d98cd9b666963884c9f", + "url": "https://api.github.com/repos/phpactor/source-code-filesystem/zipball/b1e11fdf14053becb37795f01bc5b9b48ea5871e", + "reference": "b1e11fdf14053becb37795f01bc5b9b48ea5871e", "shasum": "" }, "require": { @@ -1955,7 +1955,7 @@ } ], "description": "Filesystem library for working with source code files", - "time": "2019-12-04T19:21:48+00:00" + "time": "2020-03-18T11:45:50+00:00" }, { "name": "phpactor/source-code-filesystem-extension", @@ -5779,6 +5779,7 @@ "aliases": [], "minimum-stability": "dev", "stability-flags": { + "phpactor/source-code-filesystem": 20, "friendsofphp/php-cs-fixer": 20 }, "prefer-stable": false, @@ -5789,5 +5790,6 @@ "platform-dev": [], "platform-overrides": { "php": "7.2.5" - } + }, + "plugin-api-version": "1.1.0" } From ddaac83223e54fd94e68f6f02aeae27aea6e416d Mon Sep 17 00:00:00 2001 From: Przepompownia Date: Wed, 18 Mar 2020 14:12:38 +0100 Subject: [PATCH 11/17] Change composer version to pass validation --- composer.json | 2 +- composer.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index b30b6712e9..a5bfcc5eef 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "phpactor/reference-finder-extension": "^0.1.4", "phpactor/reference-finder": "^0.1.3", "phpactor/rpc-extension": "^0.2.1", - "phpactor/source-code-filesystem": "dev-master", + "phpactor/source-code-filesystem": "^0.1.4@dev", "phpactor/source-code-filesystem-extension": "^0.1.3", "phpactor/text-document": "^1.2.0", "phpactor/worse-reference-finder-extension": "^0.1.2", diff --git a/composer.lock b/composer.lock index 346acd7ef2..f3171b8ed5 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "e714924a69daddd3f97bf37c84dce81d", + "content-hash": "541b640ca3cef5241f196191ddccde6f", "packages": [ { "name": "composer/ca-bundle", From 199586a0b643696eb0e330fd878a3f7d587f89c5 Mon Sep 17 00:00:00 2001 From: Przepompownia Date: Wed, 18 Mar 2020 15:13:23 +0100 Subject: [PATCH 12/17] Try to fix output from vader tests --- config/travis/vim-plugin-test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/travis/vim-plugin-test.sh b/config/travis/vim-plugin-test.sh index f4cff7cf58..4c3337faab 100755 --- a/config/travis/vim-plugin-test.sh +++ b/config/travis/vim-plugin-test.sh @@ -1 +1 @@ -vim -Nu config/travis/.vimrc -c 'Vader! tests/VimPlugin/*' +command vim -Es -Nu config/travis/.vimrc -c 'Vader! tests/VimPlugin/*' From b287d30df2f89f04017ee7a494154293b226ec56 Mon Sep 17 00:00:00 2001 From: Przepompownia Date: Wed, 18 Mar 2020 15:21:09 +0100 Subject: [PATCH 13/17] Revert "Try to fix output from vader tests" This reverts commit 199586a0b643696eb0e330fd878a3f7d587f89c5. --- config/travis/vim-plugin-test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/travis/vim-plugin-test.sh b/config/travis/vim-plugin-test.sh index 4c3337faab..f4cff7cf58 100755 --- a/config/travis/vim-plugin-test.sh +++ b/config/travis/vim-plugin-test.sh @@ -1 +1 @@ -command vim -Es -Nu config/travis/.vimrc -c 'Vader! tests/VimPlugin/*' +vim -Nu config/travis/.vimrc -c 'Vader! tests/VimPlugin/*' From 2738a8b349e78e3b1edddd40e6f1c37f5d996e56 Mon Sep 17 00:00:00 2001 From: Przepompownia Date: Wed, 18 Mar 2020 20:26:43 +0100 Subject: [PATCH 14/17] Resolve path when the buffer has no associated file --- autoload/phpactor.vim | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/autoload/phpactor.vim b/autoload/phpactor.vim index 1356cec284..6d275b7419 100644 --- a/autoload/phpactor.vim +++ b/autoload/phpactor.vim @@ -327,7 +327,7 @@ endfunction " Utility functions """"""""""""""""""""""" function! s:isOpenInCurrentWindow(filePath) - return expand('%:p') == a:filePath + return phpactor#_path() == a:filePath endfunction function! phpactor#_switchToBufferOrEdit(filePath) @@ -353,7 +353,15 @@ function! phpactor#_source() endfunction function! phpactor#_path() - return expand('%:p') + let l:path = expand('%:p') + + if filereadable(l:path) + return l:path + endif + + " todo if empty path + " + return printf('%s/%s', g:phpactorInitialCwd, l:path) endfunction function! s:getStartOffsetFromMark(mark, linewise) @@ -474,12 +482,13 @@ function! phpactor#rpc(action, arguments) let request = { "action": a:action, "parameters": a:arguments } let l:workspaceDir = s:searchDirectoryUpwardForRootPatterns( - \ expand('%:p:h'), + \ fnamemodify(phpactor#_path(), ':h'), \ g:phpactorProjectRootPatterns, \ g:phpactorInitialCwd \) let l:cmd = g:phpactorPhpBin . ' ' . g:phpactorbinpath . ' rpc --working-dir=' . l:workspaceDir + let result = system(l:cmd, json_encode(request)) if (v:shell_error == 0) From dd46e9ed40f088bce74dc0a8355d259aea73b3e1 Mon Sep 17 00:00:00 2001 From: Przepompownia Date: Wed, 18 Mar 2020 23:02:52 +0100 Subject: [PATCH 15/17] Do not add prefix to absolute path to non-existing file --- autoload/phpactor.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autoload/phpactor.vim b/autoload/phpactor.vim index 6d275b7419..5344e3a143 100644 --- a/autoload/phpactor.vim +++ b/autoload/phpactor.vim @@ -355,7 +355,7 @@ endfunction function! phpactor#_path() let l:path = expand('%:p') - if filereadable(l:path) + if filereadable(l:path) || stridx(l:path, '/') == 0 return l:path endif From c05e531cc99459e0710f3e9c155893e7c2a4728a Mon Sep 17 00:00:00 2001 From: Przepompownia Date: Wed, 18 Mar 2020 23:16:12 +0100 Subject: [PATCH 16/17] Revert changes in dependencies --- composer.json | 2 +- composer.lock | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index a5bfcc5eef..6fa40ca700 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "phpactor/reference-finder-extension": "^0.1.4", "phpactor/reference-finder": "^0.1.3", "phpactor/rpc-extension": "^0.2.1", - "phpactor/source-code-filesystem": "^0.1.4@dev", + "phpactor/source-code-filesystem": "^0.1.4", "phpactor/source-code-filesystem-extension": "^0.1.3", "phpactor/text-document": "^1.2.0", "phpactor/worse-reference-finder-extension": "^0.1.2", diff --git a/composer.lock b/composer.lock index f3171b8ed5..4373c6ffa3 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "541b640ca3cef5241f196191ddccde6f", + "content-hash": "44f5863fe41238b837f50614a4733d3f", "packages": [ { "name": "composer/ca-bundle", @@ -5779,7 +5779,6 @@ "aliases": [], "minimum-stability": "dev", "stability-flags": { - "phpactor/source-code-filesystem": 20, "friendsofphp/php-cs-fixer": 20 }, "prefer-stable": false, From 619e887325eb79e8eb6c2cd93fef3e658f90759d Mon Sep 17 00:00:00 2001 From: przepompownia Date: Mon, 30 Mar 2020 20:38:35 +0200 Subject: [PATCH 17/17] Add vimdoc --- doc/phpactor.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/phpactor.txt b/doc/phpactor.txt index bd7a3ee279..d74c85fef7 100644 --- a/doc/phpactor.txt +++ b/doc/phpactor.txt @@ -48,6 +48,13 @@ is to use the VIM inputlist. When jumping to a file location: if the target file open in a window, switch to that window instead of switching buffers. The default is false. + *g:phpactorProjectRootPatterns* +The list of files that determine workspace root directory if contained within + + *g:phpactorGlobalRootPatterns* +The list of directories that should not be considered as workspace root +directory (in addition to '/' which is always considered) + ============================================================================== COMPLETION *phpactor-completion*