aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2018-10-22 21:52:51 +0200
committerGitHub <noreply@github.com>2018-10-22 21:52:51 +0200
commit6dae7776ed0d397b444dc5193c7f11ac09e43042 (patch)
tree66a37a8935f6eee9c9cb24dc42bb3cbe7c6d3ef0
parentf20427451e7f118d89d231cbab1faf8061369ddc (diff)
parentafd1d412fa912ed39b0dc37a66df6dd0b671ce91 (diff)
downloadrneovim-6dae7776ed0d397b444dc5193c7f11ac09e43042.tar.gz
rneovim-6dae7776ed0d397b444dc5193c7f11ac09e43042.tar.bz2
rneovim-6dae7776ed0d397b444dc5193c7f11ac09e43042.zip
Merge #9145 'CI, nodejs fixes'
-rw-r--r--appveyor.yml1
-rw-r--r--ci/build.ps12
-rw-r--r--runtime/autoload/provider/node.vim71
-rw-r--r--scripts/genvimvim.lua6
-rw-r--r--src/nvim/auevents.lua8
-rw-r--r--test/functional/terminal/scrollback_spec.lua17
6 files changed, 53 insertions, 52 deletions
diff --git a/appveyor.yml b/appveyor.yml
index 75ca74d0d5..f47ec236e5 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -18,6 +18,7 @@ build_script:
- powershell ci\build.ps1
cache:
- C:\msys64\var\cache\pacman\pkg -> ci\build.ps1
+- .deps -> ci\build.ps1
- .deps -> third-party\**
artifacts:
- path: build/Neovim.zip
diff --git a/ci/build.ps1 b/ci/build.ps1
index bb4d3a9b23..c82a74714c 100644
--- a/ci/build.ps1
+++ b/ci/build.ps1
@@ -103,7 +103,7 @@ $failed = $false
Set-PSDebug -Off
cmake --build . --config $cmakeBuildType --target functionaltest -- $cmakeGeneratorArgs 2>&1 |
foreach { $failed = $failed -or
- $_ -match 'Running functional tests failed with error'; $_ }
+ $_ -match 'functional tests failed with error'; $_ }
Set-PSDebug -Trace 1
if ($failed) {
exit $LastExitCode
diff --git a/runtime/autoload/provider/node.vim b/runtime/autoload/provider/node.vim
index 6a6c385091..054e7eb1df 100644
--- a/runtime/autoload/provider/node.vim
+++ b/runtime/autoload/provider/node.vim
@@ -22,24 +22,14 @@ function! s:is_minimum_version(version, min_major, min_minor) abort
\ && str2nr(v_list[1]) >= str2nr(a:min_minor)))
endfunction
-let s:NodeHandler = {}
-
+let s:NodeHandler = {
+\ 'stdout_buffered': v:true,
+\ 'result': ''
+\ }
function! s:NodeHandler.on_exit(job_id, data, event)
- let bin_dir = join(self.stdout, '')
- let entry_point = bin_dir . self.entry_point
- if filereadable(entry_point)
- let self.result = entry_point
- else
- let self.result = ''
- end
-endfunction
-
-function! s:NodeHandler.new()
- let obj = copy(s:NodeHandler)
- let obj.stdout_buffered = v:true
- let obj.result = ''
-
- return obj
+ let bin_dir = join(self.stdout, '')
+ let entry_point = bin_dir . self.entry_point
+ let self.result = filereadable(entry_point) ? entry_point : ''
endfunction
" Support for --inspect-brk requires node 6.12+ or 7.6+ or 8+
@@ -65,31 +55,42 @@ function! provider#node#Detect() abort
return ''
endif
- let yarn_subpath = '/node_modules/neovim/bin/cli.js'
- let npm_subpath = '/neovim/bin/cli.js'
-
- " `yarn global dir` is slow (> 250ms), try the default path first
- if filereadable('$HOME/.config/yarn/global' . yarn_subpath)
- return '$HOME/.config/yarn/global' . yarn_subpath
- end
+ let npm_opts = {}
+ if executable('npm')
+ let npm_opts = deepcopy(s:NodeHandler)
+ let npm_opts.entry_point = '/neovim/bin/cli.js'
+ let npm_opts.job_id = jobstart('npm --loglevel silent root -g', npm_opts)
+ endif
- " try both npm and yarn simultaneously
- let yarn_opts = s:NodeHandler.new()
- let yarn_opts.entry_point = yarn_subpath
- let yarn_opts.job_id = jobstart(['yarn', 'global', 'dir'], yarn_opts)
- let npm_opts = s:NodeHandler.new()
- let npm_opts.entry_point = npm_subpath
- let npm_opts.job_id = jobstart(['npm', '--loglevel', 'silent', 'root', '-g'], npm_opts)
+ let yarn_opts = {}
+ if executable('yarn')
+ let yarn_opts = deepcopy(s:NodeHandler)
+ let yarn_opts.entry_point = '/node_modules/neovim/bin/cli.js'
+ " `yarn global dir` is slow (> 250ms), try the default path first
+ " XXX: The following code is not portable
+ " https://github.com/yarnpkg/yarn/issues/2049#issuecomment-263183768
+ if has('unix')
+ let yarn_default_path = $HOME . '/.config/yarn/global/' . yarn_opts.entry_point
+ if filereadable(yarn_default_path)
+ return yarn_default_path
+ endif
+ endif
+ let yarn_opts.job_id = jobstart('yarn global dir', yarn_opts)
+ endif
" npm returns the directory faster, so let's check that first
- let result = jobwait([npm_opts.job_id])
- if result[0] == 0 && npm_opts.result != ''
+ if !empty(npm_opts)
+ let result = jobwait([npm_opts.job_id])
+ if result[0] == 0 && npm_opts.result != ''
return npm_opts.result
+ endif
endif
- let result = jobwait([yarn_opts.job_id])
- if result[0] == 0 && yarn_opts.result != ''
+ if !empty(yarn_opts)
+ let result = jobwait([yarn_opts.job_id])
+ if result[0] == 0 && yarn_opts.result != ''
return yarn_opts.result
+ endif
endif
return ''
diff --git a/scripts/genvimvim.lua b/scripts/genvimvim.lua
index 24c147b811..947aef6cb5 100644
--- a/scripts/genvimvim.lua
+++ b/scripts/genvimvim.lua
@@ -85,7 +85,7 @@ local vimau_start = 'syn keyword vimAutoEvent contained '
w('\n\n' .. vimau_start)
for _, au in ipairs(auevents.events) do
- if not auevents.neovim_specific[au] then
+ if not auevents.nvim_specific[au] then
if lld.line_length > 850 then
w('\n' .. vimau_start)
end
@@ -93,7 +93,7 @@ for _, au in ipairs(auevents.events) do
end
end
for au, _ in pairs(auevents.aliases) do
- if not auevents.neovim_specific[au] then
+ if not auevents.nvim_specific[au] then
if lld.line_length > 850 then
w('\n' .. vimau_start)
end
@@ -104,7 +104,7 @@ end
local nvimau_start = 'syn keyword nvimAutoEvent contained '
w('\n\n' .. nvimau_start)
-for au, _ in pairs(auevents.neovim_specific) do
+for au, _ in pairs(auevents.nvim_specific) do
if lld.line_length > 850 then
w('\n' .. nvimau_start)
end
diff --git a/src/nvim/auevents.lua b/src/nvim/auevents.lua
index e6285c5c76..a6290aaac1 100644
--- a/src/nvim/auevents.lua
+++ b/src/nvim/auevents.lua
@@ -19,8 +19,8 @@ return {
'BufWriteCmd', -- write buffer using command
'BufWritePost', -- after writing a buffer
'BufWritePre', -- before writing a buffer
- 'ChanOpen', -- channel was opened
'ChanInfo', -- info was received about channel
+ 'ChanOpen', -- channel was opened
'CmdLineEnter', -- after entering cmdline mode
'CmdLineLeave', -- before leaving cmdline mode
'CmdUndefined', -- command undefined
@@ -99,9 +99,9 @@ return {
'VimResized', -- after Vim window was resized
'VimResume', -- after Nvim is resumed
'VimSuspend', -- before Nvim is suspended
- 'WinNew', -- when entering a new window
'WinEnter', -- after entering a window
'WinLeave', -- before leaving a window
+ 'WinNew', -- when entering a new window
},
aliases = {
BufCreate = 'BufAdd',
@@ -109,9 +109,9 @@ return {
BufWrite = 'BufWritePre',
FileEncoding = 'EncodingChanged',
},
- -- List of neovim-specific events or aliases for the purpose of generating
+ -- List of nvim-specific events or aliases for the purpose of generating
-- syntax file
- neovim_specific = {
+ nvim_specific = {
DirChanged=true,
TabClosed=true,
TabNew=true,
diff --git a/test/functional/terminal/scrollback_spec.lua b/test/functional/terminal/scrollback_spec.lua
index 2e236327c8..1c97441213 100644
--- a/test/functional/terminal/scrollback_spec.lua
+++ b/test/functional/terminal/scrollback_spec.lua
@@ -396,15 +396,14 @@ describe("'scrollback' option", function()
it('set to 0 behaves as 1', function()
local screen
if iswin() then
- screen = thelpers.screen_setup(nil,
- "['powershell.exe', '-NoLogo', '-NoProfile', '-NoExit', '-Command', 'function global:prompt {return "..'"$"'.."}']", 30)
+ screen = thelpers.screen_setup(nil, "['cmd.exe']", 30)
else
screen = thelpers.screen_setup(nil, "['sh']", 30)
end
curbufmeths.set_option('scrollback', 0)
if iswin() then
- feed_data('for($i=1;$i -le 30;$i++){Write-Host \"line$i\"}\r')
+ feed_data('for /L %I in (1,1,30) do @(echo line%I)\r')
else
feed_data('for i in $(seq 1 30); do echo "line$i"; done\n')
end
@@ -417,8 +416,8 @@ describe("'scrollback' option", function()
it('deletes lines (only) if necessary', function()
local screen
if iswin() then
- screen = thelpers.screen_setup(nil,
- "['powershell.exe', '-NoLogo', '-NoProfile', '-NoExit', '-Command', 'function global:prompt {return "..'"$"'.."}']", 30)
+ command([[let $PROMPT='$$']])
+ screen = thelpers.screen_setup(nil, "['cmd.exe']", 30)
else
screen = thelpers.screen_setup(nil, "['sh']", 30)
end
@@ -429,7 +428,7 @@ describe("'scrollback' option", function()
screen:expect{any='%$'}
if iswin() then
- feed_data('for($i=1;$i -le 30;$i++){Write-Host \"line$i\"}\r')
+ feed_data('for /L %I in (1,1,30) do @(echo line%I)\r')
else
feed_data('for i in $(seq 1 30); do echo "line$i"; done\n')
end
@@ -446,7 +445,7 @@ describe("'scrollback' option", function()
-- 'scrollback' option is synchronized with the internal sb_buffer.
command('sleep 100m')
if iswin() then
- feed_data('for($i=1;$i -le 40;$i++){Write-Host \"line$i\"}\r')
+ feed_data('for /L %I in (1,1,40) do @(echo line%I)\r')
else
feed_data('for i in $(seq 1 40); do echo "line$i"; done\n')
end
@@ -455,8 +454,8 @@ describe("'scrollback' option", function()
retry(nil, nil, function() expect_lines(58) end)
-- Verify off-screen state
- eq('line35', eval("getline(line('w0') - 1)"))
- eq('line26', eval("getline(line('w0') - 10)"))
+ eq((iswin() and 'line36' or 'line35'), eval("getline(line('w0') - 1)"))
+ eq((iswin() and 'line27' or 'line26'), eval("getline(line('w0') - 10)"))
screen:detach()
end)