summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles B Johnson <mail@cbjohnson.info>2020-06-29 18:40:43 -0500
committerCharles B Johnson <mail@cbjohnson.info>2021-01-22 09:23:54 -0600
commitf17beadb49a6e57520303ea9a10722df1be4d13e (patch)
tree9614cb361d2a72f798fff2377445a20143d170c6
parent8ffde14039bdc0c12d1edf961461245eb15858e9 (diff)
downloadale-f17beadb49a6e57520303ea9a10722df1be4d13e.zip
fixers/xo: support monorepos
-rw-r--r--autoload/ale/handlers/xo.vim4
-rw-r--r--test/fixers/test_xo_fixer_callback.vader14
-rw-r--r--test/fixers/test_xots_fixer_callback.vader14
-rw-r--r--test/xo-test-files/monorepo/node_modules/xo/cli.js0
-rw-r--r--test/xo-test-files/monorepo/package.json0
-rw-r--r--test/xo-test-files/monorepo/packages/a/index.js0
-rw-r--r--test/xo-test-files/monorepo/packages/a/index.ts0
-rw-r--r--test/xo-test-files/monorepo/packages/a/package.json0
8 files changed, 16 insertions, 16 deletions
diff --git a/autoload/ale/handlers/xo.vim b/autoload/ale/handlers/xo.vim
index 0bea74e4..df2659da 100644
--- a/autoload/ale/handlers/xo.vim
+++ b/autoload/ale/handlers/xo.vim
@@ -29,7 +29,7 @@ function! ale#handlers#xo#HandleJSON(buffer, lines) abort
endfunction
function! ale#handlers#xo#GetProjectRoot(buffer) abort
- let l:package_path = ale#path#FindNearestFile(a:buffer, 'package.json')
+ let l:modules_dir = ale#path#FindNearestDirectory(a:buffer, 'node_modules')
- return empty(l:package_path) ? '' : fnamemodify(l:package_path, ':p:h')
+ return empty(l:modules_dir) ? '' : fnamemodify(l:modules_dir, ':h:h')
endfunction
diff --git a/test/fixers/test_xo_fixer_callback.vader b/test/fixers/test_xo_fixer_callback.vader
index ffbecb6c..c676bd34 100644
--- a/test/fixers/test_xo_fixer_callback.vader
+++ b/test/fixers/test_xo_fixer_callback.vader
@@ -7,39 +7,39 @@ After:
call ale#assert#TearDownFixerTest()
Execute(The xo callback should return the correct default values):
- call ale#test#SetFilename('../eslint-test-files/react-app/subdir/testfile.js')
+ call ale#test#SetFilename('../xo-test-files/monorepo/packages/a/index.js')
AssertFixer
\ {
\ 'read_temporary_file': 1,
\ 'command': (has('win32') ? 'node.exe ' : '')
- \ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/xo/cli.js'))
+ \ . ale#Escape(ale#path#Simplify(g:dir . '/../xo-test-files/monorepo/node_modules/xo/cli.js'))
\ . ' --fix %t',
\ }
Execute(The xo callback should include custom xo options):
let g:ale_javascript_xo_options = '--space'
- call ale#test#SetFilename('../eslint-test-files/react-app/subdir/testfile.js')
+ call ale#test#SetFilename('../xo-test-files/monorepo/packages/a/index.js')
AssertFixer
\ {
\ 'read_temporary_file': 1,
\ 'command': (has('win32') ? 'node.exe ' : '')
- \ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/xo/cli.js'))
+ \ . ale#Escape(ale#path#Simplify(g:dir . '/../xo-test-files/monorepo/node_modules/xo/cli.js'))
\ . ' --fix %t'
\ . ' --space',
\ }
Execute(--stdin should be used when xo is new enough):
let g:ale_javascript_xo_options = '--space'
- call ale#test#SetFilename('../eslint-test-files/react-app/subdir/testfile.js')
+ call ale#test#SetFilename('../xo-test-files/monorepo/packages/a/index.js')
GivenCommandOutput ['0.30.0']
AssertFixer
\ {
- \ 'command': ale#path#CdString(ale#path#Simplify(g:dir . '/../eslint-test-files'))
+ \ 'command': ale#path#CdString(ale#path#Simplify(g:dir . '/../xo-test-files/monorepo'))
\ . (has('win32') ? 'node.exe ' : '')
- \ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/xo/cli.js'))
+ \ . ale#Escape(ale#path#Simplify(g:dir . '/../xo-test-files/monorepo/node_modules/xo/cli.js'))
\ . ' --stdin --stdin-filename %s'
\ . ' --fix'
\ . ' --space',
diff --git a/test/fixers/test_xots_fixer_callback.vader b/test/fixers/test_xots_fixer_callback.vader
index a26ec03c..6c8b448c 100644
--- a/test/fixers/test_xots_fixer_callback.vader
+++ b/test/fixers/test_xots_fixer_callback.vader
@@ -7,39 +7,39 @@ After:
call ale#assert#TearDownFixerTest()
Execute(The xo callback should return the correct default values):
- call ale#test#SetFilename('../eslint-test-files/react-app/subdir/testfile.ts')
+ call ale#test#SetFilename('../xo-test-files/monorepo/packages/a/index.ts')
AssertFixer
\ {
\ 'read_temporary_file': 1,
\ 'command': (has('win32') ? 'node.exe ' : '')
- \ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/xo/cli.js'))
+ \ . ale#Escape(ale#path#Simplify(g:dir . '/../xo-test-files/monorepo/node_modules/xo/cli.js'))
\ . ' --fix %t',
\ }
Execute(The xo callback should include custom xo options):
let g:ale_typescript_xo_options = '--space'
- call ale#test#SetFilename('../eslint-test-files/react-app/subdir/testfile.ts')
+ call ale#test#SetFilename('../xo-test-files/monorepo/packages/a/index.ts')
AssertFixer
\ {
\ 'read_temporary_file': 1,
\ 'command': (has('win32') ? 'node.exe ' : '')
- \ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/xo/cli.js'))
+ \ . ale#Escape(ale#path#Simplify(g:dir . '/../xo-test-files/monorepo/node_modules/xo/cli.js'))
\ . ' --fix %t'
\ . ' --space',
\ }
Execute(--stdin should be used when xo is new enough):
let g:ale_typescript_xo_options = '--space'
- call ale#test#SetFilename('../eslint-test-files/react-app/subdir/testfile.ts')
+ call ale#test#SetFilename('../xo-test-files/monorepo/packages/a/index.ts')
GivenCommandOutput ['0.30.0']
AssertFixer
\ {
- \ 'command': ale#path#CdString(ale#path#Simplify(g:dir . '/../eslint-test-files'))
+ \ 'command': ale#path#CdString(ale#path#Simplify(g:dir . '/../xo-test-files/monorepo'))
\ . (has('win32') ? 'node.exe ' : '')
- \ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/xo/cli.js'))
+ \ . ale#Escape(ale#path#Simplify(g:dir . '/../xo-test-files/monorepo/node_modules/xo/cli.js'))
\ . ' --stdin --stdin-filename %s'
\ . ' --fix'
\ . ' --space',
diff --git a/test/xo-test-files/monorepo/node_modules/xo/cli.js b/test/xo-test-files/monorepo/node_modules/xo/cli.js
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/xo-test-files/monorepo/node_modules/xo/cli.js
diff --git a/test/xo-test-files/monorepo/package.json b/test/xo-test-files/monorepo/package.json
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/xo-test-files/monorepo/package.json
diff --git a/test/xo-test-files/monorepo/packages/a/index.js b/test/xo-test-files/monorepo/packages/a/index.js
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/xo-test-files/monorepo/packages/a/index.js
diff --git a/test/xo-test-files/monorepo/packages/a/index.ts b/test/xo-test-files/monorepo/packages/a/index.ts
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/xo-test-files/monorepo/packages/a/index.ts
diff --git a/test/xo-test-files/monorepo/packages/a/package.json b/test/xo-test-files/monorepo/packages/a/package.json
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/xo-test-files/monorepo/packages/a/package.json