Compare commits

..

2732 Commits

Author SHA1 Message Date
w0rp
d837169f1d Ignore compiled files from newer versions 2019-05-08 09:52:43 +01:00
w0rp
9778a6e5b5 Merge pull request #2134 from oaue/master
javac linter: fix handling of error messages containing ':' character
2019-05-08 09:51:46 +01:00
w0rp
0927634916 Fix #2452 - Strip trailing spaces off sign text automatically 2019-04-23 15:59:05 +01:00
w0rp
711de2c1be Fix #2415 - Mark tsserver and LSP linters inactive again 2019-04-17 18:13:22 +01:00
w0rp
fa18195e34 Fix #2440 - Fix the kotlinc command when Maven and Gradle are missing 2019-04-15 13:36:28 +01:00
w0rp
0059bcd1d0 Merge pull request #2433 from belka-ew/bugfix/remove-otherproject-util-double
Remove otherproject#util#Double from d.vim
2019-04-13 12:30:04 +01:00
w0rp
9d0a55edec Do not complain about generated _callback settings 2019-04-10 19:53:22 +01:00
w0rp
950204b133 Fix #2399 - Do not check buffers used for displaying diffs 2019-04-10 18:43:21 +01:00
w0rp
bbb6e70377 #2417 - Silence errors for shortmess+=T 2019-04-10 15:40:16 +01:00
w0rp
02af53b8b0 Document ale#Has 2019-04-07 16:29:55 +01:00
w0rp
ce64e349cd Close #2132 - Add deprecation warnings for old features 2019-04-07 16:24:08 +01:00
w0rp
e85eb82401 #2132 - Implement feature tests with ale#Has 2019-04-07 15:34:39 +01:00
w0rp
3bebcb5d48 #2132 - Replace command_chain and chain_with with ale#command#Run 2019-04-07 14:58:06 +01:00
w0rp
cdf89f8269 Merge pull request #2414 from rpdelaney/severity-sp
Fix missing character in %severity%
2019-04-04 15:34:02 +01:00
Ryan Delaney
8c31e2f04a Fix missing character in %severity% 2019-04-03 18:21:06 -07:00
w0rp
435a072181 #2397 - didChangeConfiguration should be a notification 2019-04-02 22:00:03 +01:00
w0rp
5be6a2b4e0 Merge pull request #2340 from svanharmelen/svh/f-gotype
make `gotype` return all errors
2019-04-02 14:27:01 +01:00
w0rp
669aeb2c9d Add pyflakes to the Vim help file too 2019-04-02 09:37:01 +01:00
w0rp
e3080e2c1b Merge pull request #2406 from mafrosis/pyflakes-is-supported
Pyflakes is supported + FAQ update
2019-04-02 09:36:16 +01:00
w0rp
cfffdab856 Sort the documented options 2019-04-02 09:31:00 +01:00
w0rp
1dbba6849f Merge pull request #2403 from rhysd/config-disable-lsp
Add g:ale_disable_lsp and b:ale_disable_lsp to disable linters powered by LSP
2019-04-02 09:28:27 +01:00
Matt Black
2f1d1b7826 FAQ: how can I see what is currently enabled? 2019-03-31 12:02:18 +11:00
Matt Black
5fe45f3219 Pyflakes is supported 2019-03-31 07:36:02 +11:00
rhysd
6a29641872 Add g:ale_disable_lsp and b:ale_disable_lsp to disable linters powered by LSP 2019-03-30 15:29:17 +09:00
w0rp
89273b65b8 Merge pull request #2369 from ajcrites/ajcrites/2368/vertical-focus-fix
Fix #2368 - Open vertical list to the right
2019-03-29 19:23:52 +00:00
w0rp
3eb6d7b3db #2395 - Handle empty output for redpen 2019-03-29 16:09:27 +00:00
w0rp
e1e8f0dae1 Fix the table of contents 2019-03-29 15:36:11 +00:00
Jesse Harris
000c37e775 PSScriptAnalyzer (#2370)
* Added psscriptanalyzer
* Added exclusions and documentation
* Added PSScriptAnalyzer handler test
2019-03-29 15:25:55 +00:00
w0rp
442d672d8a #2397 - disable elixir-ls by default, which can be CPU hungry 2019-03-29 14:19:13 +00:00
w0rp
a92627e1e1 Fix #2402 - Handle null LSP references responses 2019-03-29 13:42:24 +00:00
w0rp
32c8bd1fa4 Merge pull request #2363 from davidsierradz/master
support jsonlint local executable
2019-03-25 22:05:28 +00:00
w0rp
8768a309b8 Merge pull request #2378 from antew/feature/elm-lsp-linter
Elm: Support for elm-lsp
2019-03-25 21:41:33 +00:00
Shahin Sorkh
ad998211f8 Use location of composer.json for PHP project path too (#2391)
* move php-langserver "test for .git dir" test-project to its own directory
* search for composer.json file in php-langserver first then .git dir
* add test for php-langserver composer.json
2019-03-25 21:29:34 +00:00
Antew
8ec9615400 Add support for elm-lsp 2019-03-21 02:55:49 -04:00
Andrew Crites
a3a052b55a Fix #2368 - Open vertical list to the right
This was normal behavior before, and it also stops ale from stealing focus.
2019-03-16 21:39:11 -04:00
davidsierradz
dfff73795a support jsonlint local executable 2019-03-15 16:21:48 -05:00
w0rp
80ef7ea2d0 #2357 Handle Windows paths where the drive letter colon is encoded 2019-03-13 16:44:29 +00:00
w0rp
67ea571659 Handle pipes in Windows drive letters for URIs 2019-03-13 15:54:09 +00:00
Tomasz N
5f03bae41c Fix parsing the third part of version string (#2355)
* Fix parsing the third part of version string
* Add test
* Test: fix checking cached version
2019-03-12 17:49:48 +00:00
Sander van Harmelen
b0fac47060 make gotype return all errors
When using `gotype` without the `-e` option, it will only output the
first 10 errors. When working on a larger package that ofter means taht
those 10 errors are in other files then the one that you are currently
working on which then seems to indicate that there are no errors.

By adding the `-e` flag, all errors will be returned and shown properly
in the file that you are working on.
2019-03-12 09:32:39 +01:00
w0rp
365ffae6c4 Fix #2351 - Escape spaces and backslashes for signs 2019-03-11 19:44:51 +00:00
w0rp
f0da35b958 Merge pull request #2349 from oblitum/fix-missing-languagetool-file-argument
Fix passing file to languagetool
2019-03-11 09:15:29 +00:00
Adam Trepanier
a22ab78dd7 make options for credo configurable (#2337)
* Add credo --strict option

If a user sets 'let g:ale_elixir_credo_strict=1' it will run credo with
--strict instead of suggest.  The default (0) is to run as suggest.

* Added credo docs
2019-03-11 09:12:32 +00:00
w0rp
a6012d853c Merge pull request #2347 from codenut/master
Fix for #2346
2019-03-11 09:07:31 +00:00
Francisco Lopes
d9a12348d0 Fix passing file to languagetool 2019-03-11 04:42:25 -03:00
w0rp
03384a5d6f #2341 - Handle completion messages with textEdit objects 2019-03-10 15:21:36 +00:00
Michael Valladolid
a5cf7e854b set maximum number of autocomplete suggestions for results coming from LSP 2019-03-10 00:50:25 +08:00
w0rp
8a0213f1fd Remove more uses of command_callback and executable_callback 2019-03-09 14:30:28 +00:00
w0rp
c6a6a37931 Update documentation for languagetool 2019-03-09 14:12:31 +00:00
Vincent Dahmen
7eae06d3f3 linter/markdown: adds support for languatool (#2155) 2019-03-09 13:55:54 +00:00
w0rp
fd31987f23 Merge pull request #2327 from akshit-sharma/master
clang-format supported with nvcc (cuda files)
2019-03-08 21:36:43 +00:00
w0rp
413529f603 Fix #2326 - ALEComplete no longer replaces completeopt 2019-03-08 21:32:05 +00:00
w0rp
be2c0c3af5 Merge pull request #2325 from rustic-games/rust-spans
set correct Rust span end column
2019-03-08 20:23:42 +00:00
w0rp
5505f2323d Fix #2330 - Do not use getcurpos() to avoid changing curswant 2019-03-07 12:28:42 +00:00
w0rp
6aef52f026 Merge pull request #2305 from campbellr/master
javac: Don't assume src/main/java always exists
2019-03-06 10:39:32 +00:00
w0rp
cf883aa5a8 #2132 - Document ale#command#Run 2019-03-05 14:07:38 +00:00
Nathan Henrie
e5746d9a83 Add lsp_config support for rls (#2332)
* Add lsp_config for rls
* Add working config example and test
2019-03-05 09:09:29 +00:00
Ryan Campbell
4fc27f099b javac: Don't assume src/main/java always exists
Some projects I have only have src/test/java (no /src/main/java), which
seemed to break some incorrect assumptions the linter had.
2019-03-03 14:43:21 -07:00
akshit-sharma
32dbf5942e fixed mismatched ToC and heading 2019-03-02 22:19:28 -07:00
akshit-sharma
163f0ab06e clang-format supported with nvcc (cuda files) 2019-03-02 21:39:44 -07:00
Jean Mertz
26460a77a7 set correct Rust span end column
The Rust compiler returns the first column that is _not_ part of the
current span as `column_end`, while Ale expects `end_col` to signify
the last column of the span.
2019-03-02 16:17:17 +01:00
w0rp
c4328f2a31 #2132 - Support deferred execution for LSP executables, commands, and addresses 2019-02-27 23:26:32 +00:00
w0rp
37a1d24a36 Skip the command#Run test for fixers on Windows 2019-02-26 16:57:57 +00:00
w0rp
38009b8e58 #2132 - Support deferred fixers 2019-02-26 16:56:16 +00:00
w0rp
70a9176de0 #2132 - Set up fixers for deferred support 2019-02-26 08:35:58 +00:00
w0rp
89e5491862 Revert "#2132 Change (buffer, lines) fixer functions to (buffer, done, lines)"
This reverts commit f1ed654ca5.
2019-02-22 20:48:06 +00:00
w0rp
883978ece9 #2132 - Replace all uses of foo_callback with foo 2019-02-22 18:05:04 +00:00
w0rp
f53b25d256 #2132 - Implement project_root as a replacement for project_root_callback 2019-02-22 15:24:34 +00:00
w0rp
f8aeb5c5a4 #2132 - Make most foo_callback options work as foo 2019-02-22 00:35:53 +00:00
w0rp
ffa45fa3fb #2132 - Implement deferred command handling for linters 2019-02-21 21:24:41 +00:00
w0rp
a8b987a1c3 Fix #2300 - Handle more URIs per RFC 3986 2019-02-21 19:47:22 +00:00
w0rp
8012e5b60f Merge pull request #2303 from kevinoid/bandit-use-config
python/bandit: Use .bandit configuration file
2019-02-20 09:58:02 +00:00
w0rp
707a42167f Merge pull request #2302 from kevinoid/pylint-cd-proj-root
python/pylint: Change directory to project root
2019-02-20 09:54:13 +00:00
w0rp
09cbd70d9b Merge pull request #2307 from lukas-reineke/clear-virtualtext-on-disable
Clear the virtualtext on disable
2019-02-20 09:04:19 +00:00
Lukas Reineke
b8cecca8c8 Clear the virtualtext on disable 2019-02-20 11:08:27 +09:00
w0rp
fefc093e70 Merge pull request #2304 from mandreyel/patch-1
Fix typo in ale.txt
2019-02-18 09:06:34 +00:00
mandreyel
90457fdb6b Fix typo in ale.txt 2019-02-18 09:33:03 +01:00
Kevin Locke
52c2400786 python/bandit: Use .bandit configuration file
Bandit automatically [uses any .bandit file] within the directories on
which it is invoked.  Since ALE invokes bandit on stdin, it does not
load a .bandit file automatically.  Add support for automatically
finding a .bandit file and passing it to bandit via the --ini option
along with a variable to disable this behavior if desired.

Note: This is useful for the skips and tests configuration options, but
not exclude which would require invoking bandit using a file name, which
may or may not be a good trade-off.

[uses any .bandit file]: https://github.com/PyCQA/bandit/blob/1.5.1/bandit/cli/main.py#L70-L73

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
2019-02-17 14:24:18 -07:00
Kevin Locke
3300b1aca7 python/pylint: Change directory to project root
Pylint only [checks for pylintrc] (and .pylintrc) files in the packages
aboves its current directory before falling back to user and global
pylintrc.  For projects with a src dir, running pylint from the
directory containing the file will not use the project pylintrc.

Adopt the convention used by many other Python linters of running from
the project root, which solves this issue.  Add pylintrc and .pylintrc
to FindProjectRoot.  Update docs.

[checks for pylintrc]: https://github.com/PyCQA/pylint/blob/pylint-2.2.2/pylint/config.py#L106

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
2019-02-17 10:40:50 -07:00
w0rp
c3d4e0983b Try to get tests to pass on Windows again 2019-02-15 16:40:01 +00:00
w0rp
5b6df0a85f Fix #2299 - Make tsserver run again 2019-02-15 15:34:31 +00:00
w0rp
1a69c9c88c #2295 Send an empty object for the initialized notification, per the spec 2019-02-15 10:44:45 +00:00
w0rp
0d10653a7c Fix #2295 - Respond to initialize with an initialized message 2019-02-15 08:54:53 +00:00
w0rp
89039187da Fix #2294 - Fix some syntax that broke LSP 2019-02-15 08:32:01 +00:00
w0rp
7487ecb957 Simplify code for marking linters as active 2019-02-14 10:10:46 +00:00
w0rp
3140abcd0c Fix #2293 - Update linter option documentation
* The README now points to a valid helptag for linter options.
* The now very, very large part of the table of contents for linter and
  fixer options has been moved into a section so the initial table is
  smaller.
* Special linter or fixer options now lie beneath the general linter
  or fixer options.
2019-02-13 21:22:02 +00:00
w0rp
3050a132b5 Remove ProcessChain code we do not need now 2019-02-13 17:56:10 +00:00
w0rp
21a8b9f1e3 Make it easier to remove command_chain support later 2019-02-13 17:53:01 +00:00
w0rp
1ee56713b8 #2132 Use an on-init callback for all LSP logic 2019-02-13 17:26:37 +00:00
w0rp
e88243687a Better wording 2019-02-13 10:38:04 +00:00
w0rp
f1bf795b8b Explain what linting is in the first sentence 2019-02-13 10:35:26 +00:00
w0rp
690b1a5bb1 Merge pull request #2291 from kevinoid/pylama-no-temp
pylama: Use %s instead of %t
2019-02-12 21:08:31 +00:00
w0rp
926ad47a49 #2132 - Implement deferred executable string handling for linters 2019-02-12 18:05:33 +00:00
Kevin Locke
a6caa85a58 pylama: Use %s instead of %t
Although using %t to lint changes was desirable, many pylama checks use
surrounding paths and file contents (e.g. C0103 module name, E0402
relative import beyond top, etc.)  The more such errors I find during
testing, the less %t seems like a good idea.  Switch to %s.

Also set `lint_file` to 1 and mark Pylama as a file linter in the docs.

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
2019-02-12 10:45:26 -07:00
w0rp
bf196ba17c Fixers are not disabled by default 2019-02-11 22:14:35 +00:00
w0rp
df9bee88f6 Rewrite the supported tools lists in new files 2019-02-11 22:07:52 +00:00
Derek Sifford
aca1edb476 add project_root_callback for tsserver (#2290)
* add project_root_callback for tsserver
* add tests for tsserver project root
* Update test/command_callback/test_javascript_tsserver_command_callback.vader
2019-02-11 21:24:22 +00:00
w0rp
6ebe24b5ff Merge pull request #2268 from m-pilia/alex
Add settings for the Alex linter
2019-02-10 23:43:43 +00:00
w0rp
752e6f0ab9 Merge pull request #2277 from chaucerbao/feature/redraw-after-open
Center the result after `ale#util#Open` jumps
2019-02-10 23:34:21 +00:00
w0rp
5dbac4ab9c Merge pull request #2287 from kevinoid/vulture-options
Document and test ale_python_vulture_options
2019-02-10 23:24:31 +00:00
w0rp
b235e08b3c Merge pull request #2289 from kevinoid/shellcheck-dialect
Support ale_sh_shellcheck_dialect to set shellcheck dialect
2019-02-10 22:47:53 +00:00
Kevin Locke
a0d4eb3699 Support ale_sh_shellcheck_dialect to set dialect
As discussed in w0rp/ale#1051, there are cases where it would be useful
to be able to specify the dialect explicitly.  This commit allows users
to do so using the ale_sh_shellcheck_dialect variable.

Fixes: w0rp/ale#1051

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
2019-02-10 09:00:55 -07:00
Kevin Locke
82b15fb706 Document and test ale_python_vulture_options
The vulture linter already supports ale_python_vulture_options, but it
is not documented or tested.  Since vulture only supports configuration
via options, it is an important use case.  Add docs and test.

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
2019-02-10 08:18:55 -07:00
w0rp
7a48750610 Complain about binary operators on the ends of lines 2019-02-10 11:43:48 +00:00
Théo Cavignac
d072d2654c Supporting filtered jump (#2279)
* Support filtered jump based on loclist item type (E or W for now)
* Use flags to customize the behavior of ALENext and ALEPrevious
* Update <plug> bindings with flags
* Update documentation about ALENext and ALEPrevious
* Use ale#args#Parse in JumpWrap
2019-02-10 11:11:29 +00:00
Kevin Locke
a24f0b4d5f Support pylama for python (#2266)
* Add pylama for python
* Consolidate python traceback handling
2019-02-08 21:44:34 +00:00
w0rp
422908a572 #2009 - Force Windows jobs to run in a CMD shell 2019-02-08 21:33:16 +00:00
w0rp
ba6f08f3d4 Merge pull request #2262 from sectioneight/cd-for-black
Respect python black fixer configuration file
2019-02-08 20:11:11 +00:00
w0rp
3ba7d02708 Merge pull request #2272 from Rahlir/fix-c-compilecommand
Fix error when parsing compile_commands for c languages
2019-02-08 20:06:12 +00:00
Alvin Chan
1fb0de2a8e Add -relative option to ALESymbolSearch (#2255)
* Add `-relative` option to ALESymbolSearch
* Document the `-relative` option for ALEFindReferences and ALESymbolSearch
2019-02-08 19:43:04 +00:00
w0rp
d21581016e Fix #2257 - Fix an off by 1 which broke completion for some servers 2019-02-08 19:31:47 +00:00
w0rp
800d029b46 Merge pull request #2284 from jqno/master
Fixes javalsp linter
2019-02-08 10:08:09 +00:00
w0rp
b32fdfe816 #2132 Implement deferred objects for ale#command#Run 2019-02-08 08:41:38 +00:00
w0rp
19cc724807 Add a function for parsing command args 2019-02-07 18:10:34 +00:00
w0rp
2885c57e3e Fix #2276 - Replace a potentially infinite loop for hie 2019-02-07 16:24:41 +00:00
Jan Ouwens
5ce1e9b0b4 Fixes javalsp linter 2019-02-07 11:20:18 +01:00
w0rp
0b9c0c2200 Merge pull request #2278 from oblitum/improve-cypher-lint
linter/cypher: make Cypher linter dynamic
2019-02-07 09:24:41 +00:00
Francisco Lopes
b47a0c9519 Make Cypher linter dynamic 2019-02-06 20:29:58 -02:00
w0rp
c0c634c5ec Merge pull request #2270 from oblitum/add-cypher-lint
linter/cypher: add cypher-lint
2019-02-06 22:04:47 +00:00
w0rp
81c73da3b9 #2132 - lint and fix with ale#command#Run
A new function is added here which will later be modified for public use
in linter and fixer callbacks. All linting and fixing now goes through
this new function, to prove that it works in all cases.
2019-02-06 22:00:11 +00:00
w0rp
3e11cbd18d Update syntax checking
* Line continuation characters should be on the same lines.
* .vim file line indentation should be a multiple of 4.
2019-02-06 18:05:13 +00:00
Alvin Chan
70b95f16c3 Replace normal with normal! 2019-02-05 16:37:26 -08:00
Alvin Chan
9f63bec12c Remove the redraw since it's implicit with the zz 2019-02-05 16:31:02 -08:00
Alvin Chan
7ce481c8f6 Center the line within the viewport after a jump 2019-02-05 16:27:13 -08:00
Alvin Chan
a4ed9a1c35 Force Vim to redraw after ale#util#Open 2019-02-05 16:13:58 -08:00
Tadeas Uhlir
37daedafed Fix error when parsing compile_commands for c langs
This little error caused that when parsing compile_commands json, the
filename was used to fetch entries in directory dictionary, hence, when
adding new json commands, it never found anything in dir_lookup and
instead rewrote the previous entry. Hence, the dir_lookup always
contained list of only one compile_command per directory instead of all
compile_commands for given directory.
2019-02-04 16:50:46 -05:00
Francisco Lopes
626572a539 linter/cypher: add cypher-lint 2019-02-03 03:09:51 -02:00
Martino Pilia
771581a945 Add settings for the Alex linter
The executable for the Alex linter is currently hard-coded as 'alex',
which is an issue given the fact that it conflicts with the Haskell
lexer generator, whose executable is also called 'alex', has been around
a dozen years before the linter, and is packaged in the official
repositories of the major Linux distributions.

This commit adds options to use a local executable for the alex linter
(which is a node package), and an option to set a custom executable.

As side changes:
* The pattern in the alex handler is made more readable by turnig it
  into a very-magic regex.
* Alex handles plain text, markdown, and HTML. Specific flags for HTML
  and markdown are provided when instantiating the linters for the
  respective filetypes, while before those formats were treated as plain
  text.
2019-02-02 16:20:14 +01:00
w0rp
4d426bf287 Fix #2263 - detailed Flow errors should show the original message 2019-02-01 13:01:56 +00:00
Aiden Scandella
de29ff26ff Respect python black fixer configuration file
Similar to other linters/fixers, by default change to the directory of
the file being fixed before invoking `black`, which allows the tool to
read project-specific configuration (pyproject.toml)

Fixes #2218
2019-01-30 14:44:38 -08:00
w0rp
067601e9db Set lint_file for the ameba linter 2019-01-27 16:16:22 +00:00
Harrison Bachrach
17a2f554e3 Add initial ameba (crystal linter) support (#2174)
* Add initial ameba (crystal linter) support

Note that this depends on saved file as `ameba` does not have STDIN
support

* Fix formatting of crystal linter documentation
* Add tests for ameba executable customization
2019-01-27 16:01:42 +00:00
w0rp
08d3523962 Merge pull request #2228 from Nomad145/ktlint
Add ktlint Fixer Support
2019-01-27 15:55:13 +00:00
petpetpetpet
3c38fdb1bb Extend statusline interface (#2240)
* Extended statusline.vim to provide an efficient way to access the first errors,warnings,stylerrors,stylewarnings,etc from the loclist.
* Added documentation and help for the new API function.
2019-01-27 12:44:49 +00:00
w0rp
a7b3b84899 Merge pull request #2225 from ravicious/master
Pass --compiler flag to elm-test when linting 0.19 tests
2019-01-27 12:36:22 +00:00
TANIGUCHI Masaya
03b25dd39b Add textlint for tex (#2234) 2019-01-27 12:14:34 +00:00
w0rp
79135dfe13 Fix #2192 - Handle more ignore-pattern messages for ESLint 2019-01-27 12:08:39 +00:00
Attila Maczak
d7ced31fe2 add cmake-format fixer support (#2244) 2019-01-27 11:45:57 +00:00
Niclas Åhdén
e46c17e8ef SugarSS support from PR 1967 (#2219)
* sugarss support + bonus naming Sass correctly
* cleanup + alphabetic ordering
2019-01-27 11:42:11 +00:00
w0rp
f03370e183 Merge pull request #2207 from pmacosta/master
Fixed parsing of pydocstyle errors
2019-01-27 11:01:14 +00:00
w0rp
d882c434a1 Merge pull request #2215 from irwand/master
support older flake8 output, still used by hacking module from openstack style guide
2019-01-27 10:57:42 +00:00
w0rp
3ac12b6939 Fix #2216 - Tolerate versions without path numbers 2019-01-27 10:56:08 +00:00
w0rp
dd995d9aa9 Merge pull request #2235 from erydo/stack-ghc-options
Add g:haskell_stack_ghc_options like …_cabal_ghc_…
2019-01-27 10:20:46 +00:00
Alvin Chan
6288c8b08e Use relative paths when previewing file locations (#2238)
* Use relative paths when previewing file locations

Example: ALEFindReferences -relative
2019-01-27 10:18:20 +00:00
John Gentile
b8bf7b220d Add VHDL Support & Newer Verilog Linters (#2229)
* Added VHDL file support with ghdl compiler
* Update ghdl.vim
* Create vcom.vim
* Create xvhdl.vim
* Update xvlog.vim
* Added documentation for VHDL & Verilog linters
* Added tests to VHDL & Verilog linters
2019-01-27 09:46:33 +00:00
w0rp
91c1fc3bb3 Sort documentation entries alphabetically better 2019-01-27 09:32:39 +00:00
w0rp
20b9dfdb4a Fix #2195 - Handle the command key being missing 2019-01-27 09:12:59 +00:00
w0rp
6e9040da75 Merge pull request #2131 from 0mco/master
Parse more C/C++ compiler options
2019-01-26 22:10:48 +00:00
w0rp
0a9dc7b4ba Merge pull request #2245 from andrewimeson/adi/add-ksh-support
Add better ksh support
2019-01-26 22:04:29 +00:00
w0rp
6543d0e902 #2248 Mention tsserver as a JavaScript tool too 2019-01-26 22:02:21 +00:00
w0rp
a47deeae40 Merge pull request #2250 from m-pilia/bandit
Add bandit linter for Python
2019-01-26 21:41:40 +00:00
w0rp
452460b8cd Merge pull request #2241 from bk2204/lsp-detect-hook
Add a hook to detect LSP project root
2019-01-26 19:40:45 +00:00
w0rp
cf14d0aa53 #2132 Unify temporary file management in command.vim 2019-01-26 19:33:52 +00:00
Martino Pilia
0a5de2b42b Add bandit linter for Python 2019-01-26 11:48:03 +01:00
brian m. carlson
6fc016ad05 Add additional ways to detect LSP project root
Currently, we detect the linter root based on a variety of techniques.
However, these techniques are not foolproof. For example, clangd works
fine for many things without a compile_commands.json file, and Go
projects may be built outside of the GOPATH to take advantage of Go
1.11's automatic module support.

Add global and buffer-specific variables to allow the user to specify
the root, either as a string or a funcref. Make the funcrefs accept the
buffer number as an argument to make sure that they can function easily
in an asynchronous environment.

We define the global variable in the main plugin, since the LSP linter
code is not loaded unless required, and we want the variable to be able
to be read correctly by :ALEInfo regardless.
2019-01-26 04:46:41 +00:00
brian m. carlson
766636e0c4 test/lsp: ensure linter name is set
All linters should have a name variable set in their dictionary, and
code should be able to rely on that. Fix this test such that its example
linter contains a name entry.
2019-01-26 04:46:41 +00:00
Andrew Imeson
a6de3f3727 Add better detection for KornShell/ksh 2019-01-24 14:14:49 -05:00
Andrew Imeson
eec8b9da60 Fix test name for csh to not say zsh 2019-01-24 13:30:50 -05:00
Louis Xu
8037f472ef Parse more C/C++ compiler options 2019-01-24 09:44:52 +08:00
Robert Estelle
e273f678ff Add haskell_stack_ghc_options like …_cabal_ghc_…
Adds new option `g:haskell_stack_ghc_options` which passes options to
`stack ghc`. This is implemented similiarly to
`g:haskell_cabal_ghc_options`.
2019-01-22 09:46:08 -05:00
Alvin Chan
f12d312aa4 Add babylon as default Prettier parser (#2220)
* Mimic Prettier's default parser by setting it to `babylon`
* Add tests to check default Prettier `parser`
* Set Prettier default parser based on version
* Update the comment to explain the reason for an explicit default
2019-01-22 10:24:15 +00:00
Andrey Popp
d0284f22ea Add textDocument/typeDefinition for LSP (#2226)
* Add textDocument/typeDefinition for LSP

Doc to spec https://microsoft.github.io/language-server-protocol/specification#textDocument_typeDefinition

This works like textDocument/definition but resolves a location of a
type of an expression under the cursor.

I'm not sure what to do with tsserver though.

* Fix passing column to LSP
* test_go_to_definition: wording
* Add tests for textDocument/typeDefinition
* Add docs for textDocument/typeDefinition
2019-01-21 23:06:28 +00:00
w0rp
a4932679b5 Merge pull request #2224 from andreypopp/andreypopp/lsp-hover-fix-column
Adjust column to be 0-based for LSP messages
2019-01-21 21:11:02 +00:00
Andrey Popp
bcf63eea96 Request LSP completion for the next col after the cursor 2019-01-21 23:19:47 +03:00
w0rp
37107df6f3 Merge pull request #2223 from andreypopp/andreypopp/lsp-diagnostics-end
End position in LSP range is exclusive
2019-01-21 19:59:38 +00:00
Andrey Popp
c2e4b553d0 Update tests 2019-01-21 18:36:52 +03:00
Andrey Popp
e960e54eca Update tests 2019-01-21 17:40:33 +03:00
Andrey Popp
2e85eed756 Fix ale#lsp#message#* to convert column to 0-based
This is what LSP specifies.
2019-01-21 17:40:33 +03:00
w0rp
bffb26cb72 Merge pull request #2230 from yut23/master
Add support for pyls configuration options
2019-01-21 09:10:57 +00:00
yut23
f2db164268 Add support for pyls configuration options
Resolves #1443.
Heavily inspired by the analogous support added for elixir-ls.
2019-01-20 23:59:46 -05:00
Michael Phillips
bd1e639681 Add ktlint fixer support. 2019-01-20 19:39:47 -06:00
Rafał Cieślak
9c0c6efbd0 Pass --compiler flag to elm-test when linting 0.19 tests
This makes elm make linter work when elm is not installed globally.
2019-01-19 22:22:10 +01:00
Andrey Popp
d6d6fcf928 End position in LSP range is exclusive
From LSP spec:

> A range in a text document expressed as (zero-based) start and end
> positions. A range is comparable to a selection in an editor. Therefore
> the end position is exclusive.
2019-01-19 18:50:21 +03:00
Irwan Djajadi
cdc3bc9238 added hacking compatibility test 2019-01-16 11:27:34 -06:00
Irwan Djajadi
08affaad7a support older flake8 output, still used by hacking module from open style guide 2019-01-16 10:59:05 -06:00
w0rp
d1fc084b2d Merge pull request #2209 from samzeng/patch-1
Fixed typo
2019-01-15 15:36:20 +00:00
Sam Zeng
6efa37d35b Fixed typo 2019-01-15 23:06:51 +08:00
Pablo Acosta-Serafini
86af4be0d0 Fixed parsing of pydocstyle errors
ale#Escape function seems to prepend and append ' to the file name, which
are not present in the pydocstyle output. Having the parsing regexp match
the file name was overkill anyway, since there is an obvious 1:1
correspondence between the buffer number and the (potential) errors
reported by pydocstyle.
2019-01-14 20:36:14 -05:00
w0rp
a50e049e74 Mention raco in the list of supported tools 2019-01-14 20:35:23 +00:00
Anthony Quizon
d09e8bc99e Racket linting using raco (#2146) 2019-01-14 19:45:33 +00:00
w0rp
c0b2090fbb #2132 Move CreateTemporaryFileForJob calls into FormatCommand 2019-01-12 18:34:26 +00:00
hokorobi
7f176390fc Support textlint for reStructuredText (#1978)
* Support textlint for reStructuredText
* Add linter test for textlint rst
2019-01-12 14:40:03 +00:00
w0rp
56b7dca623 Fix flow tests on Windows 2019-01-12 14:36:07 +00:00
w0rp
cbaa7eb3c7 Clean up bingo tests, so they pass on my machine too 2019-01-12 13:14:29 +00:00
w0rp
6644563949 #2132 Remove the need for the hidden add_newline option by tweaking the flow command 2019-01-12 13:14:29 +00:00
w0rp
d8a53cc7a5 Merge pull request #2191 from davidvandebunte/fixCompDbDir
bugfix: c.vim: Pull build directory from compilation database
2019-01-10 18:59:13 +00:00
TANIGUCHI Masaya
fabebb3a47 Add textlint for Asciidoc and add it to Fixers (#2193)
* Add textlint for asciidoc
* Add textlint --fix
2019-01-10 18:53:45 +00:00
w0rp
721183116e Merge pull request #2194 from fx-carton/fix-cflags-parsing
Fix cflags parsing
2019-01-10 11:33:33 +00:00
François-Xavier Carton
7e7447bb93 Cflags: added a test case 2019-01-09 16:53:45 +01:00
François-Xavier Carton
4bbb10b46a Cflags parser: fix special chars matching algorithm 2019-01-09 16:53:36 +01:00
David VandeBunte
4f72023e16 bugfix: c.vim: Pull build directory from compilation database
The LLVM compiler database JSON already includes a directory where the
build was performed:
https://clang.llvm.org/docs/JSONCompilationDatabase.html

Prefer this directory for fixing relative paths in compiler include
arguments in ale#c#ParseCFlags.

Without this change, users cannot create a symlink to their compilation
database as suggested in the LLVM tooling setup instructions:
https://clang.llvm.org/docs/HowToSetupToolingForLLVM.html
2019-01-08 19:09:02 -06:00
w0rp
f23811770a Add briefer help tags for ALE development documentation 2019-01-08 14:40:26 +00:00
w0rp
84475ff6f1 Merge pull request #2189 from jeremija/jeremija/manual-autocomplete-wo-prefix
Manually trigger autocomplete even when prefix is ""
2019-01-08 14:27:04 +00:00
Jerko Steiner
b1b05e6e66 Optimize ale#completion#Filter when prefix is "" 2019-01-08 15:10:03 +01:00
Jerko Steiner
9bcf8a2336 Manually trigger autocomplete even when prefix is "" 2019-01-08 12:57:17 +01:00
w0rp
1d7acad891 Merge pull request #2161 from guill/compile_database_perf
Improve perf for compile dbs in large projects
2019-01-08 09:29:07 +00:00
Jerko Steiner
0fcd5e79a9 Add ability to manually trigger completion menu (#2177)
* Add ability to manually trigger completion menu
* Mention :ALEComplete in completion docs
* Add test for ALEComplete
2019-01-07 17:55:55 +00:00
Jacob Segal
cb0a5c7a36 Improve perf for compile dbs in large projects
When using a compilation database (compile_commands.json) in very large
projects, significant delays would occur when changing files --
particularly those that happened to be far down the db. Rather than
iterating over the whole list every time, we now build up a lookup table
based on the tail of the filename (and tail of the directory for
widening searches) and iterate over the much smaller list of compile
commands for files with the given name.

Test metrics (from compile_database_perf/test.sh) show a 90% performance
improvement -- from 25 seconds to 2.5 seconds per run.
2019-01-06 00:41:57 -08:00
Jerko Steiner
5bbe77101d Add support for bingo (#2165)
* Add support for https://github.com/saibing/bingo
* Add docs for ale-go-bingo
* Use go.mod when found
* Add test for bingo FindProjectRoot
* Simplify ale_linters#go#bingo#GetCommand
2019-01-05 19:12:55 +00:00
w0rp
4f3190daa8 Fix a test on Windows 2019-01-04 14:51:55 +00:00
w0rp
3b96ab43fb Merge pull request #2176 from altaurog/feat/elm-tests
support tests/ with elm 0.19.0
2019-01-04 09:38:10 +00:00
Aryeh Leib Taurog
1f21eb0c42 fallback to elm if elm-tests isn’t available 2019-01-04 09:55:35 +02:00
Aryeh Leib Taurog
4a11a6337e fix: don’t use regex match
windows paths have backslashes, which are special in regex patterns
2019-01-04 09:55:35 +02:00
Aryeh Leib Taurog
ba38688dff support tests/ with elm 0.19.0
With earlier elm versions, a separate package file is maintained for
tests, which when properly configured enabled the compiler to find what
it needed to compile the tests.  Under elm 0.19, test dependencies are
managed in the top-level package file, so `elm make` will fail on the
tests.  `elm-test make` is required in this case.

See https://github.com/elm-explorations/test/issues/64
2019-01-04 09:55:35 +02:00
Aryeh Leib Taurog
bbf02d837e test elm-make changes to rootdir when elm.json is found
most projects will have an elm.json file (>= 0.19) or elm-package.json (< 0.19)
2019-01-04 09:55:35 +02:00
w0rp
08606b88d0 Clean up the new g:ale_shell code. Use it for Windows 2019-01-03 21:23:09 +00:00
w0rp
7919db0db5 Merge pull request #2167 from stegmanh/master
Add support for ale option to override default shell used by ale
2019-01-03 21:01:13 +00:00
w0rp
1b264b8662 Merge pull request #2168 from fx-carton/master
Fix CFLAGS & Makefile issues
2019-01-03 20:37:16 +00:00
w0rp
78724f4cd3 Fix some formatting issues 2019-01-03 20:33:59 +00:00
w0rp
a1654cfb58 Merge pull request #1988 from mdtusz/pipenv-black
Add support for black usage with pipenv
2019-01-03 20:32:36 +00:00
Holden
5f613a5fd6 change ale to use value of g:ale_shell regardless of what it is 2019-01-02 19:05:51 -05:00
w0rp
1d87c844b0 Merge pull request #2173 from chaucerbao/feature/find-references-line-text
Add associated line text on ALEFindReferences results for TypeScript
2019-01-02 22:40:11 +00:00
Alvin Chan
5792bd6e29 Update FindReferences tests 2018-12-31 14:59:50 -07:00
Alvin Chan
f534db1ef9 Replace trim with substitute for compatibility (Vim <8.0.1630) 2018-12-31 14:54:36 -07:00
Alvin Chan
24fda01a0e Add associated line text on ALEFindReferences results for TypeScript 2018-12-31 14:29:42 -07:00
François-Xavier Carton
e5f33c6598 Add a test for cflags merging bug 2018-12-29 12:16:22 +01:00
François-Xavier Carton
f7c4c403eb Fix CFLAGS parsing
Split by space instead of dash.
This prevents incorrect parsing where space-separated arguments are
merged (in particular, .c or .o files were appended to -I or -D
arguments).

Handle shell escape: quotes and escaped quotes \" and shell
substitutions are recognised. This is done by verifying that no special
character (" ' ` ()) has not a matching character.

Fixes #2049
2018-12-29 12:16:22 +01:00
Holden
8550fa6059 fix tests on windows 2018-12-28 12:51:01 -05:00
Holden
3ec20a730d address PR feedback by fixing docs and hardcoding bash to use -c on fish and pwsh environments 2018-12-28 12:35:57 -05:00
Holden
c499825a0b add tests for ale_shell option 2018-12-28 11:58:55 -05:00
Miklós Tusz
48057407ec Fixup tests for auto-pipenv 2018-12-21 20:28:17 -08:00
Miklós Tusz
4bf260e953 Remove unnecessary exe check for black 2018-12-21 20:07:14 -08:00
Miklós Tusz
63e76875d5 Add test for python_black_auto_pipenv 2018-12-21 20:07:14 -08:00
Miklós Tusz
1c9ad77866 Add documentation for python_black_auto_pipenv 2018-12-21 20:07:14 -08:00
Miklós Tusz
6619e1ac53 Add auto_pipenv config for black
Added ability to set `python_black_auto_pipenv` to allow for usage
of a local pipenv black executable.
2018-12-21 20:07:14 -08:00
w0rp
73ca1e7191 Merge pull request #2150 from mvgrimes/perl-linter-data-fix
Update the perl-linter's l:pattern to catch missing errors
2018-12-20 16:22:10 +00:00
w0rp
5345a5dd81 Merge pull request #2141 from benjaminjkraft/master
Add versions of ALEGoToDefinition that open in splits
2018-12-20 16:15:57 +00:00
Ben Kraft
73a204dd00 Add versions of ALEGoToDefinition that open in splits
This is just like `:ALEGoToDefinitionInTab`, only a (v)split instead of
a tab.  Fixes #2140.
2018-12-19 18:35:56 -05:00
Mark Grimes
c19f2aa302 Adds tests for perl-linter where a second file/line is included in error 2018-12-19 08:30:23 -05:00
w0rp
f1ed654ca5 #2132 Change (buffer, lines) fixer functions to (buffer, done, lines) 2018-12-18 11:13:28 +00:00
w0rp
0e3778e335 Merge pull request #2153 from deltaskelta/gqlint-fix
changed gqlint to lint the file on disk
2018-12-18 10:19:59 +00:00
Jeff Willette
e55d07cf6f changed gqlint to lint the file on disk
- added a cd into the direcotry containing the file in the buffer
  in order to properly check for a config file
- added command_callback tests for graphql
2018-12-18 18:59:02 +09:00
w0rp
9a3be907ea Close #2152 - Use ale_javascript_standard_options for fixing files too 2018-12-18 09:28:55 +00:00
Mark Grimes
ebab81b220 Use non-greedy matching instead of looking for the comma 2018-12-16 17:01:24 -05:00
w0rp
13060a3492 Merge pull request #2136 from hsanson/368-chktex-latex-report-errors-from-wrong-file
Fix 368 - Lacheck reports errors from input{} files.
2018-12-16 13:17:52 +00:00
Mark Grimes
38d25fc7c0 Update the perl-linter's l:pattern to catch missing errors
In some situations, errors reported by `perl -c` can have multiple
listings of "at <file> line <number>". If the l:pattern is changed to
use non-greedy matching it will also match these.

For example:
```
use strict;
use DateTime;
$asdf=1;
```

Results in:
```
Global symbol "$asdf" requires explicit package name (did you forget to declare "my $asdf"?) at /Users/mgrimes/t.pl line 3, <DATA> line 1.
/Users/mgrimes/t.pl had compilation errors.
```

I am not 100% sure why `perl -c` generates errors with the extra "file
line <num>". It only happens in some versions of perl when certain
modules are used.
2018-12-14 17:13:49 -05:00
Horacio Sanson
5052eca5cb Add tests to lacheck linter 2018-12-11 23:44:06 +09:00
Justin Searls
2cfa09e02d Adds standardrb linter (#2133)
See: https://github.com/testdouble/standard

StandardRB is to RuboCop what StandardJS is to ESLint. This commit 
naively copies the RuboCop linter and fixer to point at the standardrb
executable. Any other adjustments are very minor (the only I can think 
of is that standardrb takes a `--fix` option instead of 
`--auto-correct`).

This raises a confusing point to me as both developer and a user: since
ale enables all linters by default, won't this run both RuboCop and 
StandardRB (the results of which will almost always be in conflict with
one another)? How does ale already solve for this for the similar case
of StandardJS and ESLint?
2018-12-10 14:02:32 -07:00
w0rp
c899ff3523 Explain the .* .gitignore rule 2018-12-10 20:20:23 +00:00
w0rp
39c892eff4 #1520 - Add an :ALEDocumentation for tsserver 2018-12-10 20:08:28 +00:00
Horacio Sanson
a6a8c90126 Fix 368 - Lacheck reports errors from input{} files.
This PR adds additional check to lacheck linter to exclude any warnings
related to sourced files via latex \input{} command.

Closes: #368
2018-12-10 23:39:51 +09:00
Holden
57a04701c3 Merge branch 'master' of github.com:stegmanh/ale 2018-12-07 18:05:20 -05:00
Holden
cbc029b2b8 Add initial support for settings to overwrite ale shell 2018-12-07 18:04:28 -05:00
Gordon Fontenot
9226e13b31 Add support for Pod based SwiftLint (#2122)
It's common to add SwiftLint as a CocoaPod dependency, instead of as a global
binary. In this case we should use that version of SwiftLint before looking
for any others. Note that I'm also adding support for SwiftLint in ReactNative
projects here as well, where the Pods directory would be nested inside an ios
directory.
2018-12-07 15:20:58 -07:00
w0rp
3db564f774 Merge pull request #2061 from hsanson/1910-add-support-for-bibclean-fixer
Add bibclean fixer support
2018-12-06 20:26:04 +00:00
pmacosta
fdd37acc1f Add support for pydocstyle linter (#2085)
The linter can correctly parse pydocstyle output with any of the following
command-line options enabled: --explain, --source, --debug, and/or
--verbose
2018-12-06 11:27:03 -07:00
Oskar Grunning
2760cf7018 refactor sasslint linter (#2077)
Previous implementation required one to have sass-lint globally. This
allows you to have it locally, override the executable and add options.
2018-12-06 11:23:31 -07:00
w0rp
dc61d46e28 Merge pull request #2119 from hsanson/1994-fix-javalsp-support
Fix javalsp command.
2018-12-05 13:10:05 +00:00
Horacio Sanson
3346b200bf Fix javalsp command.
The command used to invoke the LSP process was being escaped wrong.

Also added a new option to set a different java executable and fixed the
documentation.
2018-12-05 21:53:39 +09:00
w0rp
92668b6beb Merge pull request #2117 from gitter-badger/gitter-badge
Add a Gitter chat badge to README.md
2018-12-04 19:27:25 +00:00
The Gitter Badger
b4bcbfcc3b Add Gitter badge 2018-12-04 19:26:17 +00:00
w0rp
f4af9157e1 Make the suggestion about asking for help friendlier 2018-12-04 19:07:55 +00:00
w0rp
0d14380d8a Do not wrap bug report lines 2018-12-04 09:42:37 +00:00
w0rp
f2b353fa09 Fix a mistake with a link 2018-12-04 09:33:24 +00:00
w0rp
6f32f002e7 Revert "Merge pull request #2083 from zackhsi/scalac-until-jvm"
This reverts commit 1c89495d77, reversing
changes made to 4b4b09593b.
2018-12-03 20:39:10 +00:00
w0rp
9eda079e02 Typo 2018-12-03 20:30:24 +00:00
w0rp
146769c616 Tell people to ask for tech support outside of GitHub issues 2018-12-03 20:29:26 +00:00
Horacio Sanson
9e97a6914e Add bibclen fixer support
Closes #1910
2018-12-01 15:05:18 +09:00
Ryan
1d4f985538 Merge pull request #2110 from w0rp/lazy-clipboard
Optimize :ALEIntoToClipboard to only copy to clipboard once
2018-11-30 09:39:57 -06:00
Ryan
8176f79fa1 Merge pull request #1734 from sridhars/master
Add language server source in ALEDetail
2018-11-30 09:36:37 -06:00
Bjorn Neergaard
d2b0ae8108 Merge branch 'master' into sridhars 2018-11-29 14:57:35 -07:00
Bjorn Neergaard
ef641dda80 Add test for detail in lsp ReadDiagnostics 2018-11-29 14:51:01 -07:00
Bjorn Neergaard
fcd5e18a99 Use single quotes to satisfy vint 2018-11-29 14:35:54 -07:00
Bjorn Neergaard
121ecf9262 Only set the unnamed register at the end of :ALEInfoToClipboard
This fixes performance problems in Neovim, where every character results
in spawning a new clipboard-tool process.

Behaviour is not similarly pathological in Vim, but it still results in
an unnecessary amount of register churn.
2018-11-29 13:48:17 -07:00
w0rp
0a384a49d3 Merge pull request #2096 from mgedmin/flake8-uses-vcols
flake8 reports visual columns
2018-11-28 09:49:31 +00:00
w0rp
7e28a61fac Merge pull request #2104 from andys8/patch-1
Readme: Links for tsserver and cargo
2018-11-26 10:24:15 +00:00
Andy
44512bb8af Readme: Links for tsserver and cargo 2018-11-25 16:52:32 +01:00
w0rp
51b6fa4aa2 Merge pull request #2103 from bfredl/ns
Don't hardcode the namespace id for virtual text
2018-11-25 14:05:39 +00:00
w0rp
6746cb3333 Fixing linter problems 2018-11-25 13:57:13 +00:00
Björn Linse
d18511f322 Don't hardcode the namespace id for virtual text
This makes collisions with other plugins less likely.
2018-11-25 11:06:55 +01:00
lfree
2ab64514d0 php: change phpstan's --errorFormat to --error-format (#2005)
* php: change phpstan's --errorFormat to --error-format
* add version check to phpstan
2018-11-23 09:39:50 +00:00
Marius Gedminas
a0baeec591 Fix unit tests 2018-11-22 12:09:45 +02:00
Marius Gedminas
9481f307fb flake8 reports visual columns
Fixes #2092.
2018-11-22 11:57:02 +02:00
w0rp
ff0bd14efe Merge pull request #2068 from m-pilia/ispc
Add linter for ispc
2018-11-21 16:44:59 +00:00
Martino Pilia
66212966dd Add --nowrap to ispc options 2018-11-21 10:40:07 +01:00
w0rp
a05a16b109 Merge pull request #2070 from meain/fixer-prettier-yaml
add yaml to registry for prettier
2018-11-19 20:22:35 +00:00
w0rp
e74d43fb25 Fix #2084 - Disable mix by default, as it causes too many problems 2018-11-19 20:14:30 +00:00
w0rp
1c89495d77 Merge pull request #2083 from zackhsi/scalac-until-jvm
Continue scalac compilation until just before bytecode generation
2018-11-19 20:02:07 +00:00
w0rp
4b4b09593b Merge pull request #2087 from m-pilia/ada
Add GCC linter for Ada
2018-11-19 19:36:32 +00:00
Martino Pilia
d90673ab5b Add GCC linter for Ada 2018-11-18 18:14:24 +01:00
Zack Hsi
1b779fbc08 Fix test 2018-11-17 13:02:16 -08:00
w0rp
f538bb440a Merge pull request #1907 from guill/compile_commands_fix
Fix bug where last C compile flag was ignored
2018-11-17 20:28:11 +00:00
Jacob Segal
1b3fa9828c Fix bug where last c flag was ignored
There is currently a check that tries to prevent c-flags that contain
'-' in them from being unintentionally split and included in the list of
commands. For example, we wouldn't want "-fno-exceptions " to appear as
"-fno" and "-exceptions ". The way this check was done was by making sure
the last character of the split string was a space.

This meant that the very last option to appear in the compile command
was ignored (as it doesn't end with a space). This fix explicitly skips
the ends-with-space check on the last option in the command-line.

This isn't the best fix. Really we should be using the same
argument-processing rules as a shell would rather than just splitting on
'-'. That's a much larger and more complicated change though.
2018-11-17 04:04:39 -08:00
Zack Hsi
c25582076c Continue scalac compilation until just before bytecode generation
Previous behavior does not compile deep enough to surface errors.

See compiler phases:
https://docs.scala-lang.org/overviews/compiler-options/index.html#compilation-phases
2018-11-16 15:31:13 -08:00
w0rp
531868f759 Merge pull request #2079 from jeffkreeftmeijer/vale-asciidoc
Add Vale linter for AsciiDoc
2018-11-15 09:10:53 +00:00
Jeff Kreeftmeijer
7c73901199 Add Vale linter for AsciiDoc
Vale supports AsciiDoc. This patch adds a Vale linter for AsciiDoc
files, which is based on the existing Markdown linter.
2018-11-14 21:41:18 +01:00
w0rp
dd7b2188ab Add style highlights for virtualtext and document all of them 2018-11-14 16:44:53 +00:00
jamestthompson3
f64f9aba16 Add specific highlight groups for virtualtext (#2071) 2018-11-14 16:21:35 +00:00
w0rp
3948638dbe Merge pull request #2069 from meain/fixer-prettier-html-tests
add tests for prettier-html
2018-11-12 18:33:16 +00:00
Abin Simon
d045de2618 add yaml to registry for prettier 2018-11-12 12:43:08 +05:30
Abin Simon
1f4dbb82ec add tests for prettier-html 2018-11-12 12:28:34 +05:30
Martino Pilia
9e8f2b0840 Lint ispc on disk to solve include imprecisions 2018-11-12 00:54:24 +01:00
Martino Pilia
0b4507ed56 Add linter for ispc 2018-11-11 18:26:37 +01:00
w0rp
d30da203b9 Merge pull request #2063 from languitar/better-checkstyle
Checkstyle improvements
2018-11-11 10:00:37 +00:00
w0rp
7dd460303d Merge pull request #2060 from meain/fixer-pretty-html
Add prettier to html formatters
2018-11-11 09:57:48 +00:00
w0rp
d1d5292178 Fix #2054 - Make golint configurable 2018-11-11 09:42:57 +00:00
w0rp
b96105bebb Merge pull request #2056 from luan/virtualtext
Add support for nvim's virtualtext on cursor
2018-11-11 09:17:53 +00:00
w0rp
6858b4a259 Merge pull request #2059 from jparise/test-elixir-paths
Remove test/command_callback/mix_paths/
2018-11-10 11:00:13 +00:00
w0rp
90f2875f29 Merge pull request #2053 from andreypopp/fix-ocamlformat-stdin-stdout
Make ocamlformat work without temporary files
2018-11-10 10:57:11 +00:00
w0rp
f8d3ffb60e Fix #1960 - Do not fix files on :wq 2018-11-10 10:06:56 +00:00
w0rp
e4faf82cab Enable ESLint for Vue files by default 2018-11-08 09:19:02 +00:00
Johannes Wienke
8e24a1a916 Let checkstyle only lint original files
Temporary files break checks like the one for a missing
package-info.java, as discussed in #1305.
2018-11-07 13:26:54 +01:00
Johannes Wienke
5d6b4ef73f Support older checkstyle versions
The output format used by older checkstyle versions differs from the one
of new versions. This commit adds a second parsing iteration on the
output lines with a suitable pattern to support both versions in
parallel. Due to the differences in the order of matching groups this is
hard to achieve in a single pass through the output lines.

An appropriate test case is added.
2018-11-07 13:25:48 +01:00
Luan Santos
ba9b056a57 Fix info text
Removed ale_virualtext_prefix from debugging since it's not requried for
the functionality to work.
Sorted debugging info to make the list easier to navigate/diff.
2018-11-06 22:38:47 -08:00
Luan Santos
3ec09f7826 Document ale_virtualtext_delay 2018-11-06 22:36:37 -08:00
Luan Santos
f58a5cba05 Move virtualtext handling to own file
This allows cursor and virtualtext to be independently autoloaded.
2018-11-06 22:31:35 -08:00
Abin Simon
ed8104b6ab Add prettier to html formatters 2018-11-07 12:00:59 +05:30
Jon Parise
dd7501ee48 Remove test/command_callback/mix_paths/
All of the other tests were already using equivalent fixtures under
test/command_callback/elixir_paths/, so let's use that path everywhere.
2018-11-06 14:01:12 -08:00
w0rp
ad98cb7448 Merge pull request #2045 from jparise/elixir-ls-umbrella
elixir-ls now recognizes umbrella projects
2018-11-06 20:02:34 +00:00
w0rp
51341fbe36 Update the instructions for installing the tslint tsserver plugin 2018-11-06 19:57:36 +00:00
w0rp
25068de91d Fix incorrect warning match
Co-Authored-By: luan <github@luan.sh>
2018-11-06 11:31:17 -08:00
Luan Santos
c41dbe2ba9 Add support for nvim's virtualtext on cursor
- Add g:ale_virtualtext_cursor boolean to enable/disable it
- Add g:ale_virtualtext_prefix to configure what prefix to use (default:
'> ')
- Requires neovim 0.3.2's unreleased API `nvim_buf_set_virtual_text`
2018-11-05 22:45:40 -08:00
w0rp
945dd2fa26 Explain how to configure aliases better, especially for Vue 2018-11-05 13:19:24 +00:00
Andrey Popp
b9fb62a4cd Make ocamlformat work without temporary files
Problem: ocamlformat is configured to format files in-place and thus go
via creating a temporary file for that. Because temporary file resides
in a different directory ocamlformat can't find `.ocamlformat`
configuration files in an original location of source files.

Solution: ocamlformat since version 0.8 can read sources on stdin and
spur result on stdout. We reconfigure ocamlformat to use a simpler
interface.
2018-11-04 20:32:56 +03:00
Jon Parise
b25794e81b elixir-ls now recognizes umbrella projects
Previously, elixir-ls would treat each sub-project within an umbrella as
standalone, which isn't desirable from a language server perspective.

Added ale#handlers#elixir#FindMixUmbrellaRoot, which locates the current
project's root and then continues searching upwards for a potential
umbrella project root. This literally looks just two levels up to keep
things simple while keeping in line with Elixir project conventions.

Use this new function to determine elixir-ls's LSP project root.
2018-11-04 06:40:25 -08:00
w0rp
acdc99b94d Merge pull request #2051 from aclemons/ruumba
Add initial support for ruumba in eruby files.
2018-11-04 11:33:15 +00:00
Justin Howard
88d328739f Allow configuration of hamllint executable (#2048)
* Allow configuration of hamllint executable

The hamllint executable was hard-coded, preventing it from being
overridden. Fix the executable to be dynamic to allow custom executable
paths.
2018-11-04 10:35:21 +00:00
w0rp
9171791646 Merge pull request #2046 from tyru/fix-unmatched-quote
[Doc] Fix unmatched backquote in doc
2018-11-04 10:19:11 +00:00
w0rp
71bb62c858 Clean up a buffer variable in a test file 2018-11-04 10:15:41 +00:00
w0rp
6aab3fe209 Merge pull request #2044 from Steap/bug/1388
PHP linter: make the path to the executable configurable
2018-11-04 10:13:44 +00:00
w0rp
93180239b9 Merge pull request #2042 from jparise/elixir-ls-config
Add configuration dictionary support to elixir-ls
2018-11-04 10:10:25 +00:00
Andrew Clemons
fa036ca72c Add initial support for ruumba in eruby files.
Ruumba provides RuboCop linting for ERB templates.

https://github.com/ericqweinstein/ruumba
2018-11-04 19:55:06 +13:00
tyru
e3ca8831ea fix unmatched backquote in doc 2018-11-02 12:15:18 +09:00
Cyril Roelandt
f34c089685 PHP linter: make the path to the executable configurable
Fixes #1388
2018-11-01 18:52:28 +01:00
Jon Parise
4bee0f1743 Add configuration dictionary support to elixir-ls
This adds generic configuration dictionary support to the elixir-ls
linter. This is useful for disabling its built-in Dialyzer support, for
example, which can improve startup time.

The configuration dictionary is a little verbose. I considered reducing
the user configuration to only the nested settings dictionary (and
having the linter implementation wrap it in the top-level `elixirLS`
dictionary), but leaving it fully configurable simplifies the code and
removes any assumptions about current or future ElixirLS behavior.
2018-10-31 10:32:48 -07:00
w0rp
4b841b5586 Fix the Windows tests 2018-10-31 16:25:04 +00:00
w0rp
5f206d900e Merge pull request #2035 from jparise/lsp_config_callback
Add a `lsp_config_callback` linter option
2018-10-31 16:24:11 +00:00
w0rp
6212c22b5a Add a bullet point about symbol search 2018-10-31 16:14:34 +00:00
w0rp
4ef2c81e95 Implement LSP symbol search 2018-10-31 16:13:31 +00:00
Jon Parise
2ac9e2a29e Only send LSP config updates when the dict changes
Each LSP connection now stores its configuration dictionary. It is
initially empty (`{}`) and is updated each time the LSP connection is
started. When a change is detected, the workspace/didChangeConfiguration
message is sent to the LSP servers with the updated configuration.
2018-10-31 08:42:42 -07:00
Jon Parise
b5a7593577 Add a lsp_config_callback linter option
This is the callback-based variant of the existing `lsp_config` linter
option. It serves the same purpose but can be used when more complicated
processing is needed.

`lsp_config` and `lsp_config_callback` are mutually exclusive options;
if both an given, a linter preprocessing error will be raised.

The runtime logic has been wrapped in `ale#lsp_linter#GetConfig` for
convenience, similar to `ale#lsp_linter#GetOptions`.

This also adds documentation and an `AssertLSPConfig` test function for
completeness.
2018-10-31 08:42:42 -07:00
w0rp
20e4e3f9db Merge pull request #2040 from leamingrad/jshint_filename
Pass the filename of the current file into jshint
2018-10-31 11:21:13 +00:00
James Owen
39fd7a0961 Add some basic callback tests for jshint 2018-10-31 11:48:52 +01:00
w0rp
cdda96154e Merge pull request #2031 from capjo/master
Do not enable all clang-tidy checks by default
2018-10-31 10:26:08 +00:00
w0rp
73f9f3da23 Merge pull request #2036 from maxhungry/fix-rubocop-fixer
Use correct exclusion flag in rubocop fixer
2018-10-31 10:15:48 +00:00
w0rp
f01611464a Tell people to write tests even more 2018-10-31 10:04:25 +00:00
James Owen
f75848b32c Pass the filename of the current file into jshint 2018-10-31 10:17:55 +01:00
Max Hung
be02ba4ed7 Use correct exclusion flag in rubocop fixer 2018-10-31 11:18:07 +13:00
w0rp
709788084f Try to fix the tests on Windows 2018-10-30 20:55:35 +00:00
Andreas Hollmann
ef7b4af917 Do not enable all clang-tidy checks by default 2018-10-30 11:46:53 +01:00
w0rp
cae40e1c34 Fix a typo 2018-10-29 18:36:03 +00:00
w0rp
caac5c93d6 #2017 Add support for display results from other sources 2018-10-29 18:28:28 +00:00
w0rp
2846e86217 #2017 Simplify lint cycles for supporting other sources later 2018-10-29 11:29:21 +00:00
w0rp
9dbebf1cb3 Merge pull request #2028 from capjo/master
Fix clazy tests
2018-10-29 09:42:29 +00:00
w0rp
70ea7a1338 Add a note about OmniSharp 2018-10-29 09:41:50 +00:00
Andreas Hollmann
4c14e6a5fd Fix clazy tests 2018-10-28 17:44:45 +01:00
w0rp
70f2873699 Merge pull request #2024 from jpowell/1580-rubocop-fixer-force-exclusions
Adds missing "s" on rubocop exclusion flag
2018-10-26 18:19:42 +01:00
Justin Powell
90048ac933 fix missing (s) on rubocop exclusion flag 2018-10-26 11:47:28 -05:00
Alexander "Ananace" Olofsson
7af33637e8 Add the dockerfile_lint linter for Dockerfiles (#1971)
* Add the dockerfile_lint linter for Dockerfiles
2018-10-26 17:34:32 +01:00
Takuya Fujiwara
34318aedf4 Add prolog swipl linter (#1979)
* add prolog/swipl linter

* use load_files/2 instead of read_term/2

Because it also checks some semantic warnings / errors
not only syntactic warnings / errors.

e.g.:
* singleton warning
* discontiguous warning
* ...

cf. http://www.swi-prolog.org/pldoc/doc_for?object=style_check/1

* support error messages with no line number

    :- module(module_name, [pred/0]).

causes

    ERROR: Exported procedure module_name:pred/0 is not defined

* add test for prolog/swipl handler

* cosmetic fixes

* detect timeout using SIGALRM

* rename g:prolog_swipl_goals to g:prolog_swipl_load

* write doc for prolog/swipl linter

* update toc and README

* fix ignore patterns
2018-10-26 17:29:17 +01:00
w0rp
3d74a4f8a6 Merge pull request #2023 from jpowell/1580-rubocop-fixer-force-exclusions
Add force exclusions flag to rubocop fixer
2018-10-26 17:16:50 +01:00
Justin Powell
b7e0321890 closes #1580 add force exclusion to rubocop fixer 2018-10-26 10:40:02 -05:00
w0rp
86c035466b Merge pull request #2022 from bengadbois/vim-plug-install-instructions
Add vim-plug installation instructions
2018-10-26 16:19:15 +01:00
Ben Gadbois
6c8e2f73f8 Add vim-plug installation instructions 2018-10-26 17:14:01 +02:00
w0rp
adc914a675 Merge pull request #1999 from stevenharman/expand_filename_for_reek
Reek: --force-exclusion flag
2018-10-26 10:21:33 +01:00
Dan Aloni
aa0203320b Rust checker: allow secondary spans to be ignored (#1696)
* Rust checker: allow secondary spans to be ignored
* test/handler/test_rust_handler.vader: Add tests for g:ale_rust_ignore_secondary_spans
2018-10-26 09:38:20 +01:00
w0rp
77aacf0c91 #927 Allow b:ale_linter_aliases to be set to a String 2018-10-26 09:22:52 +01:00
Steven Harman
9c3daf3a66 Respect configured excluded_paths 2018-10-25 16:29:29 -04:00
w0rp
320c74ce1a Merge pull request #1958 from Garland-g/perl6
Add Perl6 support via 'perl6 -c'
2018-10-25 15:38:33 +01:00
w0rp
3e65e85178 Merge pull request #2016 from terryding77/master
fix: change google_java_format_* to java_google_java_format_*
2018-10-25 15:34:31 +01:00
Anthony Poon
02c0d5bcb9 Only run stack if a stack.yaml config is found (#1752)
* Only run stack if a stack.yaml config is found

It is necessary to check for a stack.yaml file to distinguish between
cabal-only projects or stack projects (which are also cabal projects
since stack is built on top of cabal).

* Test that stack is called if stack.yaml exists
2018-10-25 15:30:49 +01:00
w0rp
9bdd5771ef Merge pull request #2018 from muglug/patch-1
Update Psalm to use LSP
2018-10-25 15:22:34 +01:00
w0rp
b3829d043d Merge pull request #2012 from paihu/fix-cdstring-win32-change-drive
Fix #2011 MS Windows, lint error when current drive and target file drive is different.
2018-10-25 14:24:56 +01:00
w0rp
68b5591299 Merge pull request #2015 from dsifford/dsifford-terraform
add terraform fmt fixer for terraform and hcl filetypes
2018-10-25 14:05:48 +01:00
Terry Ding
3ba9cad878 fix: change google_java_format_* to java_google_java_format_* for inject global variables according to doc/ale-java.txt 2018-10-24 20:10:31 +08:00
Derek P Sifford
395cabc22a fix failed test 2018-10-23 21:20:03 -04:00
Derek P Sifford
90695c5082 update README.md 2018-10-23 21:02:08 -04:00
Derek P Sifford
e94a594e2e add terraform fmt fixer for terraform and hcl filetypes
See #1718
2018-10-23 20:44:31 -04:00
paihu
d14db50c44 fix has('unix') equal 0 is windows. 2018-10-24 08:29:11 +09:00
paihu
f4395f5b8c ale#path#CdString include ale#Escape 2018-10-23 23:20:27 +09:00
paihu
bc3ccd6e04 fix indent 2018-10-22 23:42:50 +09:00
paihu
2ea83939a5 fix testcase 2018-10-22 22:59:06 +09:00
paihu
0261dd2f51 cmd.exe, LABEL must have prefix ':' but have not suffix ':' ( https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/goto ) 2018-10-22 22:58:11 +09:00
Daniel Welch
2000436dfd LSP configuration via didChangeConfiguration (#1852)
* adding LSP configuration via workspace/didChangeConfiguration
2018-10-22 13:24:46 +01:00
paihu
eae3f70e75 fix CdString for MS Windows 2018-10-22 21:17:57 +09:00
Linda_pp
f57ad883f2 Add support for cargo clippy (#2001)
* Add support for `cargo clippy`
* Add tests for cargo-clippy support
* Add an example to doc for how to configure ale_rust_cargo_use_clippy
2018-10-22 09:21:48 +01:00
Matt Brown
7fa0d3dcc4 Add tests for updated Psalm plugin 2018-10-19 16:31:12 -04:00
Matthew Brown
0ed07a9ef5 Update Psalm plugin to use LSP mode 2018-10-19 15:51:16 -04:00
w0rp
3bda132988 Merge pull request #1991 from alskdj21/ruby_solargraph_init_options
Expose ruby-solargraph's initialization options
2018-10-18 14:32:23 +01:00
ix5
b8359c1114 Allow custom executable for ansible linters (#1977)
* Allow custom executable for ansible linters
* Add ansible-lint tests
* ansible-lint: simplify linter command
* Rename linter "ansible" to "ansible_lint"
* Add ansible-lint options to documentation
* Add alias ansible-lint for ansible_lint
2018-10-18 09:19:27 +01:00
w0rp
3b38a83ae9 Tell people to turn the completion option on before loading ALE 2018-10-18 09:11:06 +01:00
Auri
be21aa5cda New linter: dls (#1992)
* New linter: dls
2018-10-17 16:11:41 +01:00
w0rp
d999eb1f35 #1970 Explain how to configure mouse hovering better 2018-10-15 18:01:49 +01:00
Kim Joseph S. Sadomia
cc1aece1e0 Rename solargraph initialization option variable 2018-10-12 18:16:28 +08:00
Aliou Diallo
b7ec11c93d Allow custom filters for the jq fixer (#1980)
* Allow the jq filters to receive custom filters.
* Update documentation.
2018-10-12 09:15:32 +01:00
Kim Joseph S. Sadomia
12409fa73d Expose ruby-solargraph initialization options 2018-10-12 13:03:06 +08:00
w0rp
e5b5ce9f51 Merge pull request #1956 from jparise/elixir-ls
Add elixir-ls language server support
2018-10-11 21:43:58 +01:00
Jon Parise
7eae781291 Add elixir-ls language server support
ElixirLS (https://github.com/JakeBecker/elixir-ls) is an LSP server for
Elixir. It's distributed as a release package that can be downloaded
from https://github.com/JakeBecker/elixir-ls/releases or built locally.

The easiest way to start it is via Unix- and Win32-specific helper
scripts, so that's the basis of this command integration. Alternatively,
we could implement the contents of those platform-specific scripts in
the linter's command callback in a language-neutral way, but there isn't
any benefit to doing that aside from eliminating the platform check, and
that could prove to be too tight of a coupling going forward.
2018-10-11 08:31:12 -07:00
Linda_pp
87986520d6 Fix E523 on asynchronous truncated echo (#1987) 2018-10-11 15:01:27 +01:00
Filip Vavera
3dd2d9dedd Fix Credo message types (#1963)
* Add more Credo message types
* Add tests
2018-10-11 10:00:10 +01:00
Matteo Centenaro
bf1ac8e822 FIX: use mix from the project root directory (#1954)
* FIX: use mix from the project root directory
* Move find root project function to autoloaded handlers
* add tests for #ale#handlers#elixr#FindMixProjectRoot
2018-10-10 17:19:47 +01:00
w0rp
ea49cc759f Link to my site, so people can find it easily 2018-10-05 12:08:56 +01:00
Travis Gibson
adad9a21ab Fix crashes with incomplete errors 2018-10-03 14:13:34 -07:00
w0rp
e984497ec9 Merge pull request #1964 from dlresende/master
Fix PMD not working with classes without package
2018-10-03 17:09:21 +01:00
Diego Lemos
607750eb02 Fix PMD not working with classes without package
PMD is currently not working properly for Java classes that use [unnamed
packages](https://docs.oracle.com/javase/specs/jls/se11/html/jls-7.html#jls-7.4.2).

Consider the following Java class that does not contain a `package`
declaration:

```java
public class App {
  String getGreeting() {
    return "Hello world.";
  }

  static void main(String... args) {
    System.out.println(new App().getGreeting());
  }
}
```

Running PMD in the command line agaist the Java class above produces an
output with empty string `""` in the `"Package"` column:

```sh
$ pmd -R category/java/bestpractices.xml -f csv -d './src/main/java/App.java'
Oct 02, 2018 9:10:39 PM net.sourceforge.pmd.PMD processFiles
WARNING: This analysis could be faster, please consider using Incremental Analysis: https://pmd.github.io/pmd-6.7.0/pmd_userdocs_incremental_analysis.html
"Problem","Package","File","Priority","Line","Description","Rule set","Rule"
"1","","/Users/diego/Projects/github.com/dlresende/kata-fizz-buzz/src/main/java/App.java","2","7","System.out.println is used","Best Practices","SystemPrintln"
```

But the pmd.vim handler's current pattern refuses everything coming
from a Java class that does not have a package name (2nd column):
```vim
let l:pattern = '"\(\d\+\)",".\+","\(.\+\)","\(\d\+\)","\(\d\+\)","\(.\+\)","\(.\+\)","\(.\+\)"$'
```

The solution I am proposing is to also accept empty strings as package names.
2018-10-02 21:34:11 +01:00
w0rp
ab3646862c Update the bug reporting template 2018-10-02 11:28:13 +01:00
w0rp
5960a9ae4b Encourage people to write tests even more 2018-10-02 11:23:23 +01:00
w0rp
04ed87c882 Merge pull request #1955 from eborden/eborden/mising_hlint_executable_var
Remove test vars that cover bug
2018-09-29 11:25:37 +01:00
Travis Gibson
2b2e766dc6 Add Perl6 support via 'perl6 -c' 2018-09-28 16:18:40 -07:00
Evan Rutledge Borden
eae8ffafb8 Set global vars in hlint linter file. 2018-09-28 13:54:21 -04:00
Evan Rutledge Borden
2a56475cf7 Remove test vars that cover bug
These test vars were covering up a bug in the hlint linter
implementation. Without these vars we can see the behavior that is
exhibited in `vim` proper.
2018-09-28 11:37:40 -04:00
Evan Borden
a8915d885b Add better support for Haskell stack compiler tools (#1851)
* Add better support for Haskell stack compiler tools

This commit adds support for `stack` as the executable of a tool. This
follows a pattern that has been implemented for `bundler`'s tool chain.

* Move hlint command to linter file
* Add vader test for stack exec handling
* Update ghc-mod to support stack execution

`ghc-mod` was previously broken into 2 linters.

1. ghc_mod
2. stack_ghc_mod

This additional linter is not necessary with proper support for
executable variables and `stack exec` handling.

* Support stack exec in hfmt
* Support stack in hdevtools
2018-09-28 09:05:01 +01:00
w0rp
a26b3319a1 Merge pull request #1950 from yejingchen/ccls
Add ccls support for C/C++/ObjC
2018-09-28 09:02:00 +01:00
Ye Jingchen
8891b7c349 Move ccls functions to autoload/ale/handler
Tests are kept as-is.
2018-09-28 03:26:57 +08:00
w0rp
fd0467f992 Merge pull request #1917 from jpsouzasilva/fix-stylelint-scss
Support options when using Stylelint with SCSS
2018-09-27 16:54:17 +01:00
Richard Marmorstein
947360f714 Add psalm linter for PHP (#1893) 2018-09-27 16:48:47 +01:00
Ye Jingchen
17676f6a6d Add missing files for ccls test 2018-09-26 23:17:19 +08:00
Ye Jingchen
626e47f5c9 Add ccls tests 2018-09-26 22:50:43 +08:00
w0rp
58ceb21cbc Merge pull request #1908 from KtorZ/master
Allow extra options to be passed to haskell:hlint
2018-09-26 15:38:15 +01:00
Ye Jingchen
56658fd3ad Add ccls support for C/C++/ObjC 2018-09-26 20:09:37 +08:00
w0rp
143c3cd09f #1941 Explain how to alleviate a timeoutlen Vim bug by changing settings 2018-09-25 10:17:45 +01:00
Bert JW Regeer
8e7e810db6 Bugfix: python add blank lines (#1944)
* Don't add newlines when not a control statement for Python
* Add test for accidental newline fix
* Add docstring detection to avoid adding unnecessarily newlines
* Add tests for docstring detection
2018-09-25 10:02:01 +01:00
w0rp
aa5c82b171 Merge pull request #1932 from rhysd/shfmt-default-indent
shfmt: Use Vim's indent config as default indent width
2018-09-20 09:30:59 +01:00
w0rp
560749cf9e Merge pull request #1939 from elebow/fix-typo-solargraph-docs
Fix typo in Solargraph documentation
2018-09-20 09:28:48 +01:00
w0rp
1900b76005 Fix #1938 - Set a default value for an undefined variable 2018-09-20 08:28:51 +01:00
Eddie Lebow
a59f5776fa Fix typo in Solargraph documentation 2018-09-19 21:59:15 -04:00
w0rp
169a6e26b2 Merge pull request #1719 from elebow/auto-pipenv-option-for-python-linters
Add python_[linter]_auto_pipenv options for python linters (fixes #1656)
2018-09-19 19:46:13 +01:00
Martin Tournoij
e82bcdb8a6 Add fixer for Go modules (#1873)
* Add fixer for Go modules
2018-09-19 19:33:23 +01:00
w0rp
a6c6e24d61 #1872 Remove extra carriage returns when fixing files on Windows 2018-09-19 19:28:57 +01:00
w0rp
9d50a06d48 Merge pull request #1937 from danielwe/master
Support both old (<0.7) and new Julia versions
2018-09-19 15:40:10 +01:00
Daniel Wennberg
d50e603177 Support both old (<0.7) and new Julia versions
Closes #1931
2018-09-19 07:34:11 -07:00
w0rp
b278927102 Merge pull request #1924 from fenuks/prospector-url-fix
Update prospector tool URL
2018-09-19 13:24:40 +01:00
w0rp
6bbbb9456c Merge pull request #1926 from gnustomp/master
c#ParseCFlags: don't index empty list
2018-09-19 13:22:43 +01:00
w0rp
e5b920e387 Merge pull request #1934 from meunierd/solargraph-stdio
Support Solargraph stdio
2018-09-19 13:12:41 +01:00
w0rp
993f02ad80 Merge pull request #1928 from felipesere/master
To avoid blocking build tools, suspend ALE when suspending vim
2018-09-18 17:46:45 +01:00
w0rp
213a901ccd Stop tsserver from causing errors to be rendered redundantly 2018-09-18 17:43:17 +01:00
Devon Meunier
4025030d86 Solargraph stdio 2018-09-18 11:20:29 -04:00
rhysd
532686102e shfmt: Use Vim's indent config as default indent width 2018-09-18 17:51:00 +09:00
KtorZ
bd32b7c856 Add command_callback tests to cover hlint config variables 2018-09-18 08:25:49 +02:00
KtorZ
d84fcf6c3c Define custom vim global variables to pass options to hlint 2018-09-18 08:25:41 +02:00
James Ye
3c067941f1 add test for arguments with '--' 2018-09-18 10:59:26 +10:00
Felipe Sere
f09e6d638f Test that we CleanupEveryBuffer when vim supports it 2018-09-17 21:26:25 +01:00
w0rp
ddb3e6d57a Handle failing to connect to eslint_d 2018-09-17 17:32:57 +01:00
Felipe Sere
cbf0568061 Join the ALECleanupGroup and ensure we don't run cleanup if ale.vim isn't loaded 2018-09-17 15:50:04 +01:00
w0rp
a4a4bba884 Merge pull request #1927 from jparise/thrift-includes-default
thrift: default thrift_thrift_includes to ['.']
2018-09-17 11:21:30 +01:00
w0rp
f9e99d81a4 #1794 - Handle LSP documentation content as a Dictionary 2018-09-17 11:16:46 +01:00
w0rp
1a13963f0d Merge pull request #1925 from elebow/fix-markdown-error-in-readme-solargraph
Fix markdown error in README solargraph entry
2018-09-17 09:48:02 +01:00
w0rp
0b163ec656 Fix the Julia languagserver linter for Julia 0.7 2018-09-17 09:16:41 +01:00
Jon Parise
b7fcec4d17 thrift: default thrift_thrift_includes to ['.']
In a lint context, it's useful to assume that included files sit next to
the current file by default. Users can still further customize this
configuration variable to add more include paths.
2018-09-16 08:21:18 -07:00
Felipe Sere
fba4cfeae9 To avoid blocking build tools, suspend ALE when suspending vim 2018-09-16 15:57:13 +01:00
James Ye
87743faf2a c#ParseCFlags: don't index empty list 2018-09-16 22:57:43 +10:00
Eddie Lebow
24e26b419a Fix markdown error in README solargraph entry 2018-09-15 22:14:01 -04:00
Eddie Lebow
dbe9352935 Add python_auto_pipenv config var for all python linters.
This allows a user to set one variable instead of eight.
2018-09-15 22:10:46 -04:00
Eddie Lebow
56e67c5811 Add python_[linter]_auto_pipenv options for python linters (fixes #1656)
When set to true, and the buffer is currently inside a pipenv,
GetExecutable will return "pipenv", which will trigger the existing
functionality to append the correct pipenv arguments to run each linter.

Defaults to false.

I was going to implement ale#python#PipenvPresent by invoking
`pipenv --venv` or `pipenv --where`, but it seemed to be abominably
slow, even to the point where the test suite wasn't even finishing
("Tried to run tests 3 times"). The diff is:

diff --git a/autoload/ale/python.vim b/autoload/ale/python.vim
index 7baae079..8c100d41 100644
--- a/autoload/ale/python.vim
+++ b/autoload/ale/python.vim
@@ -106,5 +106,9 @@ endfunction

" Detects whether a pipenv environment is present.
function! ale#python#PipenvPresent(buffer) abort
-    return findfile('Pipfile.lock', expand('#' . a:buffer . ':p:h') . ';') isnot# ''
+    let l:cd_string = ale#path#BufferCdString(a:buffer)
+    let l:output = systemlist(l:cd_string . 'pipenv --where')[0]
+    " `pipenv --where` returns the path to the dir containing the Pipfile
+    " if in a pipenv, or some error text otherwise.
+    return strpart(l:output, 0, 18) !=# "No Pipfile present"
 endfunction

Using vim's `findfile` is much faster, behaves correctly in the majority
of situations, and also works reliably when the `pipenv` command doesn't
exist.
2018-09-15 22:10:46 -04:00
fenuks
21ac9bdcaf Update prospector tool url in README 2018-09-15 16:51:11 +02:00
w0rp
f1f2a22228 Merge pull request #1921 from rrosenblum/ruby_linters
Fix bug with RuboCop linter when options are not set
2018-09-14 18:46:29 +01:00
jpsouzasilva
9bbea8b830 Add tests for assuring the SCSS stylelint options work 2018-09-14 13:32:42 -03:00
Ryan Rosenblum
a55b8d10b0 Fix bug with RuboCop linter when options are not set 2018-09-14 12:30:28 -04:00
w0rp
0868cb769d Merge pull request #1906 from ngavalas/autocomplete-trigger-prefix
fix non-. prefix triggers overfiltering results
2018-09-14 13:32:25 +01:00
w0rp
7f1c411b5e Merge pull request #1850 from rrosenblum/ruby_linters
Update all Ruby linters to work consistently with bundler
2018-09-14 13:27:07 +01:00
w0rp
b01470cbbc Test for bundle paths with spaces again 2018-09-14 13:26:29 +01:00
w0rp
5c86ffd321 Return only the unescaped executables from executable callbacks 2018-09-14 13:24:59 +01:00
w0rp
43d7e8fde9 #1889 Add support for automatically previewing messages based on the cursor position 2018-09-14 12:42:26 +01:00
w0rp
f380d8508e Merge pull request #1919 from saschagrunert/patch-1
Change PCRE escape to simple escape
2018-09-14 11:41:47 +01:00
Sascha Grunert
c48106f484 Adapt tests 2018-09-14 10:47:33 +02:00
Sascha Grunert
96e25d471c Change PCRE escape to simple escape 2018-09-14 10:41:35 +02:00
jpsouzasilva
5901e1a879 Support options when using Stylelint with SCSS
Complement missing documentation
2018-09-13 08:51:33 -03:00
Ryan Rosenblum
9e09b7ca35 Update all Ruby linters to work consistently with bundler 2018-09-12 16:53:28 -04:00
Nick Gavalas
b4513fc4b0 fix non-. prefix triggers overfiltering results 2018-09-12 15:47:57 -04:00
w0rp
78af99c256 Merge pull request #1905 from ngavalas/tsserver-classname-fix
Fix tsserver `className` responses
2018-09-11 16:16:18 +01:00
Nick Gavalas
44070d8a45 fix tsserver className parsing 2018-09-11 10:56:58 -04:00
w0rp
99e9417ef9 Add support for Julia Language Server (#1894) 2018-09-10 17:24:04 +01:00
w0rp
bfba216e61 Merge pull request #1900 from McSwaggens/master
Fixed NASM linter from outputting junk file
2018-09-10 09:24:35 +01:00
w0rp
f00435e356 Merge pull request #1899 from blueyed/typo
doc: fix typo in ale-rust.txt
2018-09-10 09:21:01 +01:00
Daniel Jones
150015d0dc Fixed NASM tests 2018-09-10 09:23:47 +10:00
Daniel Jones
8bbf1425bf Fixed NASM linter from outputting junk file 2018-09-10 08:17:44 +10:00
Daniel Hahler
f516cac47c doc: fix typo in ale-rust.txt
[ci skip]
2018-09-09 23:34:27 +02:00
Bartolomeo Stellato
169e4b67d3 Added julia to the list in ale-support docs 2018-09-09 14:47:55 -04:00
Bartolomeo Stellato
6e7b7b23e5 Updated readme 2018-09-09 14:18:15 -04:00
Bartolomeo Stellato
97ed25a8bf Escape julia command + reorder table in README 2018-09-09 10:09:05 -04:00
w0rp
0948dcc435 Merge pull request #1897 from LEI/add-sqlfmt-fixer
Add support for sqlfmt
2018-09-09 11:55:42 +01:00
w0rp
395aba19c3 Merge pull request #1885 from dsifford/dsifford-fixer-uncrustify
add uncrustify fixer for several languages
2018-09-09 11:30:30 +01:00
Bartolomeo Stellato
b3adf241c3 Fix other warnings 2018-09-08 16:05:34 -04:00
Bartolomeo Stellato
91bb948b90 Try to fix CI 2018-09-08 14:11:11 -04:00
LEI
a97ef49c51 Add support for sqlfmt 2018-09-08 01:34:10 +02:00
Derek P Sifford
6e4dccc0e0 really fix lint errors 2018-09-07 15:28:51 -04:00
w0rp
0ae4ea23c8 #1888 Support names with minuses in Clojure and Lisp 2018-09-07 19:27:42 +01:00
Bartolomeo Stellato
68ac4d1095 Fix julia escaping + minor edits 2018-09-07 14:13:44 -04:00
Bartolomeo Stellato
f64f0bb48c Added tests 2018-09-07 13:16:22 -04:00
Bartolomeo Stellato
df72c5f1c1 Added various files to integrate julia. Still not working. 2018-09-07 11:11:29 -04:00
Derek P Sifford
9ba2d209a8 fix lint test failures 2018-09-06 21:59:03 -04:00
w0rp
e0fe97e0a8 Merge pull request #1883 from hsanson/add-solargraph-yml-to-root-path-search
Add solargraph.yml file as root path search file.
2018-09-06 20:34:34 +01:00
Sascha Grunert
7b62a15739 Add golangci-lint (#1890) 2018-09-06 20:31:12 +01:00
w0rp
580bd36773 Fix #1800 - Enable non-blocking writes where available 2018-09-06 20:04:35 +01:00
w0rp
7086769289 #1891 Fix the go-langserver tests 2018-09-06 17:05:05 +01:00
w0rp
f1d5bcbf98 Merge pull request #1870 from hsanson/1822-add-go-langserver-support
Fix #1822 - support go-langserver lsp.
2018-09-06 14:50:00 +01:00
w0rp
f8beaa9e3e Fix #1866 - Handle empty output from Perl 2018-09-06 09:23:36 +01:00
Horacio Sanson
a9333c2866 Fix #1822 - support go-langserver lsp. 2018-09-06 13:46:59 +09:00
Derek P Sifford
0ed4a5bbcc add uncrustify fixer for several languages 2018-09-04 20:39:32 -04:00
Horacio Sanson
044c762c85 Add solargraph.yml file as root path search file.
Solargraph allows to set configuration options by creating a
.solargraph.yml file at the root of the project using it. Therfore this
file is a good canditate for finding ruby projects root paths.

Initial discussion:
  https://github.com/w0rp/ale/issues/1874#issuecomment-418316168
2018-09-05 07:12:04 +09:00
w0rp
d476578a40 Improve ALE project style checking
* The project style linter now runs while you type.
* Now the scripts for checking the project require blank lines.
* Many style issues have been found and fixed.
2018-09-04 16:51:18 +01:00
w0rp
8f2e1c393f Merge pull request #1871 from Ophirr33/master
added sbtserver linter
2018-09-04 11:22:57 +01:00
w0rp
43b04d4e5b Fix the dart language server command and cover it with tests 2018-09-04 11:15:59 +01:00
w0rp
87f125ddcf Merge pull request #1882 from jacobmischka/master
Replace removed function in dart#language_server
2018-09-04 11:12:44 +01:00
Jacob Mischka
24486fa628 Replace removed function
Replaces removed `ale_linters#dart#language_server#GetExecutable`.

Fixes #1881
2018-09-03 19:23:03 -05:00
w0rp
fddbfdef12 #1875 Do not lint and so on when an operator is pending 2018-09-03 13:59:56 +01:00
w0rp
a746ea2bfc #1875 - Do not echo cursor messages when keys are pending 2018-09-03 11:41:54 +01:00
w0rp
c1f0956d9b Merge pull request #1869 from Steap/feature/gitlint-ignore-whitespace
gitcommit: fully implement warn_about_trailing_whitespace
2018-09-03 11:27:19 +01:00
Ty Coghlan
3d016f1697 Changed sbtserver to just work off of the address variable 2018-09-01 21:03:29 -04:00
Ty Coghlan
8e3bf10592 added sbtserver linter 2018-08-30 22:10:38 -04:00
Bartolomeo Stellato
8bf5d144ed Started adding julia languageserver 2018-08-30 15:40:04 -04:00
Cyril Roelandt
244c5a8ce5 gitcommit: fully implement warn_about_trailing_whitespace
Fixes #1761
2018-08-30 03:42:44 +02:00
w0rp
ea01cc708b Merge pull request #1865 from TheLocehiliosan/puppet-options
Support options for puppet parser validate
2018-08-29 14:22:01 +01:00
Tim Byrne
ed26ddc09c Always use --color=false when validating puppet
Colorized output is difficult for ALE to parse.
2018-08-29 07:15:03 -05:00
w0rp
ee3142b601 Merge pull request #1866 from Steap/feature/xmllint-fixer
Add support for xmllint as a fixer.
2018-08-28 23:36:00 +01:00
w0rp
79f02fce69 Merge pull request #1856 from sbl/ocamlformat
add ocamlformat support
2018-08-28 23:28:30 +01:00
w0rp
d4ce201cc2 Merge pull request #1849 from hsanson/1848-add-support-for-java-lsp
Add vscode-java-language-server linter
2018-08-28 22:53:11 +01:00
Cyril Roelandt
cc5ad6491f Add support for xmllint as a fixer. 2018-08-28 23:43:52 +02:00
w0rp
09e43ab16b Merge pull request #1847 from hsanson/1846-support-solargraph-lsp
1846 support solargraph lsp
2018-08-28 21:52:18 +01:00
w0rp
339930ad68 Fix #1859 - Make the connection ID available on the connection object 2018-08-28 10:18:37 +01:00
w0rp
b6112aedc3 Merge pull request #1861 from dimbleby/goto-definition-column
Fix out-by-one error in column on goto-definition
2018-08-28 10:11:44 +01:00
Tim Byrne
6212d9a515 Update TOC for ale-puppet-puppet 2018-08-27 13:12:56 -05:00
Tim Byrne
192f211a0e Support options for puppet parser validate
It can be necessary to pass options to the puppet parser validation. The
most glaring example of this is when using Puppet 3, with the
`parser = future` option enabled. This update allows adding
`--parser=future` to the options passed to Puppet.
2018-08-27 12:59:38 -05:00
David Hotham
aef11cc0d2 Fix out-by-one error in column on goto-definition
Fixes #1860
2018-08-27 13:53:40 +01:00
Horacio Sanson
1980245b94 Add solargraph LSP linter. 2018-08-27 10:58:17 +09:00
Horacio Sanson
261c29c3d0 Add vader test and fix command callback. 2018-08-26 22:11:36 +09:00
Horacio Sanson
228aee71a5 Add java lsp linter to documentation 2018-08-26 22:11:04 +09:00
sbl
b7169c33e7 fix tests 2018-08-26 13:59:55 +02:00
sbl
aa015ec4db add ocamlformat support 2018-08-26 13:47:56 +02:00
w0rp
3c85c7ef65 Sort the HTML documentation sections 2018-08-24 13:24:42 +01:00
w0rp
adc038f327 Merge pull request #1839 from filipekiss/feature/stylelint-inline-css
Add Stylelint as HTML Linter
2018-08-24 13:20:37 +01:00
w0rp
c4eca7c417 Use one LSP connection per project 2018-08-24 13:16:58 +01:00
Filipe Kiss
c253fb72e3 📚 Add html stylelint to TOC 2018-08-24 08:43:19 -03:00
fenuks
9d7c48038c Add clazy as cpp linter 2018-08-24 10:52:33 +01:00
w0rp
08d141edfb Fix #1844 - Make the kotlin languageserver linter work again 2018-08-24 10:41:33 +01:00
w0rp
1f26fc4013 Merge pull request #1841 from dabbeg/fix-importjs-fixer
importjs fixer not reading correct executable variable name
2018-08-24 10:31:18 +01:00
Davíð Guðni
f526fc68d1 importjs fixer not reading correct executable variable name 2018-08-24 09:04:17 +00:00
Horacio Sanson
3afff5a24c Add vscode-java-language-server linter 2018-08-24 16:28:15 +09:00
Evan Borden
707b539969 Add hlint refactoring as a fixer (#1836) 2018-08-23 23:23:54 +01:00
Evan Borden
2600524274 Add stylish-haskell as a fixer (#1837)
* Add stylish-haskell as a fixer

`stylish-haskell` is a common formatting tool for the haskell toolchain.
It is not as advanced as `brittany` or `hindent`, but it is commonly
used for formatting of imports and data declarations. This adds it as a
fixer in ALE.
2018-08-23 23:14:59 +01:00
w0rp
81d0eccfab Merge pull request #1835 from barreyra/master
Enabling clangd for cpp, objc and objcpp
2018-08-23 22:54:11 +01:00
w0rp
7c10249c52 Merge pull request #1820 from SuRaMoN/master
Added phpcs options support as described in #257
2018-08-23 22:42:45 +01:00
w0rp
c2f7b379ee Merge pull request #1842 from kjagiello/patch-1
Fix case typo in the documentation
2018-08-23 22:34:12 +01:00
w0rp
774c02552f Merge pull request #1840 from Carpetsmoker/gopath
Remove "go env" from gobuild linter
2018-08-23 22:33:01 +01:00
Krzysztof Jagiełło
aba4160553 Fix case typo in the documentation 2018-08-23 20:24:47 +02:00
Bruno R. Barreyra
795122a042 Enabling clangd for cpp, objc and objcpp 2018-08-23 05:58:06 +02:00
Martin Tournoij
18ec66bd21 Remove "go env" from gobuild linter
I see no reason to do this? It is just setting the environment to what
it already is?

It was originally added in #297, but that entire PR is not a great idea
in the first place; that PR (together with #270) tried to make the Go do
non-standard and non-supported stuff like compiling packages outside of
GOPATH.

That's not something that works well (I tried), so was eventually
removed in #465, but these "go env" calls remained, for no reason in
particular, as far as I can think of.

This will improve on #1834; you will now no longer get a confusing error
(but still won't get a meaningful error; need to think how to do that).
2018-08-23 00:42:19 +01:00
Filipe Kiss
935a132d8f 📚 Add docs for html stylelint 2018-08-22 19:00:42 -03:00
Filipe Kiss
b78ee18898 Add html stylelint test 2018-08-22 19:00:42 -03:00
Filipe Kiss
4cd20b821f Add html stylelint linter 2018-08-22 19:00:41 -03:00
w0rp
a366d325a7 Merge pull request #1815 from fredemmott/lsp-related-information
If present, use new-ish LSP 'relatedInformation' field for :ALEDetail
2018-08-20 16:59:21 +01:00
matthias
f82ab76833 Added and fixed tests 2018-08-18 20:59:35 +02:00
w0rp
61a0716837 Use &l:equalprg so local options do not override global ones 2018-08-17 10:10:49 +01:00
matthias
02fdfcda58 Added phpcs options support as described in #257 2018-08-16 16:44:41 +02:00
w0rp
ad8b260519 Fix #1816 - Fix a type error in the initialize message handler 2018-08-16 14:19:12 +01:00
w0rp
faaa11567a Merge pull request #1818 from tyru/add-go-govet-options
Add ale_go_govet_options variable
2018-08-16 14:10:21 +01:00
tyru
88ffdb4736 feat: add ale_go_govet_options variable 2018-08-16 11:36:46 +09:00
Fred Emmott
4923d48d53 Correct related information line numbers from 0-based to 1-based 2018-08-15 14:46:57 -07:00
Fred Emmott
764da48c57 Test file was the wrong way around 2018-08-15 14:40:51 -07:00
Fred Emmott
c467db3ed9 Better formatting 2018-08-15 14:31:30 -07:00
Fred Emmott
484a70f0c0 Use new-ish LSP 'relatedInformation' field for :ALEDetail 2018-08-15 14:19:32 -07:00
w0rp
9cdd8b67b2 Stop creating closure function in global scope by using partials instead 2018-08-15 00:20:47 +01:00
w0rp
5323f000aa Explain * for fixers in the README better 2018-08-13 11:38:43 +01:00
w0rp
04b25c8ee2 Merge pull request #1809 from nrhodes91/readme-global-fixers
Update README with the `*` ft option for the fixers object
2018-08-13 11:33:56 +01:00
w0rp
4179177830 Try again 2018-08-13 11:31:54 +01:00
w0rp
a034364994 #1808 Try to explain the color scheme for the example GIF 2018-08-13 11:31:32 +01:00
Nick Rhodes
cc114e2d0a Include info about * being a fallback
The `*` filetype is just fallback, and will be overridden by specific
filetype matches.
2018-08-12 10:10:39 +01:00
w0rp
a88a6d5285 Merge pull request #1806 from jimenezrick/fix-rustc-linter
Fix #1684: Use the correct flag name in rustc linter
2018-08-12 09:41:36 +01:00
Nick Rhodes
c898d5d130 Update README with the * ft option for the fixers object
It wasn't immediately obvious that the `g:ale_fixers` cannot be a list,
and would allow the use of `*` to match all filetypes. I was hoping to
add a bit more detail to the README to make this clearer.
2018-08-12 08:03:53 +01:00
Ricardo Catalinas Jiménez
db003a4361 Fix #1684: Use the correct flag name in rustc linter
The rust compiler renamed the option '-Z no-trans' to '-Z no-codegen'.

https://github.com/rust-lang/rust-enhanced/issues/281
2018-08-10 21:50:52 +01:00
w0rp
6167f75628 Merge pull request #1802 from flybayer/fix-prettier-d
Don't use error output from prettier_d for fixing files
2018-08-10 18:28:38 +01:00
w0rp
a56e801567 Merge pull request #1793 from kodemeister/cquery
Use .cquery file to detect the project root
2018-08-10 18:23:55 +01:00
w0rp
e9086dd55c Revert "#1459 Always run ESLint in the directory of the file being checked"
This reverts commit 634bf73f52.
2018-08-10 11:49:17 +01:00
Brandon Bayer
63c66dc5d2 fix: Don't use error output from prettier_d for fixing files 2018-08-09 12:56:53 -04:00
w0rp
634bf73f52 #1459 Always run ESLint in the directory of the file being checked 2018-08-09 08:51:27 +01:00
kodemeister
0702e4699e Add blank lines to conform the coding standards 2018-08-09 09:06:30 +06:00
kodemeister
cc84c19451 Add C/C++ tests for cquery LSP linter 2018-08-09 09:02:16 +06:00
w0rp
fc94fd4deb Use lambdas for LSP message callbacks, which are easier to manage 2018-08-08 20:08:51 +01:00
Peter Benjamin
8faa11752c Add prettier as a YAML option (#1789)
* Add prettier as a yaml fixer

* Sort yaml fixers alphabetically

* Add prettier to doc/ale.txt

* Add ale-yaml-prettier

* Add ale-yaml-prettier to the TOC
2018-08-08 18:48:28 +01:00
w0rp
7179f92e44 #925 Tell people not to use the tslint linter 2018-08-08 11:17:32 +01:00
w0rp
1a4456cf2a Merge pull request #1797 from bradlarsen/master
Additionally adjust the jumplist with line numbers when opening a new file
2018-08-07 21:57:12 +01:00
Bradford Larsen
8a9b28daf9 Update tests in response to changes in #1797. 2018-08-07 16:51:23 -04:00
Bradford Larsen
6f2d868baf Update tests in response to changes in #1797. 2018-08-07 16:41:12 -04:00
Bradford Larsen
023ade872e Adjust the jumplist with line numbers too when opening a new file
This further addresses Issue #1758.
2018-08-07 16:10:36 -04:00
kodemeister
212e3b0b2f Use .cquery file to detect the project root 2018-08-07 01:39:04 +06:00
w0rp
5f5540c574 Merge pull request #1787 from polyzen/doc-lsp-completions
doc: LSP can provide completions
2018-08-06 10:18:05 +01:00
Daniel M. Capella
5ed99734bd doc: LSP can provide completions 2018-08-05 01:42:16 -04:00
w0rp
03973c0d09 Explicitly disable ALE for NeoVim versions below 0.2.0 2018-08-04 07:52:34 +01:00
w0rp
fa30d90221 Merge pull request #1783 from dimbleby/yang-lsp
Add support for yang-lsp
2018-08-03 21:52:48 +01:00
David Hotham
d0e3302253 Add support for yang-lsp 2018-08-03 21:13:48 +01:00
w0rp
209cd54783 Fix #1781 - Fix me breaking the tsserver linter 2018-08-03 17:22:09 +01:00
w0rp
fefb8efff8 Merge pull request #1778 from fredemmott/hhast-perf
Tell HHAST to only look at open files
2018-08-03 09:12:12 +01:00
w0rp
41178425ab Fix the Windows tests 2018-08-03 01:00:39 +01:00
w0rp
73d8c3b80a Only run the custom ALE linting script if it's in runtimepath 2018-08-03 00:56:49 +01:00
w0rp
65880fec78 Add a linter for checking ALE code itself 2018-08-03 00:42:15 +01:00
w0rp
217284360d Simplify the code for most linters and tests with closures 2018-08-02 23:44:12 +01:00
Fred Emmott
e3c81911d6 Tell HHAST to only look at open files
Given ALE only cares about open files, this has no observable change,
except for significantly reduced resource usage.
2018-08-02 14:23:03 -07:00
w0rp
9ef266d050 Merge pull request #1770 from fredemmott/hack
Split Hack out from PHP, modernize
2018-08-02 21:58:57 +01:00
Fred Emmott
a728f074f7 Disable HHAST by default
it executes $PROJECT/vendor/bin/hhast, so that's not a good idea.
2018-08-02 13:50:56 -07:00
w0rp
94270402cb Fall back on flags for other C/C++ files in the same directory 2018-08-02 21:48:56 +01:00
w0rp
ccbdfcd76f Include the error in the detailed error message in the GCC handler 2018-08-02 21:45:16 +01:00
Fred Emmott
de6cd961a8 Suggested changes 2018-08-02 12:59:04 -07:00
Luxed
6b3086237a Add Haskell IDE Engine (hie) support (#1735)
* Adding support for haskell-ide-engine
* Work with the current directory if no stack.yaml file is found
* Added Cabal file detection, updated documentation and added tests
* Updated help
2018-08-02 20:24:58 +01:00
Paul Reimer
cb8ad9fbd8 Javascript prettier filetype detect fix (#1769)
Support fixing YAML and HTML files with prettier for files without file extensions.
2018-08-02 20:20:19 +01:00
Fred Emmott
e6bd4373f9 coding style 2018-08-02 11:44:17 -07:00
w0rp
649934230b Fix the failing tsserver test 2018-08-02 19:32:57 +01:00
Fred Emmott
5ff4e27e17 Update suggested filetypes for hackfmt 2018-08-02 11:28:57 -07:00
Fred Emmott
238201805d Split Hack out from PHP, modernize
fixes #1738

- Replace previous `hh_client` usage with LSP client
- Add `HHAST` linter
- Split Hack from PHP: Hack is increasingly diverging from PHP:
  - Hack tools do not understand PHP
  - Most PHP tools do not handle Hack code well (including vim's syntax
    highightling files)
  - http://github.com/hhvm/vim-hack now sets filetype to `hack`
2018-08-02 11:28:56 -07:00
w0rp
5f024eda09 Merge pull request #1771 from fredemmott/lsp
Show LSP diagnostic codes for `%code%` in message formats
2018-08-02 19:22:45 +01:00
Fred Emmott
04362c746d Add test for LSP code of -1 2018-08-02 09:30:22 -07:00
Fred Emmott
e722841fa3 Improved documentation for code loclist item field 2018-08-02 09:24:45 -07:00
Fred Emmott
2768bf15ba Handle LSP codes for %code% in message formats
fixes #1767
2018-08-02 09:06:48 -07:00
w0rp
589c8dbd94 Merge pull request #1776 from tmc/master
python: add lookup path for flake8 config
2018-08-02 13:01:04 +01:00
Travis Cline
2ac9e454d6 python: add lookup path for flake8 config 2018-08-01 20:07:11 -07:00
w0rp
3aa5e0f9dc Add a type check for the error data from LSP servers 2018-08-01 23:01:30 +01:00
w0rp
c1fee3f23a Merge pull request #1774 from polyzen/rust-runtime-docs
doc/rust: rust.vim distributed w/ Vim>=8.0.0501
2018-08-01 21:02:41 +01:00
w0rp
9a389b564c Merge pull request #1775 from polyzen/patch-1
contrib: Fix link to ale-development.txt
2018-08-01 21:02:06 +01:00
Daniel M. Capella
3e8ae65278 contrib: Fix link to ale-development.txt 2018-08-01 18:13:07 +00:00
Daniel M. Capella
ab5e44249d doc/rust: rust.vim distributed w/ Vim>=8.0.0501
3c2881dc11
2018-08-01 12:54:47 -04:00
w0rp
399a0d3c98 #1700 - Mention how to work around the completeopt bug in the documentation 2018-07-31 20:34:37 +01:00
w0rp
16d0c52d24 Indicate that a C compiler failed due to problems in a header file 2018-07-30 20:09:43 +01:00
w0rp
1e6b1d9be2 Try to fix the C parsing test on Windows 2018-07-29 19:30:12 +01:00
w0rp
ac4bac8ea4 Add support for parsing compile_commands.json files for C compilers 2018-07-29 19:24:27 +01:00
w0rp
a7b8cb4fe3 Mention v:t_TYPE variables in the developer documentation 2018-07-27 09:18:09 +01:00
w0rp
daab1a08db #1700 - Try using a 0ms timer showing the completion menu 2018-07-26 23:08:38 +01:00
w0rp
f8e61ff907 Merge pull request #1762 from actionless/vulture-doc
mark `vulture` as file linter
2018-07-26 14:51:16 +01:00
actionless
eb38c4b3f1 fix(linters: python): mark as lint_file 2018-07-26 14:45:28 +02:00
actionless
c2cfe2326d doc: mark vulture as file linter 2018-07-26 14:41:13 +02:00
Yauhen Kirylau
8517e901ff Add support for 'vulture' for Python 2018-07-26 08:41:27 +01:00
w0rp
79ffdde267 Merge pull request #1757 from jtalowell/master
Providing cquery support for C files
2018-07-25 21:07:19 +01:00
w0rp
c52fffcd47 Merge pull request #1760 from morrifeldman/patch-1
Fix joker finding .joker file in project root
2018-07-25 21:05:45 +01:00
morrifeldman
845e588b71 Fix joker finding .joker file
Add --working-dir option so joker can find a .joker file in the project root directory.
2018-07-25 15:53:02 -04:00
w0rp
0012c78b02 #1700 - Temporarily change completion options when the feedkeys() keybind is fired 2018-07-25 20:13:59 +01:00
w0rp
4ed35f7247 Fix #1758 - Set marks before going to definitions 2018-07-25 19:43:25 +01:00
w0rp
c4cb1c7050 Merge pull request #1539 from JonnyRa/jump-list-fix
set marks to add to jump list
2018-07-25 19:41:00 +01:00
jtalowell
c57b031876 Providing cquery support for C files 2018-07-25 14:23:13 +10:00
w0rp
06132954b1 Switch to v:t_ variables for type checks 2018-07-25 01:27:28 +01:00
w0rp
9f8c37e17c Ignore a shellcheck warning for custom linting rules 2018-07-25 00:41:26 +01:00
sridhars
4446cf15be Merge pull request #1 from w0rp/master
update
2018-07-24 16:42:26 -05:00
w0rp
3418574770 Update the developer documentation 2018-07-24 10:11:14 +01:00
w0rp
d368f090ae #1754 Require snake_case names for linters in the codebase 2018-07-24 10:05:44 +01:00
w0rp
95be2bf1ff Try Vim 8.0 and 8.1 in separate jobs 2018-07-23 22:37:53 +01:00
w0rp
d7d54d09da Try 3 builds on Travis CI 2018-07-23 22:33:03 +01:00
w0rp
338c233710 Split Vim and Neovim tests into separate builds 2018-07-23 22:28:22 +01:00
w0rp
9ade656661 Just remove the .git directory test for now 2018-07-23 22:22:19 +01:00
w0rp
44397dd6db Skip the one failing test on Windows 2018-07-23 22:21:13 +01:00
w0rp
2a861dfd40 Make the test C import path test fail less 2018-07-23 22:03:28 +01:00
w0rp
d9579dbbe9 Get tests to pass in Vim 8.1 2018-07-23 20:41:48 +01:00
w0rp
11339ca730 Merge pull request #1745 from sharils/master
Work around hot-reloading issue again
2018-07-23 15:04:55 +01:00
sharils
e3749c4a75 Fix autoload for phoenix
When dializer isn't a dependency, mix dialyzer recompiles the whole
project because it's not possible to know if this command dialyzer exist
or not until recompilation is done. Then the timestamps of the project
is messed up which results in broken hot-loading. In this case, mix help
dialyzer would return zero which prevents compilation of the whole
project since dialyzer isn't installed, it's help manual doesn't exist.

When dialyzer is a dependency, mix dialyzer would just run the command.
In this case, mix help dialyzer would return 1 which allows mix dialyzer
to run.
2018-07-23 21:43:59 +08:00
w0rp
f6d18a0b10 Skip tests for Vim 8.1 for now 2018-07-23 10:45:22 +01:00
w0rp
7bf3a749d0 #1751 Handle LSP completion results without the 'kind' attribute 2018-07-23 10:21:09 +01:00
w0rp
3e4db9ed5c Make the completion events test fail less 2018-07-22 22:42:41 +01:00
w0rp
0e71e8b465 Update the Dockerfile to test with a newer version of Vimt too 2018-07-22 22:35:49 +01:00
w0rp
846bfb47b2 Remove the redundant fix_buffer_data vars and filename variables 2018-07-22 22:31:46 +01:00
w0rp
81a8c77d20 #1692 - Only send completion requests to the first server supporting them 2018-07-22 21:14:56 +01:00
w0rp
9c849da8c4 Merge pull request #1751 from melentye/master
Add Clangd language server support for C
2018-07-22 20:55:01 +01:00
Andrey Melentyev
9b4963847d Add Clangd language server support for C 2018-07-22 21:22:38 +02:00
w0rp
6dc737cda1 Check LSP capabilities before using them 2018-07-22 19:04:55 +01:00
w0rp
899b61c5cc Merge pull request #1750 from kylef/kylef/apib-tmp
Make drafter linter use stdin instead of writing to tmp file
2018-07-22 17:07:47 +01:00
Kyle Fuller
f937b98e27 Make drafter linter use stdin instead of writing to tmp file
Writing to a tmp file is unnecessary as drafter will use stdin if a path
is not provided.
2018-07-22 16:32:39 +01:00
w0rp
baa44bb3a7 Merge pull request #1742 from typetetris/master
Add cabal-ghc linter
2018-07-22 14:12:23 +01:00
w0rp
8980591937 Move README.md back 2018-07-22 12:16:56 +01:00
w0rp
8062d6207e Revert "Update the tests to check README.md in the new location"
This reverts commit 6c10be8992.
2018-07-22 12:16:42 +01:00
w0rp
6c10be8992 Update the tests to check README.md in the new location 2018-07-22 12:15:15 +01:00
w0rp
014c924630 Move GitHub files to the .github directory 2018-07-22 12:10:35 +01:00
w0rp
04fbea6e80 Merge pull request #1736 from unpairedbracket/master
Add support for Fortran language server by @hansec
2018-07-20 21:05:24 +01:00
w0rp
0d37aaac7a Fix #1631 - Disable balloon support for terminals by default 2018-07-20 16:10:25 +01:00
Eric Wolf
ac6bc6d0ae Add cabal-ghc linter
cabal-ghc calls ghc via cabal exec and so ghc has access to packages
in cabal sandboxes for example
2018-07-20 16:48:27 +02:00
Ben Spiers
ad986a8d82 Add the .fortls file necessary for tests to work (defying .gitignore) 2018-07-19 22:37:06 +01:00
Ben Spiers
e8bea510df Add documentation and testing for fortls 2018-07-19 22:27:47 +01:00
w0rp
61a5880747 Capture server capabilities from LSP servers 2018-07-19 21:15:05 +01:00
Ben Spiers
324838adae Add support for Fortran language server by @hansec 2018-07-19 18:47:37 +01:00
w0rp
27f1915745 Capitalize Language Server Protocol 2018-07-19 17:06:39 +01:00
w0rp
dfa38ff0dd Make LSP support more prominent in the README 2018-07-19 17:00:29 +01:00
Sridhar Srinivasan
0da4c6e4ad Add language server source in ALEDetail (2) 2018-07-18 22:12:56 -05:00
Sridhar Srinivasan
0c4606651f Add language server source in ALEDetail 2018-07-18 21:44:05 -05:00
w0rp
5453e0e1a4 Fix #1708 - Don't modify linters or register fixers in the sandbox 2018-07-17 21:39:50 +01:00
w0rp
7952ebe77e #1700 - Don't send <C-x><C-o> for completion in Insert mode 2018-07-17 19:39:45 +01:00
w0rp
a01fab2ee6 Fix #1619 - Rewrite lint on enter events so they behave better 2018-07-17 00:18:34 +01:00
w0rp
37df1f8ceb #1700 - Stop handling completion results if you leave insert mode 2018-07-16 17:57:07 +01:00
w0rp
aa54c10bae Try to make tests pass on Windows again 2018-07-16 14:18:50 +01:00
w0rp
2a081e81db Try and make the temporary file test fail less on Windows 2018-07-16 14:03:08 +01:00
w0rp
f235c4b3b9 Make NeoVim 0.3 tests fail a bit less 2018-07-16 13:46:44 +01:00
w0rp
8b707b4cdc Add a missing ToC entry for remark-lint 2018-07-16 13:34:30 +01:00
w0rp
b413e03b69 Merge pull request #1730 from watagashi/local-remark-lint-with-new-test
Support remark-lint installed locally with new test
2018-07-16 13:32:26 +01:00
Takashi WADA
dbf051e62b remark-lint without saving to disk 2018-07-16 18:33:22 +09:00
Takashi WADA
f369aa65a2 Support remark-lint installed locally 2018-07-16 18:33:21 +09:00
w0rp
fcd62342d5 Only temporarily replace TMPDIR if it's defined to be an empty string 2018-07-16 08:45:55 +01:00
w0rp
6e1a5d4189 Stop the no loclist clearing test from failing in NeoVim 0.3 2018-07-15 23:19:11 +01:00
w0rp
b2e2bbd042 unlet $TMPDIR too, where we can 2018-07-15 23:04:50 +01:00
w0rp
d9e12cb047 Re-run history tests, which can fail randomly 2018-07-15 21:20:56 +01:00
w0rp
d3ed1e52ba Fix #1687 - Parse highlights when verbose > 0 2018-07-15 21:01:00 +01:00
w0rp
72f002de94 Update the Python documentation 2018-07-15 19:26:45 +01:00
w0rp
8141ced0d0 Merge pull request #1724 from randrej/master
Pipenv virtualenv and project path detection
2018-07-15 19:22:48 +01:00
MTDL9
5df735555c Add kotlin language server support (#1725)
* Add kotlin languageserver linter definition
* Added kotlin languageserver references in docs, fix missing !! on other linters
* Added Vader tests for root path detection in Kotlin Language Server
2018-07-15 18:54:18 +01:00
w0rp
a42999a639 Massively reduce the amount of code needed for linter tests 2018-07-15 18:28:28 +01:00
Andrej Radovic
976c048e6e Detect Python proj. roots by Pipfile
"Pipfile" and "Pipfile.lock" files are also often located in Python module or
package directories and their presence is an okay heuristic for finding project
roots.
2018-07-14 13:26:50 +02:00
Andrej Radovic
870e75eb64 Added the default local virtualenv name for Pipenv.
Pipenv doesn't do local virtualenvs by default, it uses a special local
directory to store them all.

However, if you run Pipenv with the PIPENV_VENV_IN_PROJECT environment variable
set to 1, it creates the virtual environment in the root of the project, under
the name ".venv". This is why I've added this as a possible virtualenv dir
name.
2018-07-14 13:24:46 +02:00
w0rp
5155a35a80 Retry the smoke test on Windows too 2018-07-13 09:53:07 +01:00
w0rp
a782e06223 Handle linter callback functions being unknown or deleted 2018-07-13 09:47:26 +01:00
w0rp
6d6cd6663e Merge pull request #1720 from MTDL9/fix-error-response-string-data
Fix E712 error in ale#lsp#response#GetErrorMessage when receiving string primitives in the error.data field
2018-07-13 09:30:54 +01:00
MTDL9
021f59b3f4 Support strings in data field of error responses 2018-07-13 06:42:28 +02:00
w0rp
d22b9bf1a6 Try to start the NeoVim 0.3 tests more times 2018-07-12 14:02:38 +01:00
w0rp
ac0abc7c1f Fix #1716 - Replace tempdir() with a wrapper to preserve TMPDIR 2018-07-12 13:05:59 +01:00
w0rp
6ef31073dd Remove an unused variable 2018-07-12 09:21:28 +01:00
w0rp
0de3d24338 Try the smoke test a few times over in NeoVim 0.3, which fails randomly 2018-07-11 13:46:13 +01:00
w0rp
c9a6b04dc7 Update the sandbox test now that functions can be defined in the sandbox 2018-07-11 13:36:59 +01:00
w0rp
c1a2aa27f3 Merge pull request #1697 from ananace/add-puppet-languageserver
puppet: Add puppet-languageserver linter
2018-07-07 12:08:14 +01:00
w0rp
4999ad7e78 Add an AssertLinter command for tests 2018-07-06 22:46:36 +01:00
w0rp
344e0fec97 Fix tests on Windows 2018-07-06 20:52:47 +01:00
w0rp
6b20c906b3 Merge pull request #1703 from jamestthompson3/master
Add flow-language-server
2018-07-06 20:44:32 +01:00
jamestthompson3
eda3878a6c Add flow-language-server 2018-07-06 21:24:19 +03:00
w0rp
cb8643ce74 Remove an outdated note from the documentation 2018-07-06 08:20:48 +01:00
w0rp
1e9b36cdbf Fix tests on Windows 2018-07-06 08:15:54 +01:00
w0rp
0dd356aa52 Fix the broken tests 2018-07-06 01:00:30 +01:00
w0rp
d5b4f6f7e7 Fix command formatting for LSP linters 2018-07-05 21:48:47 +01:00
w0rp
da692b2e2d Support formatting escaped executable names into commands with %e 2018-07-05 20:56:31 +01:00
Alexander Olofsson
f78db619d4 Clean up root detection for puppet languageserver 2018-07-05 21:35:51 +02:00
Alexander Olofsson
9ca133feb0 Start of vader tests for puppet root detection 2018-07-05 21:25:03 +02:00
w0rp
f002c2c9f0 Merge pull request #1699 from ananace/add-vue-vls
vue: Add the Vue 'vls' Language Server (#1296)
2018-07-05 19:08:20 +01:00
Alexander Olofsson
fd42e8e935 vue: Add the vls language server linter 2018-07-05 14:04:20 +02:00
w0rp
d49daeb816 Merge pull request #1698 from dsifford/dsifford-isort-options
add options variable to isort
2018-07-05 09:25:16 +01:00
w0rp
b8591e1034 Fix the doctag alignment 2018-07-05 09:24:57 +01:00
Derek P Sifford
6dc69b2144 address code review issues 2018-07-04 21:16:57 -04:00
w0rp
14025c725f Optimise ale#Set slightly 2018-07-05 00:40:15 +01:00
w0rp
13a8f9c061 Optimise ale#Var a little 2018-07-04 23:54:14 +01:00
Derek P Sifford
3251d95a91 add options variable to isort 2018-07-04 13:01:16 -04:00
Alexander Olofsson
42ae06a288 puppet: Add puppet-languageserver linter 2018-07-04 15:08:25 +02:00
w0rp
9ddf1b6a05 Make the language option for LSP linters optional 2018-07-04 13:12:58 +01:00
w0rp
00a3859304 Fix how Docker images are pulled for developers 2018-07-04 09:36:37 +01:00
w0rp
ca7fa31c61 Close #1690 - Respect the preview setting for completeopt 2018-07-04 08:52:18 +01:00
w0rp
db85b931ec Remove deprecated code for the 2.0 release 2018-07-04 08:36:34 +01:00
w0rp
602e7fa00f #1524 Avoid loading cursor code until engine code has been loaded 2018-07-03 21:14:00 +01:00
w0rp
e10e0934ab Automatically retry running Vader tests so Travis CI will fail less 2018-07-03 20:50:56 +01:00
w0rp
1d8b326f62 Revert "Add a failing test to test re-running tests in AppVeyor"
This reverts commit 1565859eae.
2018-07-03 19:59:40 +01:00
w0rp
1565859eae Add a failing test to test re-running tests in AppVeyor 2018-07-03 19:56:37 +01:00
w0rp
7ce919e690 Re-run Windows tests when they fail at least once 2018-07-03 19:53:40 +01:00
w0rp
25a03dcea1 Use the latest Docker image for tests 2018-07-03 19:21:58 +01:00
w0rp
73d3030cf1 Merge pull request #1691 from dsifford/dsifford-python-pyre
add pyre lsp linter to python linters
2018-07-03 08:31:01 +01:00
w0rp
4987946175 Enable verbose test output, to figure out why NeoVim 0.3 randomly fails 2018-07-03 01:52:18 +01:00
w0rp
e46474ac0a Close #830 - Implement LSP connections via TCP sockets 2018-07-03 01:41:46 +01:00
w0rp
5aba55bb86 #830 Make the LSP socket code so far use the new socket API 2018-07-03 00:30:26 +01:00
w0rp
01c68fedd6 #830 Implement a socket wrapper API for use with LSP connections 2018-07-02 23:49:47 +01:00
Derek P Sifford
20ed48352f add dummy pyre binary and executable 2018-07-02 18:49:12 -04:00
Derek P Sifford
09a53fb363 add command_callback test 2018-07-02 18:23:42 -04:00
w0rp
b637b35ea8 Delete misplaced issue template files 2018-07-01 20:51:34 +01:00
w0rp
ce7d648c7c Update issue templates 2018-07-01 20:50:50 +01:00
w0rp
8ac43b1936 Update issue templates 2018-07-01 20:50:29 +01:00
w0rp
1c5c4a4c8e Split the issue template into multiple files 2018-07-01 20:41:52 +01:00
w0rp
059c5cfca4 Fix a false positive linting issue 2018-07-01 20:37:32 +01:00
Derek P Sifford
23394bf4a5 add pyre to table in doc/ale.txt 2018-07-01 15:14:13 -04:00
Derek P Sifford
ea6d720fec add pyre lsp linter to python linters 2018-07-01 14:59:49 -04:00
w0rp
2a78401066 Close #1685 - Move developer documentation to a help file 2018-07-01 19:56:24 +01:00
w0rp
d456ac19ca Fix a typo in the documentation 2018-07-01 19:56:24 +01:00
Govind KP
9d98e6db0c Added dartfmt fixer (#1683)
* Added dartfmt to Fixers
* Added dartfmt specific documentation
2018-07-01 13:55:41 +01:00
w0rp
06f61eeeb8 Respect ale_warn_about_trailing_whitespace for yamllint 2018-07-01 13:49:40 +01:00
w0rp
e5e14de9ae Capture error codes for yamlllint 2018-07-01 13:15:12 +01:00
w0rp
fee5107d43 Add tests for the yamllint handler 2018-07-01 12:50:46 +01:00
w0rp
cd8dd099d8 Switch back to running everything in one build, which is twice as fast 2018-07-01 12:22:29 +01:00
w0rp
857a07f36a Try running tests in parallel again 2018-07-01 12:18:42 +01:00
w0rp
26aa0cf358 Try splitting up the build into separate jobs 2018-07-01 12:07:54 +01:00
w0rp
3c5b6d1825 Run Vint and custom checks together with just --linters-only 2018-07-01 12:06:59 +01:00
w0rp
ccfed164bc Revert "Try adding Docker caching for Travis CI"
This reverts commit 1990efdba7.
2018-07-01 11:55:07 +01:00
w0rp
1487c8daa0 Make highlight tests pass more in Neovim 0.3 2018-07-01 11:52:02 +01:00
w0rp
1990efdba7 Try adding Docker caching for Travis CI 2018-07-01 11:38:07 +01:00
w0rp
b88bf6ecba Fix #1412 - Use --stdin-filename for newer reek versions 2018-07-01 10:21:59 +01:00
w0rp
ee81351a63 Move design goals to online documentation 2018-06-28 16:20:30 +01:00
w0rp
0b7a29d73b Disable non-Vader tests when targeting Vader tests 2018-06-28 14:00:12 +01:00
w0rp
fc041ae090 Make a test which can fail randomly synchronous instead 2018-06-28 13:59:52 +01:00
w0rp
d581fca35e Get tests running and passing with NeoVim 0.2 and 0.3 2018-06-28 13:53:49 +01:00
w0rp
8b407ed0e7 Try NeoVim 0.2.1, as 0.2.0 is way too slow 2018-06-28 12:07:22 +01:00
w0rp
51a14a4ba8 Update Dockerfile to test NeoVim 0.2 and 0.3, with a newer Vint version 2018-06-28 11:29:20 +01:00
Dan Aloni
d9e139ae23 Rust Cargo linter: Improve workspace support (#1679)
* Rust Cargo linter: Improve workspace support

When using Cargo workspaces [1], there is a 'Cargo.toml' directory in a
top level directory, listing all the crates in the project. If we are
currently editing one of the crates, 'cargo build' should execute in
that directory for that crate's separate `Cargo.toml`, otherwise Cargo
may spend more time possibly rebuilding the entire workspace, and maybe
failing on one of the other crates, instead of succeeding on the current.

[1] https://doc.rust-lang.org/book/second-edition/ch14-03-cargo-workspaces.html
2018-06-27 22:36:02 +01:00
w0rp
980aa35566 Merge pull request #1675 from nicopauss/master
Improve pyrex cython linter.
2018-06-27 21:39:36 +01:00
w0rp
b047271051 Merge pull request #1682 from fennerm/fix_prospector_e474
Fix prospector empty string error
2018-06-27 21:34:28 +01:00
Fenner Macrae
1ca2334846 Fix prospector empty string error
Prospector linter is raising error when no warnings are present in file
(#1680). Copied fix from #779.
2018-06-26 16:58:34 -07:00
Nicolas Pauss
4d935ff32a Add test_pyrex_cython_command_callback.vader
Add common callback tests to check if executable and options are well
configurable.
2018-06-25 22:14:43 +02:00
w0rp
66820ed452 Merge pull request #1641 from docwhat/pr/add-bash-lsp
sh: add bash-language-server linter
2018-06-25 17:03:15 +01:00
Nicolas Pauss
d05936a489 Handle cython warning with custom handle and remove '--warning-errors'.
Add a custom handler to support cython warning format.
Remove '--warning-errors' to keep previous behaviour.
2018-06-25 17:33:53 +02:00
Christian Höltje
49d995a521 sh: add bash-language-server linter 2018-06-25 11:21:53 -04:00
Nicolas Pauss
bedd30ee11 Improve pyrex cython linter.
Like many other linters, use variables for the executable and options
used by the linter.
By default, the linter now report every warnings as errors with
`--warning-errors`.
Also add include directory and set working directory to file directory.
2018-06-25 10:28:59 +02:00
w0rp
620951b6d3 Close #1453 #1172 - Add ale_linters_ignore for ignoring linter results 2018-06-24 21:16:45 +01:00
w0rp
755f1a4ccf Merge pull request #1673 from meain/fixer-tidy
Add fixer tidy for HTML
2018-06-23 22:51:30 +01:00
Abin Simon
17c1aefb5b Add fixer tidy for HTML
Add tests for tidy HTML fixer
2018-06-23 22:59:13 +05:30
w0rp
0f377251dd #1674 - Alias verilog_systemverilog to verilog by default 2018-06-23 18:20:39 +01:00
w0rp
935740cf93 Close #1590 - Automatically close previews for hover 2018-06-21 23:02:36 +01:00
w0rp
8bca073763 Fix #1661 - Do not use :edit when jumping inside of a file 2018-06-21 21:20:54 +01:00
w0rp
22533f2c1f Close #1522 - Show suggested fixers in :ALEInfo 2018-06-21 02:26:41 +01:00
w0rp
69eb2fe86a Close #1417 - Support wildcard filetypes for fixers 2018-06-21 01:21:11 +01:00
w0rp
34755eecdd #1398 document the detail key 2018-06-20 23:10:01 +01:00
w0rp
90dfe8e2a4 Merge pull request #1665 from ashemedai/master
Make CloudFormation linter work again with latest version
2018-06-20 22:51:55 +01:00
w0rp
11f303f853 Merge pull request #1618 from colbydehart/master
[new linter] Add mix linter for elixir
2018-06-20 22:47:56 +01:00
w0rp
b8be25adb4 Remove redundant spaces. 2018-06-20 22:44:56 +01:00
w0rp
d7efb13203 Try to fix the tests on Windows 2018-06-20 22:41:19 +01:00
Jeroen Ruigrok van der Werven
f14e3bb109 Update test to match update to linter
Also make lnum and col proper strings, since that is how it is matched
by the regexp, ALE handles the conversion to number.
2018-06-20 15:29:26 +02:00
Jeroen Ruigrok van der Werven
b7db095221 Make CloudFormation linter work again with latest
- Fix regexp
- Get rid of +0 since ALE does a str2nr() on lnum and col
- Put all matches in numerical order for easier maintenance
2018-06-20 14:59:51 +02:00
w0rp
0e1528ec34 Set up most of the autocmd events in one group 2018-06-20 13:35:57 +01:00
w0rp
9674132933 Remove CallWithCooldown functions to save on time 2018-06-20 08:34:42 +01:00
w0rp
82ea36576c Move ClockMilliseconds to events, so fewer files are loaded some times 2018-06-19 20:53:49 +01:00
w0rp
fd261d7a17 Move the initialization of augroups to then events file 2018-06-19 20:31:58 +01:00
w0rp
3a5887df2c Remove a redundant variable in tests 2018-06-19 20:12:49 +01:00
w0rp
e306e5cdb0 Avoid calling ALE cleanup code if ALE never tried to check a buffer 2018-06-19 20:12:33 +01:00
Alvin Chan
b8a1038a41 Set --parser option in Prettier's fixer (#1620)
* Set `--parser` option in Prettier's fixer
* Add expected `--parser` option to tests
* Disable Prettier `--parser` detection if file extension exists
* Manually default Prettier `--parser` to "babylon"
* Add `--parser` test for TypeScript
* Add tests for Prettier `--parser`
* Add JSON5 to the suggested fixer for Prettier
2018-06-18 22:40:57 +01:00
w0rp
43ce8d7610 Merge pull request #1653 from chaucerbao/feature/js-tsserver-support
Add TSServer support for JavaScript files
2018-06-17 22:14:12 +01:00
w0rp
24fe195311 Merge pull request #1650 from yasuhiroki/support-cfn-python-lint
Add linter for AWS CloudFormation template file
2018-06-17 20:39:07 +01:00
w0rp
49a5d657ee Tell people that there's no cost for LSP support if they don't need it 2018-06-15 10:24:09 +01:00
w0rp
bda89506ba Lazy-load LSP linters, and check b:changedtick before notifying about changes 2018-06-15 10:01:28 +01:00
Alvin Chan
bd4da116ee Add TSServer support for JavaScript files 2018-06-13 17:37:20 -07:00
yasuhiroki
eabf5d55d6 Add end_lnum and end_col in cfn_python_lint handler 2018-06-13 09:11:14 +09:00
P M
f1b72218c3 Add support for qmlfmt fixer (#1651)
* Add support for qmlfmt fixer
2018-06-12 19:38:16 +01:00
w0rp
5283faa511 Try speeding up Travis builds with a generic environment 2018-06-12 19:31:44 +01:00
w0rp
87455a2ef4 Add a test for handling missing detail keys for LSP completion 2018-06-12 19:31:08 +01:00
w0rp
d9746a4572 Merge pull request #1638 from ssiegel/use-vanilla-rscript
Use --vanilla switch for Rscript
2018-06-12 19:01:45 +01:00
yasuhiroki
ae25d71fa8 Add linter for AWS CloudFormation template file 2018-06-12 15:11:53 +09:00
w0rp
22a9dcd03e Merge pull request #1640 from docwhat/pr/lsp-handle-missing-details
lsp: handle missing "detail" key
2018-06-11 21:33:49 +01:00
Christian Höltje
fd7456fce0 lsp: handle missing "detail" key 2018-06-07 13:43:08 -04:00
Colby Dehart
864818a385 WIP cd to project path 2018-06-07 11:47:57 -05:00
Colby Dehart
f0f569f14a added test for command callback 2018-06-07 10:09:08 -05:00
Stefan Siegel
42192c1593 Adapt test to also use Rscript --vanilla 2018-06-07 15:56:14 +02:00
Stefan Siegel
252097bee0 Use --vanilla switch for Rscript
This prevents possibly bad interference with the user's R environment,
e.g. by an auto-activating packrat.
2018-06-07 15:06:09 +02:00
w0rp
10a9177b6b Merge pull request #1636 from zed0/master
#1635 - Use the project base rather than its parent for cquery
2018-06-07 07:23:44 +01:00
Ben Falconer
d1be72f438 #1635 - Use the project base rather than its parent for cquery 2018-06-07 00:12:38 +01:00
w0rp
67753de531 Merge pull request #1632 from zed0/master
Add the cquery LSP
2018-06-06 21:31:36 +01:00
Ben Falconer
20db9ab719 Add the cquery LSP #1475 #1594 2018-06-06 17:58:47 +01:00
Ben Falconer
641c0c797b Pass rootUri to LSPs in addition to rootPath 2018-06-06 17:53:36 +01:00
Ben Falconer
1a4b08539b Allow initialization options to be passed to language servers 2018-06-06 17:53:36 +01:00
w0rp
c49ea1a5e3 Merge pull request #1629 from elebow/pipenv-executable-python-tools
Allow all Python linter executables to be set to `pipenv`.
2018-06-05 08:32:45 +01:00
w0rp
3a6a92283e Merge pull request #1628 from rmorabia/patch-1
Readme Typo: TypeSript -> TypeScript
2018-06-05 07:12:53 +01:00
Eddie Lebow
ca88e67af0 Allow all Python linter executables to be set to pipenv.
It appends ` run {linter_name}`, analogously to the Ruby linters when
the executable is set to `bundle`
2018-06-05 00:33:26 -04:00
Radhika Morabia
b3da52d38d Typo: TypeSript -> TypeScript 2018-06-04 20:22:53 -07:00
w0rp
5addd3abef Merge pull request #1627 from budziq/master
Added linting of tests and examples for rust cargo linter
2018-06-04 13:33:08 +01:00
Michał Budzyński
e272207114 Allow linting rust tests and examples with cargo 2018-06-04 11:08:49 +02:00
w0rp
4ec661b305 Merge pull request #1623 from zoonfafer/scalafmt-fixer
Add 'scalafmt' fixer for Scala files
2018-06-03 19:12:09 +01:00
Jeffrey Lau
03d14324ea doc/scalafmt: Remove wrong bits on initial "enabledness" of fixers 2018-06-04 02:05:19 +08:00
w0rp
a8bbf49a31 Merge pull request #1625 from elebow/flake8-pipenv-run
Allow flake8 executable to be set to `pipenv`.
2018-06-03 18:52:15 +01:00
w0rp
0db12702f3 Respect warn_about_trailing_whitespace for gitlint 2018-06-03 10:46:39 +01:00
Eddie Lebow
dd642b117c Allow flake8 executable to be set to pipenv.
It appends ` run flake8`, analogously to the Ruby tools when the
executable is set to `bundle`
2018-06-02 21:49:12 -04:00
Jeffrey Lau
77d0ac58ed Add 'scalafmt' fixer for Scala files
closes https://github.com/w0rp/ale/issues/1299
2018-06-03 04:40:52 +08:00
Colby Dehart
81739be0a0 handled temp file and env variable correctly; added tests 2018-06-02 13:03:56 -04:00
w0rp
786fc0a62f Merge pull request #1617 from luitzifa/master
Fix for puppet version >= 5.4.0
2018-06-02 12:36:24 +01:00
w0rp
014d27c882 #1621 - Tolerate SetOptions calls when ALE is loaded in a weird way 2018-06-01 21:03:22 +01:00
Colby Dehart
d760558007 added mix build path env var to the mix compile 2018-06-01 11:56:47 -04:00
w0rp
fae9167083 Fix LSP message handling when the handler doesn't get strings, somehow 2018-06-01 14:49:13 +01:00
w0rp
201f8519d9 Update the gitcommit documentation with more examples 2018-06-01 14:22:23 +01:00
w0rp
6a7e00d9ac Handle definition responses without files 2018-06-01 14:15:32 +01:00
w0rp
10e1545630 Mention g:ale_linters_explicit in the README 2018-05-30 21:15:00 +01:00
w0rp
970b62756e Fix #1610 - Encourage the use of ftplugin files more 2018-05-30 21:10:37 +01:00
w0rp
db64571b4c Fix #1523 - Document completion_filter 2018-05-30 20:44:09 +01:00
w0rp
c8b77fd4b8 Fix a typo in the LSP linter documentation 2018-05-30 20:23:57 +01:00
w0rp
bd92616e2a Fix #1219 - Mention FindProjectRoot behavior for Python in the documentation 2018-05-30 20:09:33 +01:00
w0rp
f95bc00bd6 Clean up grammar for hover documentation a little 2018-05-30 19:44:01 +01:00
w0rp
106d439f56 Merge pull request #1589 from gagbo/balloon_doc
Documentation : document the mouseover magic
2018-05-30 19:31:41 +01:00
Magnus Ottenklinger
801c12a881 Add mix linter for elixir 2018-05-30 10:38:14 -04:00
Daniel Kraemer
3a1d21e5dd Fix for puppet version 5.4.0
i don't know of any version lower than 5.4.0
2018-05-29 08:55:08 +02:00
w0rp
3014d85325 Encourage people to use NeoVim 0.2.0 or above in the README. 2018-05-28 20:20:05 +01:00
w0rp
f84411f3f1 Remove a test for a deprecated variable that seems to trip up Travis 2018-05-28 20:08:27 +01:00
w0rp
191967cfee #1587 - Add deprecation warnings for old linter options 2018-05-28 19:52:27 +01:00
w0rp
c0a279f967 Indicate things to be removed in version 2.0 2018-05-28 19:39:49 +01:00
w0rp
f2837b5802 #1524 - Define global variables where they are needed 2018-05-28 19:19:20 +01:00
w0rp
cae194d1bd #1524 Replace ale#Set with let in the main file 2018-05-28 17:57:58 +01:00
w0rp
18509195f5 #1524 Do not try to check buffers with empty filetypes 2018-05-28 17:38:14 +01:00
w0rp
ce89d93e1c Remove a now defunct test 2018-05-28 17:11:21 +01:00
w0rp
e49e7d52bc #1524 Remove the plugin conflict warnings 2018-05-28 16:47:32 +01:00
w0rp
8a659b7cc6 Fix #1566 - Add g:ale_python_flake8_change_directory 2018-05-28 16:34:54 +01:00
w0rp
d9717147bf Close #1559 - Report errors from LSP servers in :ALEInfo 2018-05-28 16:24:15 +01:00
w0rp
3c55cb087d Close #1553 - Support some tsserver completion for strings 2018-05-28 15:16:15 +01:00
w0rp
ef1ec5341f Fix #1568 - Filter LSP completion results with the prefixes 2018-05-28 14:45:07 +01:00
w0rp
cd0dc0a227 Fix #1611 - Fix perlcritic escaping on Windows 2018-05-28 12:51:06 +01:00
w0rp
eaf35bc611 Merge pull request #1562 from haginaga/support_phan_client
Add support phan_client for php
2018-05-28 12:41:13 +01:00
haginaga
ae8dd39760 Fix an incorrect argument of ale#Var in ale_linters#php#phan#Handle 2018-05-27 22:45:43 +09:00
haginaga
feab494286 Fix code style issues and refactor to use ale#Var 2018-05-27 22:21:02 +09:00
w0rp
29a9c9a255 Merge pull request #1564 from aliou/ad-alefix-fixer-cmdline-completion
Use the command line to filter ALEFix's command line completion.
2018-05-26 21:34:29 +01:00
w0rp
6fce8ddc5a #1600 Alias vimwiki to markdown 2018-05-26 11:41:52 +01:00
w0rp
b67c9a83b2 Merge pull request #1574 from hecrj/elm-0.19
Support Elm 0.19
2018-05-26 09:19:30 +01:00
Héctor Ramón Jiménez
7fd0fd514b Fix multiline indentation 2018-05-25 22:22:47 +02:00
w0rp
51a063be31 Move the sasslint handlers to one location 2018-05-25 20:59:35 +01:00
w0rp
8d49da1f1c Merge pull request #1573 from zed0/master
Run sass-lint from the target's directory
2018-05-25 20:48:16 +01:00
w0rp
d0f579c5fc Merge pull request #1575 from tsuburin/enable_dmd_warnings
Enable warnings of dmd command
2018-05-25 19:38:40 +01:00
w0rp
d8d13ef264 Do not echo messages to the echo line for mouse movements unless the user says so 2018-05-17 16:23:29 +01:00
Gerry Agbobada
1258b032e6 Documentation : Add mention of mouseover in README 2018-05-17 11:06:37 +02:00
Gerry Agbobada
e5ad9076b3 Documentation : document the mouseover magic
This first try is focused on fitting the information in existing
paragraphs
2018-05-17 10:57:04 +02:00
Gerry Agbobada
3a3c244723 TUI / GUI tooltip with content from ALEHover (#1556)
* Guard the ballooneval settings

* Mark main objectives to do to get nice Hover

* Make tweaks to make the tooltip work - See " XXX: comments

* Guard balloon_show call

* Use return instead of finish for functions

* ale#hover#show : Add optional arguments to specify arbtirary position

This change is requested to be able to call the function with mouse
position to enable hover information in vim's balloon

* ale#ballon#Disable : Remove feature guards

* ale#balloon : Show 'ALEHover' output on balloon if no diagnostic found

* ale#hover#HandleLSPResponse : remove the check for cursor position

This check prevented the 'ALEHover in balloon' feature, since mouse
position is almost never cursor position.

* ale#balloon#MessageForPos : Change the return of balloonexpr

balloonexpr evaluation now works even without balloon_show for basic
diagnostics, leaving the balloon_show call to ale#hover#Show, which can
then feature guard the call to avoid errors

* ale#hover#Response : Feature guard balloon_show calls

* ale#hover : always display 'Hover' information in messages

Also add a small comment to warn readers the different outputs the
ale#hover#Show will write to

* {LSP,TS}Response : use only variables from the Response

It is clearer that we only rely on l:options to get the relevant data to
build the LSP Response string

* hover#ShowDetails : fix an issue where not having focus broke balloons

The issue was caused by not using a buffer-specific version of getline()
to cap the value of the column sent in the message to LSP. Therefore a
cursor on column 10 in an inactive window could send a message with
column=0, if the active window had a buffer with too few lines

* {LSP,TS}Response : Remove redundant checks for balloon_show call

With the upcoming change in ale_set_balloons default value (see Pull
Request w0rp/ale#1565), this check will be useless

* balloonexpr? : Add a flag to separate hover#Show() calls

The goal of this flag is to make `:ALEHover` calls not pop a balloon
under the cursor, since the user has probably no interest in their
cursor while typing the command

The flag is a default argument which is overridden only in ballonexpr
call of ale#hover#Show, and stays set in the hover_map until the
callback for the LSP handles it.

There are no automated tests for this feature right now, and the nature
of the addition (one optional argument in the API) should make it
transparent to existing tests.

Since the differentiation is now possible, the check for moved cursor
has been put back in ale#hover#HandleLSPResponse

* ale#hover#hover_map : Protect accesses to hover_map

Using get() is safer than trying to access directly with ., as the tests
show.

* Raise timeout to try to get Appveyor happy

* Review : Fix comments

* Review : pass the optional argument 'called_from_balloonexpr' in a Dict

This optional dictionary has documentation just before the function
using it, ale#hover#Show, and allows easier extension in the future.
2018-05-16 21:23:48 +01:00
w0rp
c1da7866d0 Fix #1584 - Make duplicate msgfmt messages easier to navigate 2018-05-15 18:01:49 +01:00
Héctor Ramón Jiménez
b071f1a795 Make Elm linter backwards compatible with Elm 0.18 2018-05-15 17:06:52 +02:00
Ben Falconer
8a1099bb59 Run sass-lint from the target's directory 2018-05-15 14:36:31 +01:00
w0rp
c23acb00e2 Merge pull request #1565 from rhysd/improve-balloon-support-detection
Improve g:ale_set_balloons default value
2018-05-15 13:16:33 +01:00
w0rp
4a76cb0dd5 Update the issue template to tell you where to find command callback tests 2018-05-15 13:14:28 +01:00
Héctor Ramón Jiménez
115952fae3 Show Elm.Kernel as location when report.path is null in a general problem 2018-05-12 20:27:33 +02:00
tsuburin
0c472c2244 Added "-wi" to the dmd command to endable warning messages. 2018-05-12 15:03:35 +09:00
Héctor Ramón Jiménez
c3f61c391b Use message as text instead of title
`title` does not contain much information which forces to use :ALEDetail most of the time
2018-05-12 04:16:14 +02:00
Héctor Ramón Jiménez
089a07c6a6 Update ale-elm doc 2018-05-11 20:14:00 +02:00
Héctor Ramón Jiménez
2f40da76e6 Test global problems and imported module errors 2018-05-11 20:07:28 +02:00
Héctor Ramón Jiménez
d40f447931 Upgrade Elm linter to support 0.19 error reports 2018-05-11 19:15:40 +02:00
rhysd
168569b8b0 Fix condition to test a balloon feature 2018-05-11 19:07:16 +09:00
rhysd
57f0454a55 Improve g:ale_set_balloons default value 2018-05-11 17:46:40 +09:00
Aliou Diallo
199fcd48ac Use the command line to filter ALEFix's command line completion. 2018-05-10 16:15:08 +02:00
w0rp
38c66d33fe Merge pull request #1563 from IngoHeimbach/fix/gcc-fatal-error
Fatal GCC errors are handled as errors not warnings
2018-05-09 09:14:38 +01:00
Ingo Heimbach
5fe74c7dc8 Fatal GCC errors are handled as errors not warnings 2018-05-09 09:01:41 +02:00
w0rp
f7ecf3f47a Merge pull request #1555 from BobuSumisu/nasm-linter
Added NASM assembly linter
2018-05-08 19:02:17 +01:00
w0rp
7541a40859 #852 Update the REAME to mention %...code...% 2018-05-08 18:32:18 +01:00
w0rp
9023987fe0 Merge pull request #1552 from a-marquez/master
Add XO fixer
2018-05-08 17:53:12 +01:00
haginaga
230656e678 Fix to follow the Google VimScript Style Guide 2018-05-08 23:47:35 +09:00
haginaga
ffa6fd4bed Fix to follow the Google VimScript Style Guide 2018-05-08 23:35:14 +09:00
haginaga
eb3ab87569 Modify to be able to use phan_client without g:ale_php_phan_executable 2018-05-08 23:25:11 +09:00
haginaga
8cee39c614 (close w0rp/ale#1561) Add support phan_client for php 2018-05-08 14:19:47 +09:00
Øyvind Ingvaldsen
3bc07b482b Fixed handle test for Windows
Needed to add correct separator to test data.
2018-05-04 23:04:45 +02:00
Øyvind Ingvaldsen
df8c45ed55 smallfix 2018-05-04 22:33:08 +02:00
Øyvind Ingvaldsen
27144eee8c Added NASM linter
Added NASM linter (for nasm filetype).
2018-05-04 21:44:32 +02:00
w0rp
726a768464 Merge pull request #1550 from deivid-rodriguez/bundle_option_for_mdl
Add bundle option to mdl
2018-05-03 22:20:39 +01:00
w0rp
7c0219efcc #1503 Call setline() after d, in case there are folds at the end of the file 2018-05-03 22:14:29 +01:00
w0rp
6495fac820 Tell people to install prettier-eslint-cli instead 2018-05-03 19:48:15 +01:00
w0rp
e2c33f2f6c Add g:ale_completion_excluded_words for completion filtering 2018-05-03 11:17:41 +01:00
a-marquez
14dc05f36b Add XO fixer to fixers registry 2018-05-02 18:26:46 -04:00
a-marquez
12d79894a4 Add fixer definition for XO 2018-05-02 18:26:13 -04:00
w0rp
e59cd6b7c0 Make the features ALE supports clearer in the README 2018-05-02 13:38:52 +01:00
David Rodríguez
f11637b62b Add bundle option to mdl 2018-05-01 19:49:45 -03:00
Bjorn Neergaard
ae85695543 Update run-tests to make use of /usr/bin/env (#1548)
* Update run-tests to make use of /usr/bin/env

* Update run-vint

* Update run-vader-tests

* Update custom-linting-rules

* Update custom-checks

* Update check-toc

* Update check-supported-tools-tables
2018-05-01 13:18:03 +01:00
w0rp
3331f6c8f4 Merge pull request #1543 from vancluever/f-add-JobStartedAutoCmd
Add ALEJobStarted User autocommand event
2018-04-29 20:16:59 +01:00
Chris Marchesi
b81bc8d481 A couple of more doc fixes
* Update section 5.viii in the README with ALEJobStarted and re-format
the example.
* Add an extra line after documentation update to ensure consistency
with the rest of the doc.
2018-04-28 15:10:59 -07:00
Chris Marchesi
11780e1d3d Add some tests for IsCheckingBuffer
Adding a couple of tests to demonstrate how IsCheckingBuffer behaves
during specific autocommand hooks:

* At ALELintPre, no linters have actually executed yet, hence
IsCheckingBuffer should be returning false.
* ALEJobStarted, fires as early as reasonably possible after a job has
successfully started, and hence hooking into IsCheckingBuffer here
should return true.

This distinction is important when using these two events during things
like statusline refreshes, namely for "linter running" indicators.
2018-04-28 14:50:20 -07:00
Chris Marchesi
129eb96561 Fix tests by setting proper link tag in doc for ALEJobStarted 2018-04-27 22:32:21 -07:00
Chris Marchesi
9da015f74f Add test for ALEJobStarted 2018-04-27 22:00:50 -07:00
Chris Marchesi
b7996803c9 Add ALEJobStarted User autocommand event
The ALELintPre and ALELintPost autocommand events are currently being
used by lightline-ale to refresh the status line and check the linter
status for a current buffer. One of the plugin's checks looks to see if
linters are currently running, via ale#engine#IsCheckingBuffer(). This
currently only works partially in certain situations. In my particular
case, working with Go files, this only seems to function properly when a
file is initially opened. Saving a file does not correctly update the
status.

This seems to be due to the fact that ALELintPre actually runs before
any jobs are carried out, making it plausible that hooking into
ALELintPre for the purpose of checking to see if there are any currently
running linters for a buffer is unreliable as it would be prone to
pretty obvious race conditions.

This adds a new User autocommand, ALEJobStarted, that gets fired at the
start of every new job that is successfully run. This allows a better
point to hook into checking the linter status of a buffer using
ale#engine#IsCheckingBuffer() by ensuring that at least one job has
started by the time IsCheckingBuffer is run.
2018-04-27 15:40:02 -07:00
w0rp
6ab3fdc4d0 Close #1521 - Allow the language to be set with simple strings for LSP linters 2018-04-27 22:52:11 +01:00
w0rp
d1d705cc84 Merge pull request #1533 from inducer/master
flake8: Move to the buffer's directory before running flake8 command
2018-04-27 21:39:04 +01:00
w0rp
4a63a90d0d Merge pull request #1540 from maximbaz/fix-docs-ale-go
Fix typos in "lint package" options in docs/ale-go
2018-04-27 19:23:34 +01:00
Maxim Baz
04b54f5c17 Fix typos in "lint package" options in docs/ale-go 2018-04-27 19:49:33 +02:00
Jonny Ramsden
cf174d3b9b set marks to add to jump list 2018-04-27 17:18:18 +01:00
Andreas Kloeckner
603e61ad71 flake8: Move to the buffer's directory before running flake8 command 2018-04-26 18:53:44 -05:00
w0rp
d8d09c2048 Close #1428 Implement LSP hover-like functionality for tsserver too 2018-04-26 21:54:11 +01:00
w0rp
e6fe2d86b8 Add an American English tag for behaviour too 2018-04-24 21:56:34 +01:00
w0rp
41c0b837ae #1278 Allow linters to be defined pretty much anywhere 2018-04-24 21:48:33 +01:00
w0rp
ebbf7d0353 #1428 Show multiline hover messages, and document the new command 2018-04-24 21:03:06 +01:00
w0rp
93a046a78f #1236 Explain how to use Vim jumps 2018-04-23 21:18:58 +01:00
w0rp
7d6a303592 Move autocmd commands out of the toggle file, to improve load times 2018-04-23 10:16:48 +01:00
w0rp
ef130c4428 #1428 Start implementing LSP hover support 2018-04-22 22:00:25 +01:00
w0rp
0b3ee11546 Fix a typo 2018-04-22 20:32:39 +01:00
w0rp
286abd12d3 Add support for finding references using LSP servers or tsserver 2018-04-22 19:49:30 +01:00
w0rp
5a365e7926 Merge pull request #1517 from kfly8/perltidy-fixer
Added perltidy fixer
2018-04-22 18:02:19 +01:00
w0rp
87ad4dfbe7 Implement a preview window for selecting locations to open 2018-04-22 15:53:01 +01:00
w0rp
d8a673515a Close #1162 - Implement completion support with LSP servers 2018-04-22 12:28:19 +01:00
Kenta, Kobayashi
498be478be add perltidy fixer 2018-04-21 22:09:38 +09:00
w0rp
20241c87ef Merge pull request #1511 from elebow/add-cucumber-checker
Add `cucumber` checker for Cucumber files
2018-04-21 09:23:07 +01:00
Eddie Lebow
1e6651e0a0 Add cucumber checker for cucumber files
For now, it only detects undefined steps. The nearest `features` dir
above the buffer file is loaded, so step definitions should be found
correctly.

Tested only with Cucumber for Ruby, but it should work for any cucumber
that follows a substantially similar directory structure.
2018-04-20 22:54:29 -04:00
w0rp
63bbb38c0c Merge pull request #1510 from fenuks/issue-1471
Support passing fixers names to ALEFix as arguments
2018-04-20 21:38:11 +01:00
fenuks
6f6d35c0bd Add information that ALEFix can now accept arguments 2018-04-18 02:28:17 +02:00
fenuks
f16384f323 Add tests for ALEFix commandline parameters 2018-04-18 02:13:24 +02:00
fenuks
a591b191db Make ALEFix support arguments 2018-04-18 02:13:24 +02:00
w0rp
f9ba3d924f Fix #1507 - Add an option for disabling switching directories for pylint 2018-04-17 13:30:30 +01:00
w0rp
fb720251bf Close #1504 - Add an option for removing --respect-pragma for flow 2018-04-15 12:25:15 +01:00
w0rp
60917c9005 Revert "#1277 Try to get eslint_d to run the right version of eslint"
This reverts commit 56c7957a75.
2018-04-13 21:02:56 +01:00
w0rp
f5f3424fcf #1501 Pass the buffer number from BufWritePost on to ale#fix#Fix 2018-04-13 20:59:05 +01:00
w0rp
56c7957a75 #1277 Try to get eslint_d to run the right version of eslint 2018-04-13 20:49:03 +01:00
w0rp
a0aa9aa9b7 Fix #1495 - Fall back to /bin/sh when shell=pwsh 2018-04-12 21:01:35 +01:00
w0rp
0cd8e8630b #1497 Tolerate important ALE variables being undefined for some reason when viewing buffers like git commits 2018-04-12 20:31:45 +01:00
w0rp
3401a4e8ea Merge pull request #1498 from Eyenseo/master
Fix rust rls linter argument
2018-04-12 20:01:00 +01:00
eyenseo
6c93cded64 Fix rust rls linter toolchain argument
This removes the argument if the specified toolchain is empty.
As far as I can tell there is no +nighly (or similar) option [1] leading to
the termination of the server. But since people needed this option and
have yet to complain about it it stays the default for now.

[1] https://github.com/rust-lang-nursery/rls/blob/master/src/main.rs#L87
2018-04-12 20:42:38 +02:00
w0rp
f064ba48f5 Close #1494 - Prefer displaying higher severity problems for cursor messages, balloons, and highlights 2018-04-10 21:05:22 +01:00
w0rp
3f0e1cd05d Fix #1492 - Make pylint error parsing work on Windows 2018-04-10 15:18:16 +01:00
w0rp
9d00695249 #1486 - Default exit_code to 1, if it isn't set. 2018-04-10 09:57:21 +01:00
w0rp
da9a005c60 Fix #1490 - Rename the g++ linter to gcc, and add an alias for the old name 2018-04-10 09:31:22 +01:00
w0rp
697fd4ac75 Merge pull request #1488 from languitar/pmd
Add support for the java PMD linter
2018-04-09 19:22:14 +01:00
w0rp
719b790574 Close #542 - Add an option for disabling running locally installed executables by default 2018-04-09 19:11:20 +01:00
w0rp
3a47413286 Merge pull request #1487 from rhysd/fix-1472
pylint: Move to the buffer's directory before running pylint command
2018-04-09 18:14:42 +01:00
Johannes Wienke
49c4bfde14 Add support for the java PMD linter 2018-04-09 17:48:00 +02:00
rhysd
4903b966a7 pylint: Move to the buffer's directory before running pylint command (Fix #1472) 2018-04-09 16:43:10 +09:00
w0rp
2f2dcb8444 Close #1476 - Make the javac executable configurable 2018-04-08 20:35:06 +01:00
w0rp
7cf3ddf6c4 Close #1439 - Add an :ALEInfoToFile command 2018-04-08 19:04:07 +01:00
w0rp
1123669839 Close #1315 - Make the vint executable configurable 2018-04-08 18:10:00 +01:00
aspidiets
f9ae58849a Fix #1424 - Make the brittany fixer work 2018-04-08 17:38:43 +01:00
w0rp
91d7e81ebc Fix #605 - Support vcol: 1 for multi-byte character positions 2018-04-08 17:17:46 +01:00
Adriaan Zonnenberg
121e806423 Add g:ale_php_cs_fixer_options variable (#1477)
* Add g:ale_php_cs_fixer_options variable

* Fix test
2018-04-07 23:53:03 +02:00
w0rp
bb775e4e22 Fix #1479 - Respect g:hdevtools_options for hdevtools 2018-04-07 22:50:31 +01:00
Jack Evans
c5d3af04fc Added support for Python black fixer (#1451) 2018-04-06 11:08:25 +02:00
P M
85a2a00826 Integration of qmlfmt linting tool (#1462)
* Add first qmlfmt support

* Add GetCommand() function

- pass --error/-e option

* Add handle unittest

- fix pattern regex
- store col as integer

* Update docs

* Add command callback unit test
2018-04-05 21:09:41 +02:00
Nils Leuzinger
912f632bf5 Add fsc linter for Scala (#1452)
* Add fsc as a Scala linter

* Pull reused code into `autoload/ale/` directory

* Include fsc into the README

* Add unit test for testing the scala handler

* Add unit test for scala's fsc linter

* Rename scala unit tests for clarity

* Fix typo in README

* Fix typos in doc/ale.txt

* Fix author headline

* Put methods for fsc commands back into fsc.vim

* Move command_callback tests to correct location

* Rewrite handler test so it actually tests handler

* Clarify description of test in test_scala_handler
2018-04-05 21:04:11 +02:00
w0rp
a2acdecbc2 Merge pull request #1455 from Christian-Gibbons/flawfinder_cpp_severity_fix
Fix Flawfinder for C++
2018-04-05 15:00:08 +01:00
w0rp
8baab691e9 Merge pull request #1429 from stewy33/master
Add support for Mercury language using mmc as a linter.
2018-04-05 12:34:45 +01:00
christian-gibbons
f1d56a343e Flawfinder for C++:
Fix missing variable causing flawfinder to fail for c++
2018-03-28 14:09:03 +00:00
w0rp
95ec9bb780 #1167 Use the make -n parsing for C++ compilers, and document the new option 2018-03-27 19:24:22 +01:00
w0rp
018831d601 Merge pull request #1434 from roel0/master
Automatically determine build flags by parsing `make -n` output #1167
2018-03-27 09:55:43 +01:00
roel0
dfb3e194d7 Extended unit tests + simplified parsing algoritme #1167 2018-03-27 10:18:24 +02:00
w0rp
27c5faeafe Use the --stdin-filename option for textlint, so configuration files will be discovered better 2018-03-26 10:35:10 +01:00
w0rp
8e9ae59e5e Fix paths for running tests on Windows 2018-03-26 09:58:48 +01:00
w0rp
8b34a4bf6b Fix config and executable issues with the textlint linter 2018-03-26 09:55:18 +01:00
w0rp
45c5fe7f43 Fix a typo in the documentation 2018-03-26 09:19:58 +01:00
Stewy Slocum
8d4852a127 add documentation on mmc linter 2018-03-25 13:43:51 -04:00
Stewy Slocum
84952918cc add support for mercury language using mmc as linter 2018-03-25 13:33:24 -04:00
w0rp
164c711b3d Fix #1404 - Do not show balloons when g:ale_set_balloons is 0. Add b:ale_set_balloons 2018-03-25 12:57:08 +01:00
P M
107516c757 Add basic qmllint support (#1419)
* Add basic qmllint support

* Use temp file, remove superfluous error code key, adjust author info

* Add qmllint handler parse test
2018-03-25 11:55:59 +01:00
w0rp
d14558da32 Merge pull request #1448 from yasuhiroki/support-textlint-plaintext
Support textlint for plaintext
2018-03-24 13:19:38 +00:00
yasuhiroki
562862073f Update document for textlint 2018-03-24 16:04:47 +09:00
yasuhiroki
1d33d2cacf Support textlint for plaintext without textlintrc 2018-03-24 14:40:44 +09:00
w0rp
dbf530e87f Fix #1373 - Fix a bug with Fish errors not being handled on Linux 2018-03-23 12:17:54 +00:00
w0rp
ec5750f57b Merge pull request #1441 from adrigzr/bugfix-1207-remark-lint-ranges
Handle ranges for the remark linter #1207
2018-03-22 15:20:25 +00:00
w0rp
c525f49f09 Fit documentation to the column size in ale-cs.txt 2018-03-22 15:18:41 +00:00
w0rp
722607b866 Merge pull request #1442 from Crysikrend/master
Added the word 'find' as it was missing in docs/ale-cs.txt
2018-03-22 15:17:56 +00:00
Ashley Smith
7a87520ba5 Added the word 'find' as it was missing in docs/ale-cs.txt 2018-03-22 14:20:45 +00:00
Adrián González Rus
87217ae347 fix: Handle ranges for the remark linter #1207 2018-03-22 11:47:16 +01:00
roel0
cf62ef7b07 Fixed windows compatibility unit tests #1167 2018-03-21 20:56:29 +01:00
roel0
69237a7e57 Added additional unit tests + adapted review comments #1167 2018-03-21 20:44:35 +01:00
w0rp
0678eb1f45 Merge pull request #1409 from x1024/patch-1
Add new FAQ item for g:ale_list_window_size
2018-03-21 17:41:55 +00:00
w0rp
b769b67b2f Update the table of content for the new FAQ entry. 2018-03-21 17:41:24 +00:00
w0rp
ca2472a460 Merge pull request #1438 from lepistone/doc-timers
doc: fix misspelled feature name
2018-03-21 17:35:34 +00:00
Leonardo Pistone
f0325d7322 doc: fix misspelled feature name 2018-03-21 17:02:43 +01:00
w0rp
c0279de661 Merge pull request #1436 from bmihelac/fix-1435-msgfmt-output-stdout
fix: po msgfmt output to stdout (#1435)
2018-03-21 10:56:31 +00:00
Bojan Mihelac
763fcb8512 fix: po msgfmt output to stdout (#1435) 2018-03-21 09:21:20 +01:00
roel0
7593e20377 Fix failing unit tests for windows 2018-03-21 07:37:32 +01:00
roel0
18d0aeb1a0 * Shell commands should by called async with the help of a command chain
* The makefile parser unit test should only test the cflag parser itself
#1167
2018-03-20 21:49:31 +01:00
w0rp
64c95d4881 Merge remote-tracking branch 'tylucaskelley/master' 2018-03-20 20:27:50 +00:00
w0rp
57a93cbc04 Merge pull request #1433 from benpaxton-hf/lint-whole-package
Lint whole package for gosimple and gotype
2018-03-20 20:17:43 +00:00
Ben Paxton
6452c5e2f0 Use govet handler for gosimple, gotype, staticcheck 2018-03-20 14:19:48 +00:00
roel0
38953c4626 Clang parser shoud fallback on old method if parsing fails #1167 2018-03-20 12:37:53 +01:00
roel0
3fb7efa2c6 Added some unit tests and fixed some linting errors for automatic makefile parsing in C #1167 2018-03-20 11:56:46 +01:00
roel0
c47b5fd4b8 Automatically determine build flags by parsing 'make -n' output #1167 2018-03-19 21:56:18 +01:00
Ben Paxton
0cb3e36554 Lint whole package for gosimple and gotype
Fixes #936
2018-03-19 15:52:42 +00:00
w0rp
43e8f47e6e #1431 Normalize paths when checking for temporary paths on Windows 2018-03-18 20:39:50 +00:00
INOUE Yosuke
68b9399d4c handle multibyte string when linting text with redpen (#1416)
* handle multibyte string when linting text with redpen

* fix error when no string is provided, fix test's expect value

* remove ambiguious `==` operator
2018-03-18 18:12:47 +00:00
w0rp
434f22e44a Merge pull request #1415 from fohte/fixer-rufo
Add rufo fixer for Ruby files
2018-03-18 17:42:07 +00:00
w0rp
440502dc93 Clean up the mix format command and tests 2018-03-18 17:40:34 +00:00
w0rp
92612a9eab Merge pull request #1410 from fribmendes/frm/mix_format_options
Allow passing options to mix_format
2018-03-18 17:36:33 +00:00
Hideaki Tokida
1b1e53ef61 add textlint support for markdown (#1383) 2018-03-18 17:28:26 +00:00
w0rp
c112ee9dff Fix #1392 - Only check files on disk for gotype 2018-03-18 17:16:13 +00:00
w0rp
bdd8d2399f #416 Escape the tslint command 2018-03-18 16:48:28 +00:00
w0rp
b08fdd16b8 Merge pull request #1248 from Carpetsmoker/autocmd-fixer
Add ALEFixPre and ALEFixPost events
2018-03-18 16:37:16 +00:00
Martin Tournoij
302f69e933 Add ALEFixPre and ALEFixPost events
To run autocmd before and after every fix cycle.

Fixes #623 (`ALELintPre` was added in #1203).
2018-03-17 18:24:38 +00:00
Anthony DeDominic
92e6e4d1ba Fix awk linter and security concerns. (#1411)
* Fixed (g)awk linter

 * Made it secure, albeit less useful.
 * Added gawk handler; the cpplint one was not working?
 * Added gawk handler test.
 * added warning to gawk handler.
 * added gawk command callback test
 * added comment about --source

* added back optional commandline option
2018-03-14 17:46:57 +00:00
Hayato Kawai
7e1a9a9810 Add rufo fixer for ruby files 2018-03-11 13:33:57 +09:00
w0rp
05d39bc1a9 Merge pull request #1395 from gfontenot/gfontenot/fix-elm-format-name
Fix elm-format fixer name
2018-03-10 10:51:27 +00:00
Christian-Gibbons
b586eba4a4 Handle flawfinder severity level (#1400)
* Handle flawfinder severity level
* Reverted code allowing Flawfinder to piggyback off of gcc's format handler
* Gave Flawfinder its own format handler and made requested changes.
2018-03-10 10:44:55 +00:00
Fernando Mendes
6320ce6674 Allow passing options to mix_format 2018-03-08 15:29:10 +00:00
Gordon Fontenot
9258c73680 Fix elm-format fixer name
Support for elm-format as a fixer has existed since Sept 2017, but it's not
easy to discover because the fixer was named `format`. This breaks the
convention of the other fixers that use the full name in the registry.

I've gone ahead and fixed this discrepancy, but I left the existing registry
entry in place. We should move people towards using `elm-format` as the fixer
name, but I'd hate to break existing setups.
2018-03-08 09:19:12 -06:00
x x
1995afa855 Add new FAQ item for g:ale_list_window_size 2018-03-08 12:17:29 +02:00
w0rp
0a0535546f Add a command for stopping all LSP clients 2018-03-06 10:23:55 +00:00
w0rp
b7363bef7d Update the licence year. 2018-03-04 11:50:39 +00:00
Ty-Lucas Kelley
32091fb8ad add test for markdownlint hander 2018-03-03 19:32:32 -05:00
Ty-Lucas Kelley
c572cfd2d2 add vim README.md to readme 2018-03-03 19:17:31 -05:00
Ty-Lucas Kelley
2a575ca551 add basic support for markdownlint 2018-03-03 19:16:41 -05:00
w0rp
193a4b9336 Satisfy my own checks 2018-03-03 18:13:57 +00:00
w0rp
f476c28b29 Add deprecation warnings for old NeoVim versions and old functions 2018-03-03 17:50:09 +00:00
w0rp
08cfd5f90c Close #1379 - Increment b:ale_linted when a buffer is checked 2018-03-03 16:22:56 +00:00
w0rp
565ffa0dc5 Use the configured mdl executable, escape it in the command, and add test for it 2018-03-03 13:27:19 +00:00
w0rp
857723e7d5 Merge pull request #1377 from joshleeb/markdown-mdl-options
Add options for markdown_mdl linter
2018-03-03 13:16:27 +00:00
Olaf Alders
8a77290553 [WIP] Begin to distinguish between Perl warnings and errors (#933)
* If a Perl script compiles, there are only warnings and no errors

* Let the first Perl error or warning win.

Take the following example:

***

sub foo {
    my $thing;

***

This might have the following messages when we compile it:

Missing right curly or square bracket at warning.pl line 7, at end of
line
syntax error at warning.pl line 7, at EOF
warning.pl had compilation errors.

With the current behaviour, we just get a "syntax error" message, which
isn't all that helpful.  With this patch we get "Missing right curly or
square bracket".

* Fix variable scope and pattern matching syntax

* Use named variable to enhance clarity when matching Perl output

* Add more tests for Perl linter

* Remove unnecessary parens

* Simplify check for pattern match
2018-03-02 21:04:52 +00:00
w0rp
b6bf6ecdbc Try to fix it again 2018-03-02 20:57:55 +00:00
w0rp
540952ca8e Try to fix a test which is failing on Windows 2018-03-02 20:47:21 +00:00
w0rp
ad7ffe2875 Merge pull request #1390 from jdeniau/jd-feat-phpCsFixer
add php-cs-fixer to list of fixers
2018-03-02 20:40:31 +00:00
w0rp
2c2c7ceb1d Fix #1384 - Handle warnings and suggestions for tsserver 2018-03-02 20:33:45 +00:00
Andrew Crites
acbe527e15 Option to open lists vertically (#1381)
* Add configuration option to open lists vertically

* Add tests, clean up vertical list config

* Vertical list option cleanup

* Use is# for tests
* Order properties in documentation alphabetically
2018-03-02 20:22:29 +00:00
w0rp
2096562899 Make updating linter results slightly faster when the list is empty 2018-03-02 12:10:27 +00:00
Julien Deniau
fbbb8c17d9 add php-cs-fixer to list of fixers 2018-03-01 15:48:47 +01:00
w0rp
1d0690f6d7 Merge pull request #1387 from oalders/oalders-perl-docs
Explain in more detail why perl checks are disabled by default
2018-02-28 15:42:04 +00:00
Olaf Alders
aea5de282e Explain in more detail why perl checks are disabled by default 2018-02-28 10:26:44 -05:00
w0rp
f64db199f1 Fix a typo in the documentation 2018-02-26 17:04:54 +00:00
Josh Leeb-du Toit
7e20d9c639 Add options for markdown_mdl linter 2018-02-26 20:10:55 +11:00
w0rp
7ec684206c Merge pull request #1376 from zchee/doc-cpp-duplicate-tag
doc/cpp: fix duplicate ale_cpp_flawfinder_executable help tag
2018-02-25 15:09:52 +00:00
Koichi Shiraishi
b15706d9a9 doc/cpp: fix duplicate ale_cpp_flawfinder_executable help tag
both of 'g:' prefix.
2018-02-26 00:04:56 +09:00
w0rp
d86371cd29 Merge pull request #1375 from zchee/doc-c-duplicate-tag
doc/c: fix duplicate ale_c_flawfinder_executable help tag
2018-02-25 14:39:49 +00:00
Koichi Shiraishi
cfa3e6a924 doc/c: fix duplicate ale_c_flawfinder_executable help tag 2018-02-25 23:31:38 +09:00
Christian-Gibbons
82f8a04e18 New linter: Flawfinder (#1361)
* Flawfinder support added for C and C++

A minor modification to gcc handler was made to support flawfinder's
single-line output format that does not have a space following the
colon denoting the warning level.  gcc handler still passes its
Vader tests after this modification.

* Documentation fixes

* Revert documentation regression

* Added Flawfinder to table of contents

* Removed trailing whitespace

* Follow ALE conventions better

Added additional documentation and Vader tests
2018-02-25 14:11:04 +00:00
w0rp
478a2883a6 #1363 Make ale#engine#IsCheckingBuffer part of the public API 2018-02-25 12:57:54 +00:00
w0rp
0ddf16194d Fix #1306 - Tell users how to automatically close the loclist window in the documentation 2018-02-25 12:43:20 +00:00
w0rp
0292e5a458 Merge pull request #1371 from idbrii/fix-unity-example
Add Unity project path to Unity example in docs
2018-02-25 12:22:58 +00:00
w0rp
b6ccd60dd0 Merge pull request #1351 from svanharmelen/f-issue-936
This fixes issue #936 by linting the whole package
2018-02-25 11:54:05 +00:00
w0rp
b5209d31e8 go vet can only check files now 2018-02-25 11:53:36 +00:00
John Eikenberry
4941bd8d0e Fix #1358, fix #1369 - Lint the package on save for go vet instead 2018-02-25 11:39:45 +00:00
David Briscoe
8b304f77b7 Add Unity project path to Unity example in docs
For Ale to recognize the symbols in your project, you need to point it
at where Unity builds your assemblies. Add this path to the example.
2018-02-23 14:52:25 -08:00
Sander van Harmelen
ab5257c344 This fixes issue #936 by linting the whole package 2018-02-20 16:11:35 +01:00
w0rp
89f8d3e456 Fix #1336 - Print a friendly message when using invalid function names for fixers 2018-02-18 10:13:30 +00:00
w0rp
5915a0ee39 Escape the ponyc executable 2018-02-18 10:06:40 +00:00
w0rp
608b6dafd4 Merge pull request #1343 from kevinkjt2000/ponyc
Add Support for Ponylang
2018-02-18 09:48:35 +00:00
w0rp
5972b97223 #476 Make F401 a warning and E112 a syntax error 2018-02-18 09:44:04 +00:00
w0rp
fcb7932d7d Merge pull request #1345 from dfalling/fix-reason-help-title
Fix Reason help title in README.md
2018-02-13 18:51:33 +00:00
Dennis Falling
f979da54d4 Fix reason help reference
`ale-integration-reason-merlin` doesn't exist, changed to
`ale-reasonml-ols`
2018-02-12 22:52:39 -05:00
Kevin Tindall
716b46e10d functional pony linter 2018-02-10 13:17:53 -06:00
w0rp
a3329ef3fc Merge pull request #1333 from fennerm/master
Fix the lintr::lint_package command
2018-02-06 09:46:22 +00:00
Fenner Macrae
c2ab885384 Removed trailing whitespaces 2018-02-05 11:33:23 -08:00
Fenner Macrae
5dc884b24d Fixed lintr::lint_package command 2018-02-05 09:54:15 -08:00
w0rp
91b7a75afb Merge pull request #1332 from fennerm/master
Add lint_package support to lintr
2018-02-05 09:15:48 +00:00
Fenner Macrae
dda132c1a2 Add lint_package support to lintr 2018-02-04 10:57:52 -08:00
w0rp
33b3331b04 #1206 Add support for setting options for gobuild, and escape paths better 2018-02-04 13:55:09 +00:00
w0rp
0f822b063c Fix #1330 - Find isort configs better by changing the working directory 2018-02-04 13:16:44 +00:00
w0rp
31e0f48d62 Merge pull request #1326 from michaelquinn32/patch-1
Call lintr library before linting
2018-02-04 11:38:05 +00:00
w0rp
7c4decf804 Merge pull request #1329 from blyoa/prettier-vue
Add prettier fixer support to vue
2018-02-02 13:23:42 +00:00
Michael Quinn
b13f290390 Update formatting and tests. 2018-01-31 18:06:35 -08:00
blyoa
23db293bdf Add prettier fixer support to vue 2018-02-01 02:30:02 +09:00
w0rp
52fe924a13 Merge pull request #1308 from lorenzo/patch-1
Improving hadolint checker
2018-01-30 16:04:44 +00:00
Michael Quinn
bb095df25e Call lintr library before linting
This solves namespace issues related to the objects used to set linting options.
2018-01-29 20:18:14 -08:00
Jose Lorenzo Rodriguez
4df87eaadd Added tests for hadolint 2018-01-29 22:21:50 +01:00
w0rp
c589e3d57d Merge pull request #1322 from datanoise/master
fixed rust errors parsing
2018-01-29 13:54:50 +00:00
Kent Sibilev
863fb60695 updated rust handler test case 2018-01-28 18:35:46 -05:00
w0rp
1832240cff Merge pull request #1321 from butlerx/feature/po
add po support with proselint, writegood, msgfmt and alex
2018-01-28 12:49:18 +00:00
w0rp
65fc5d11c7 Fix #1038 - Automatically detect and use htmlhint configuration files 2018-01-28 12:44:42 +00:00
w0rp
7ef55a8615 #1303 jq isn't a Node program 2018-01-28 11:51:20 +00:00
Kent Sibilev
ea60fcea39 fixed rust errors parsing
use correct column values instead of absolute byte positions
2018-01-27 16:15:29 -05:00
butlerx
9dad25778f add po support with proselint, writegood, msgfmt and alex 2018-01-27 12:17:15 +00:00
w0rp
bc63325881 Merge pull request #1311 from butlerx/update/prettier-md
add prettier support for graphql
2018-01-26 17:30:00 +00:00
w0rp
34e6368610 #1316 Mention that the quickfix list option shouldn't be used with :cfdo 2018-01-25 14:54:39 +00:00
w0rp
dffc162dd6 Merge pull request #1313 from rhysd/fixjson-local-install
fixjson: Add support for local installation
2018-01-25 10:29:51 +00:00
rhysd
ef898fa303 fixjson: Add support for local installation 2018-01-25 07:21:25 +09:00
butlerx
be47e37bbc add prettier support for graphql 2018-01-24 15:25:25 +00:00
w0rp
9849c79ff7 Merge pull request #1157 from elebow/eruby-add-erubi-linter
[eruby] Add erubi linter
2018-01-24 10:40:57 +00:00
rhysd
b28a6ddbe4 Support fixing JSON files with fixjson 2018-01-24 10:36:31 +00:00
Rafael Rinaldi
d562d53102 Add jq as a JSON fixer 2018-01-24 10:12:29 +00:00
José Lorenzo Rodríguez
dd413a4732 Improving hadolint checker
- Displaying dockerfile parse errors instead of silently failing
- Adding error detail with link to the docs
2018-01-23 22:46:59 +01:00
Fran Casas
038789f0ed Add Elixir linter for dialyxir (#1257)
* Add Elixir linter for dialyxir

* Update doc/ale.txt with dialyxir

* Keep elixir tools alphabetically ordered in README

* Add a missing entry for dialyxir to the main documentation file.
2018-01-22 12:21:07 +00:00
w0rp
acf9c92ab4 Merge pull request #1301 from dezza/patch-2
Fix #1246 - Newer ESLint outputs to stderr
2018-01-20 14:41:09 +00:00
Christoffer Aasted
7cd25181b2 Fix #1246 - Newer ESLint outputs to stderr
I think Vader test still applies for this one.
2018-01-20 03:20:13 +01:00
w0rp
1d3b542031 Merge pull request #1266 from sharils/patch-1
Work around hot-reloading issue
2018-01-19 17:18:49 +00:00
w0rp
8675bfc4ab Merge pull request #1287 from rhysd/prettier-markdown
Enable prettier to format markdown files
2018-01-19 17:16:00 +00:00
w0rp
7b50b3ec82 Merge pull request #1272 from Codezerker/master
Add a luac linter for Lua
2018-01-19 17:10:29 +00:00
w0rp
a5ec4143d2 Fix the didSave tests so they work in NeoVim 0.1.7, and do not send the message for tsserver 2018-01-19 16:50:04 +00:00
Rafael Lerm
042dec059a Send didSave message to LSP-based linters (#1295)
* Also send didSave to LSP linters.
* Add tests for messages sent to LSP linters.
2018-01-19 16:40:55 +00:00
w0rp
eddda2f8b5 Fix a command wrapper test on Windows 2018-01-17 18:11:20 +00:00
w0rp
045c92ed65 Fix #1298 - Escape commands for PowerShell 2018-01-17 18:08:17 +00:00
Eddie Lebow
aa29c91cdc [eruby] Add erubi linter
Erubi is yet another parser for eRuby. This is the default parser in
Rails as of version 5.1. It supports some additional syntax with similar
behavior to Rails' extensions to the language, though incompatible.
Rails currently still recommends their own syntax, so GetCommand still
has to do the translation introduced in
https://github.com/w0rp/ale/pull/1114 .

Erubi does not supply an executable—It is intended to be invoked only
from within a Ruby program. In this case, a one-liner on the command
line.
2018-01-16 00:38:35 -05:00
rhysd
13c839cf16 Enable prettier to format markdown files 2018-01-15 11:28:56 +09:00
w0rp
f6af75aac4 Merge pull request #1268 from bbannier/master
Make it possible to inject flags of protoc invocation.
2018-01-12 20:43:43 +00:00
w0rp
e18aba1d7e Merge pull request #1270 from kevinkjt2000/test-ghc-options
test for ghc options
2018-01-12 12:11:33 +00:00
w0rp
5005871644 Merge pull request #1256 from jonatanolofsson/master
Fix #1255: Move extra clang-check args to before user options
2018-01-12 12:09:30 +00:00
w0rp
65fa901ef0 Merge pull request #1275 from ipetkov/cargo-features
Teach ALE about cargo features and add some configuration options
2018-01-12 12:04:26 +00:00
w0rp
ba1540a545 Show only the master status for AppVeyor 2018-01-12 08:55:31 +00:00
Ivan Petkov
2ef45ab745 Teach ALE about cargo features and add some configuration options
* When working on rust/cargo projects of varying sizes, it may be useful
to either build all possible features (i.e. lint all possible
conditionally compiled code), or even turn off other features for a
quicker edit-lint cycle (e.g. for large projects with large build times)
* Added a g:ale_rust_cargo_default_feature_behavior flag for instructing
cargo to not build any features at all (via `--no-default-features`),
building default features (via no extra flags), or building all possible
features (via `--all-features`)
* Also added a g:ale_rust_cargo_include_features flag for including
arbitrary features to be checked by cargo. When coupled with
g:ale_rust_cargo_default_feature_behavior this allows for full
customization of what features are checked and which ones are ignored
2018-01-11 19:24:44 -08:00
w0rp
adba2bd919 Allow syntax errors for mypy to be ignored 2018-01-11 16:43:10 +00:00
sharils
29acafdaf4 Work around hot-reloading issue
See https://github.com/phoenixframework/phoenix/issues/1165 for more detail
2018-01-10 20:53:02 +08:00
jiangzhi.xie
547716eabb Fix the doc style for ale-lua 2018-01-08 23:39:04 +08:00
jiangzhi.xie
112fcf7dd5 Add a luac linter for Lua 2018-01-08 23:32:02 +08:00
w0rp
68d4a2216c Fix a syntax error in a test 2018-01-08 13:28:01 +00:00
Kevin Tindall
ff388bbcd5 test for ghc options 2018-01-07 11:41:06 -06:00
Benjamin Bannier
b5a5cdf920 Make it possible to inject flags of protoc invocation.
Typically proto files depend on and make use of proto definitions in
other files. When invoking protoc user can supply paths to inspect for
dependencies.

This patch makes it possible to configure flags passed to protoc. This
makes it e.g., possible to change include paths of the linter's protoc
invocation.
2018-01-07 17:56:56 +01:00
Benjamin Bannier
eecbacb742 Removed unneeded SetDirectory call in proto handler test.
The test already handled arbitrary paths reasonably well, but setting
the directory interfered via leakage with others tests for some reason.

This patch removes the call to `SetDirectory` in the fixture setup and
the subsequent cleanup in the teardown as they are not required.
2018-01-07 17:54:21 +01:00
w0rp
f1747901cc Merge pull request #1262 from rhysd/avoid-old-tidy
html: Avoid old tidy on macOS
2018-01-07 16:02:49 +00:00
Jelte Fennema
b6d1c41925 Go: Add gotype support (#1099) 2018-01-07 12:11:01 +00:00
w0rp
c9d66b861b Show more ALE variables in ALEInfo 2018-01-07 12:01:20 +00:00
rhysd
7a1a534305 Explain /usr/bin/tidy is ignored on macOS and how to install the latest tidy 2018-01-06 20:00:36 +09:00
rhysd
401b964e9c html: Avoid old tidy on macOS
On macOS, Apple's command line toolchain installs very old `tidy`
command (It was released on 31 Oct 2006). It does not consider new specs
such as HTML5 so we should avoid it.
2018-01-03 01:50:31 +09:00
Jonatan Olofsson
ff8d4c5286 Fix #1255: Move extra clang-check args to before user options 2018-01-02 16:09:38 +01:00
w0rp
5285b0b332 Merge pull request #1260 from kevinkjt2000/add-ghc-options
haskell_ghc_options are now added to the ghc command
2018-01-02 14:05:40 +00:00
w0rp
e98a3899da Merge pull request #1254 from bkhl/master
Don't use temporary file for rustfmt fixer
2018-01-02 13:36:20 +00:00
w0rp
80342b119a Merge pull request #1252 from nthapaliya/fish-shell-linter
Fish shell linter
2018-01-02 13:32:59 +00:00
w0rp
d9a3722e06 Merge branch 'add-fountain-proselint-support' 2018-01-02 13:23:00 +00:00
w0rp
1e34210f9a Fix some bad indentation 2018-01-02 13:22:40 +00:00
Kevin Tindall
681c35169f add ghc entry to the ToC 2018-01-01 22:33:43 -06:00
Kevin Tindall
d8f71c46da haskell_ghc_options are now added to the ghc command 2018-01-01 22:21:21 -06:00
Björn Lindström
b0eaddadc9 Don't use temporary file for rustfmt fixer
rustfmt normally acts on a file in place, and applies configuration
from rustfmt.toml files according to the path of the file.

Using a temporary file for rustfmt breaks this functionality, so
removing the '%t' from the rustfmt command.
2017-12-27 23:12:57 +07:00
Niraj Thapaliya
3b0c67e42c Add handler test 2017-12-26 14:10:28 -06:00
Niraj Thapaliya
c90b45c559 Edit README and help 2017-12-26 14:10:28 -06:00
Niraj Thapaliya
e2d3dca486 Support for fish file linting 2017-12-26 12:25:17 -06:00
w0rp
c165c7c5d1 Fix #1251 - Handle an empty list in the line callback when NeoVim crashes 2017-12-26 18:15:59 +00:00
w0rp
48cae6afc4 Merge pull request #1250 from yaryabu/patch-1
Fix c# documentation variable typo
2017-12-26 18:09:38 +00:00
Yaroslav Ryabukha
0548cf9177 Fix c# documentation variable typo 2017-12-25 16:40:25 +03:00
Jansen Mitchell
4d4d2d8122 Add four spaces, not tabs. 2017-12-20 22:53:03 -06:00
Jansen Mitchell
2c9c5dec1e Add Fountain with proselint info to ale.txt. Add Fountain online documentation. 2017-12-20 12:39:10 -06:00
w0rp
e43e7065da Fix #1115 - Add support for wrapping all commands with an option 2017-12-20 12:20:38 +00:00
w0rp
2495744fc3 Fix the gitlint test 2017-12-20 10:49:23 +00:00
w0rp
87ffc9b55c Make the error codes configurable for gitlint 2017-12-20 10:46:08 +00:00
Nick Diego Yamane
d4b43d23f4 Add support for linting git commit message files (#1233) 2017-12-20 10:10:07 +00:00
Jansen Mitchell
537d162ee7 Add Fountain and linter support information to README. 2017-12-19 21:57:25 -06:00
Jansen Mitchell
4b56b91ac8 Add support for Fountain with proselint. 2017-12-19 20:27:12 -06:00
w0rp
1568bf8128 Fix the mscs tests on Windows, and use the improved Simplify for all tests instead. 2017-12-19 18:23:09 +00:00
w0rp
73f61514c9 Fix #1031 - Make the rust flags configurable 2017-12-19 18:10:29 +00:00
w0rp
cc8e5502c8 Fix #1240 - Parse line and column numbers for fatal embertemplatelint errors 2017-12-19 17:42:51 +00:00
w0rp
0ad2547997 Fix mcsc paths and escaping for Windows 2017-12-19 17:34:34 +00:00
w0rp
647c798eb7 Fix #1226 - Update the mcsc documentation to make it clearer how to use it 2017-12-19 16:54:46 +00:00
w0rp
f74e22b938 Clean up ALE linter buffer data when buffers are deleted, not unloaded 2017-12-19 15:35:57 +00:00
w0rp
d2bea5c310 Allow the cursor messages to be disabled while Vim is running 2017-12-19 14:43:24 +00:00
w0rp
a7d51afda5 Merge pull request #1221 from JelteF/patch-1
Fix erb linter for puppet style erb templates
2017-12-19 14:09:00 +00:00
Jelte Fennema
532594839c erb: fix tests 2017-12-19 13:21:30 +01:00
w0rp
2cacba5758 Fix #1228 - Reset the cursor if echoing a message moves it 2017-12-19 12:06:08 +00:00
w0rp
91090f1af8 Merge pull request #1239 from languitar/vale-suggestion
Missing warning level 'suggestion' for vale
2017-12-18 23:36:13 +00:00
Johannes Wienke
79aaec5a99 Missing warning level 'suggestion' for vale
Vale can also, optionally, raise suggestions. These weren't covered yet.
2017-12-18 17:10:57 +01:00
w0rp
5577d567d1 Merge pull request #1238 from languitar/alex-from-file
Make alex a file linter
2017-12-18 15:28:27 +00:00
Johannes Wienke
1e574ed5f7 Make alex a file linter
alex does not find its configuration file when using temporary files for
input.
2017-12-18 15:26:52 +01:00
w0rp
fdaac9bd78 Fix #1210 - Fix a Windows path issue which broke TSLint 2017-12-18 13:27:59 +00:00
w0rp
31241e9ed8 Get the TSLint tempname test running on Windows 2017-12-18 12:01:05 +00:00
w0rp
e0c3cbd16f Remove some now redundant echo code 2017-12-18 11:22:24 +00:00
w0rp
8afd9a70a6 #1212 Fix some echo cursor flashing by only echoing once all linters are finished. 2017-12-18 11:14:10 +00:00
w0rp
e4821c7f2f Indicate that 4.2.0 is no longer strictly required for prettier-eslint, and add links for prettier-eslint and prettier-standard 2017-12-18 10:37:21 +00:00
w0rp
af7eb2b979 Sort the list of supported tools and add vale to more languages 2017-12-18 10:28:49 +00:00
Johannes Wienke
1626fce1c9 Enable the vale linter also for further markup languages (#1230)
* Enable the vale linter also for LaTeX
* Enable the vale linter for rst files
2017-12-18 10:15:00 +00:00
w0rp
fdde8af894 Merge pull request #1232 from languitar/vale-json
Use JSON output with vale
2017-12-18 10:11:57 +00:00
w0rp
30c5bb3772 Merge pull request #1237 from danpker/add-python-venv-folder
Add python venv folder
2017-12-18 09:54:32 +00:00
Daniel Parker
938c150880 Update docs 2017-12-18 09:44:02 +00:00
Daniel Parker
d3cf02ecda Add support for Vritual Env folder called venv 2017-12-18 09:33:11 +00:00
w0rp
65a99c1615 Merge pull request #1235 from nickdiego/master
Fix typos in flake8 test messages
2017-12-17 21:51:21 +00:00
Nick Diego Yamane
ad1aee0b89 Fix typos in flake8 test messages
Signed-off-by: Nick Diego Yamane <nick.diego@gmail.com>
2017-12-17 16:45:57 -04:00
Johannes Wienke
96b90b45db Use JSON output with vale
Switches all vale instances to JSON output and provides an appropriate
handler for that. Without JSON, no end_col is provided and text
highlighting only catches the first character of every result.
2017-12-17 16:49:57 +01:00
w0rp
c4956657dc Merge pull request #1220 from languitar/linter-alex
Add a linter for alex
2017-12-17 13:11:49 +00:00
w0rp
fc151d7b30 Merge pull request #1222 from srathbone/master
Fix PHP linter to support PHP 7.2 lint output
2017-12-17 12:41:28 +00:00
w0rp
55e09a4a2d Look for mypy.ini to find Python project roots too 2017-12-17 12:38:50 +00:00
w0rp
7e793c9d71 Fix a typo 2017-12-17 12:36:07 +00:00
w0rp
09d3ecc49b Clean up some doc formatting 2017-12-17 12:11:30 +00:00
w0rp
7284270120 Fix some right margin alignment 2017-12-17 12:10:07 +00:00
w0rp
c8ee402cce Merge pull request #1203 from Carpetsmoker/autocmd-start
Add ALEStartLint autocmd
2017-12-17 12:06:57 +00:00
w0rp
a22def45b9 Merge pull request #1209 from butlerx/java-fixer
add google-java-format fixer
2017-12-17 12:00:52 +00:00
w0rp
e06f2ded9d Update ale.txt 2017-12-17 11:58:05 +00:00
Stephen Rathbone
78d1f5f5df Fix PHP linter to support PHP 7.2 lint output 2017-12-13 21:23:18 +00:00
Jelte Fennema
e7eb272714 Fix erb linter for puppet style erb scripts 2017-12-13 14:59:59 +01:00
Johannes Wienke
0d046f5f01 Add a vader test for the message handler 2017-12-13 14:37:49 +01:00
Johannes Wienke
55ca96bd83 Add a linter for alex
https://github.com/wooorm/alex

Enabled for text-like file formats and documented in README and doc.
2017-12-13 14:37:42 +01:00
w0rp
d2a6d9a915 Fix #1216 - Suppress trailing whitespace warings for ansible-lint when the option is set 2017-12-13 11:14:31 +00:00
Martin Tournoij
4825cce1cc Run before lint cycle, rename autocmds 2017-12-10 13:10:52 +00:00
w0rp
7a88a3605c Disable a test on Windows for now, because Windows is stupid 2017-12-10 10:12:26 +00:00
w0rp
9152effa9f Get the new test to pass on Windows 2017-12-10 10:07:04 +00:00
w0rp
cebe7c3918 Fix #1210 - Do not report this file as a temporary file in the quickfix list for TSLint 2017-12-10 09:58:33 +00:00
butlerx
0700c2d900 add google-java-format fixer 2017-12-09 14:25:35 +00:00
w0rp
fcfd1025cc Merge pull request #1198 from Carpetsmoker/goimports
goimports fixer doesn't work for vendored libraries
2017-12-08 13:09:22 +00:00
w0rp
2d3d6d3a10 Ask for the first two lines for :version in the issue template 2017-12-08 13:07:32 +00:00
Martin Tournoij
92f20b0e51 goimports fixer doesn't work for vendored libraries
In Go you can "vendor" packages by putting them in the `vendor/`
directory for a project. Adding the `-srcdir` argument makes `goimports`
pick up these packages, in addition to what you have in GOPATH.

Without this, `goimports` is not very useful, since most projects vendor
their packages.
2017-12-08 12:49:02 +00:00
w0rp
7d932a239c Fix #1205 Do not add line highlights if the groups do not exist 2017-12-07 23:25:17 +00:00
w0rp
b6efb5649e Run tests in parallel 2017-12-07 20:07:45 +00:00
w0rp
7a71186d62 Merge pull request #1174 from eborden/eborden/add-brittany-for-haskell-formatting
Add brittany for Haskell formatting
2017-12-07 19:15:33 +00:00
w0rp
fbc8ac9553 Update ale.txt 2017-12-07 19:01:13 +00:00
w0rp
c6fc9cdb7b Merge pull request #1192 from fvictorio/add-solhint-support
Add solhint support
2017-12-07 18:50:33 +00:00
w0rp
63ecc8341d Fix #1202 - Do not use --all-targets by default, because it doesn't work some of the time. 2017-12-07 18:47:01 +00:00
Martin Tournoij
d6bf13502a Add ALEStartLint autocmd
This grew out of my work in #1193; to ensure the statusline was being
updated I had to add:

    fun! s:redraw(timer)
        redrawstatus
    endfun

    augroup ALEProgress
        autocmd!
        autocmd BufWritePost * call timer_start(100, function('s:redraw'))
        autocmd User ALELint redrawstatus
    augroup end

Which kind of works, but is ugly. With this, I can replace the
`BufWritePost` with:

    autocmd User ALEStartLint redrawstatus

Which is much better, IMHO.

Actually, this patch actually replaces adding a function, since you can
do:

    augroup ALEProgress
        autocmd!
        autocmd User ALEStartLint hi Statusline ctermfg=darkgrey
        autocmd User ALELint      hi Statusline ctermfg=NONE
    augroup end

or:

    let s:ale_running = 0
    let l:stl .= '%{s:ale_running ? "[linting]" : ""}'
    augroup ALEProgress
        autocmd!
        autocmd User ALEStartLint let s:ale_running = 1 | redrawstatus
        autocmd User ALELint      let s:ale_running = 0 | redrawstatus
    augroup end

Both seem to work very well in my testing.

No need to `ale#Statusline#IsRunning()` anymore, I think?
2017-12-07 16:14:20 +00:00
w0rp
0e57ca3df3 Include the operating system in the issue template 2017-12-07 13:24:23 +00:00
w0rp
440ef30b79 Update the issue template 2017-12-07 13:23:17 +00:00
Evan Rutledge Borden
f66837818a Update doc/ale.txt to include brittany. 2017-12-05 15:04:02 -05:00
Franco Victorio
85e0bd3314 Extract error code from message 2017-12-05 16:02:15 -03:00
Jeff Willette
e2a8f759d8 Added option for gometalinter to lint package (#1156)
* Added option for `gometalinter` to lint package
* added tests for the `gometalinter` command
* changed gometalinter commands to use BufferCdString
2017-12-04 18:42:36 +00:00
Franco Victorio
57e1b03435 Add test for solhint handler 2017-12-04 14:23:46 -03:00
Franco Victorio
3e1bd8d922 Update documentation 2017-12-04 14:23:34 -03:00
Franco Victorio
0d627d4613 Add solhint support 2017-12-04 14:23:23 -03:00
w0rp
159733c459 Merge pull request #1191 from deltaskelta/add-importjs-fixer
added importjs fixer
2017-12-04 16:14:20 +00:00
Jeff Willette
fba3c57872 added importjs fixer
- added tests for fixer functions
- added docs
2017-12-05 00:37:31 +09:00
w0rp
2f9869de44 Escape the perl executable, and cover the callbacks with tests 2017-12-02 20:47:01 +00:00
w0rp
a4f8506227 Fix #1186 - Disable checking code with perl by default 2017-12-02 20:43:47 +00:00
w0rp
acd1260339 Revert "Fix #1186 - Use -w by default for Perl, which does not execute code"
This reverts commit f5fc746d00.
2017-12-02 20:38:28 +00:00
Dave Wongillies
2bd966c5cc Puppet: allow for when parser doesn't supply column for errors (#1182)
* puppet: add test for puppet parser validate

* puppet: handle where parser validate doesn't supply the column

* puppet: add test for when parser validate doesn't supply column

* Fix puppet regex to handle Windows paths
2017-12-02 12:29:17 +00:00
w0rp
f5fc746d00 Fix #1186 - Use -w by default for Perl, which does not execute code 2017-12-02 12:26:44 +00:00
w0rp
83760a0952 Merge pull request #1188 from ejsexton82/master
Fixed Command String for phpcbf Fixer
2017-12-02 12:25:13 +00:00
E.J. Sexton
122fdfd329 Fixed command string for phpcbf fixer 2017-12-02 09:27:18 +01:00
w0rp
6650c9a901 Break up the rest of the test script code into smaller files 2017-12-01 18:06:09 +00:00
w0rp
499c154272 Move the Bash code for running Vader tests to its own file 2017-12-01 17:50:24 +00:00
Sven-Hendrik Haase
51b127a4fd Add glslls (#1179)
* Add glslls-based LSP linter
* Make logfile configureable
2017-12-01 17:36:44 +00:00
w0rp
6053f764bd Make toggling work when pattern options are enabled 2017-12-01 17:12:19 +00:00
Carlos Coêlho
daee4a4722 Add prospector for checking Python code (#1183) 2017-12-01 17:04:30 +00:00
E.J. Sexton
6b3927820b Fixed command string for phpcbf fixer 2017-12-01 14:55:34 +01:00
w0rp
948035e13d Merge pull request #1185 from svenstaro/patch-1
Delete unnecessary unlets
2017-12-01 09:19:57 +00:00
Sven-Hendrik Haase
0406af4484 Delete unnecessary unlets
I'm not even sure why these were here.
2017-12-01 03:03:10 +01:00
w0rp
a990188e27 Fix #1176 - Add an option for caching failing executable checks 2017-11-30 10:34:51 +00:00
w0rp
fd261264d7 Escape the filename for finddir 2017-11-30 10:25:32 +00:00
w0rp
c977bb2d05 Merge pull request #1181 from lgalke/tsserver-in-cygwin
[WIP] Finding tsserver inside cygwin
2017-11-30 09:46:24 +00:00
Lukas Galke
5d65980c42 fnameescape when searching nearest file 2017-11-30 00:33:13 +01:00
w0rp
6503b85d3d Fix #1178 - Don't use the output from eslint_d for fixing files when the output is an error message 2017-11-29 10:08:54 +00:00
Evan Rutledge Borden
edb3a0c5e4 Add brittany for Haskell formatting
`brittany` is one of the options for Haskell source formatting. This
adds the necessary fixer files and documentation to support `brittany`
in `ALE`.
2017-11-28 17:58:13 -05:00
w0rp
a43ada93e4 Allow warnings about trailing whitespace to be disabled for pycodestyle, and cover the flake8 code with tests 2017-11-28 10:12:49 +00:00
w0rp
0ab689db0a Allow warnings about trailing blank lines to be hidden for flake8 and pycodestyle 2017-11-28 10:08:34 +00:00
w0rp
4e821e64c7 Fix #1168 - Make the ruby linter executable configurable 2017-11-28 09:48:35 +00:00
w0rp
bba6b4c23c Merge pull request #1169 from benjie/master
Add support for linting GraphQL with ESLint
2017-11-27 18:20:39 +00:00
Benjie Gillam
b0114deabc Reference the JS ESLint options 2017-11-27 15:57:17 +00:00
Benjie Gillam
09f9c21f1b Fix typo 2017-11-27 15:55:57 +00:00
Benjie Gillam
e84ee4332f Add support for linting GraphQL with ESLint 2017-11-27 14:41:49 +00:00
w0rp
d4ea0423a2 Fix go to definition tests on Windows 2017-11-26 23:20:21 +00:00
w0rp
f311a46f79 Add go to definition to the README 2017-11-26 23:12:13 +00:00
w0rp
17f93b16ab Test go to definition tests on Windows 2017-11-26 23:08:38 +00:00
w0rp
17574e2fe1 Document go to definition support and put that and completion in an LSP section 2017-11-26 23:02:51 +00:00
w0rp
21b460bb1d Implement go to defintion for LSP linters 2017-11-26 22:27:08 +00:00
w0rp
01318b6930 Compress one line 2017-11-26 21:30:26 +00:00
w0rp
c07b3b9bfc Fix #1166 - Add an option for the rls toolchain 2017-11-26 18:47:30 +00:00
w0rp
ae7cd2c090 Fix #918 - Save prettier details for Haskell linters 2017-11-26 18:24:10 +00:00
w0rp
8254e507d6 #1162 Get LSP completions working reasonably well 2017-11-26 13:01:01 +00:00
w0rp
b1a6abdda6 #1162 Add unfinished experimental code for supporting LSP completion, clean up the tests, and make the completion cancelling better 2017-11-26 12:24:18 +00:00
w0rp
2e50aadd56 Merge pull request #1165 from Carpetsmoker/blackhole
Delete to black hole register in fixer
2017-11-25 11:42:12 +00:00
Martin Tournoij
7dfe690b0b Delete to black hole register in fixer
Otherwise it'll be in "" and "0, which is an unexpected side-effect
IMHO.
2017-11-25 03:36:36 +00:00
w0rp
f99b027cc6 Fix the JSON fixer post-processor test harder on Windows 2017-11-22 23:45:51 +00:00
w0rp
5160f814d9 Fix #988 - Support --fix-dry-run for ESLint by processing the JSON output 2017-11-22 23:23:14 +00:00
w0rp
6318a08e08 Fix a fixer test on Windows 2017-11-22 22:50:27 +00:00
w0rp
8dd542bed0 Fix lambda and funcref chain values 2017-11-22 22:39:43 +00:00
w0rp
d07b5b71a4 Add support for post-processing fixer output 2017-11-22 22:32:53 +00:00
w0rp
fbfde6968a Fix a typo 2017-11-22 17:44:21 +00:00
w0rp
9857e0a4b7 Fix the eslint_d fixer tests for Windows 2017-11-22 17:25:37 +00:00
w0rp
6e65998ca7 #988 Take --fix-dry-run away again, because it is dumb 2017-11-22 17:01:50 +00:00
w0rp
b5ec1a5fd0 Fix #988 - Support --fix-dry-run for ESLint where available, and --fix-to-stdout for eslint_d 2017-11-22 16:51:04 +00:00
w0rp
91fe749d03 Fix a bug with resetting pattern options when ALE is enabled again 2017-11-22 16:39:05 +00:00
w0rp
5d2ab192cf Support fixer aliases, and make prettier-eslint and prettier-standard just work 2017-11-22 15:31:39 +00:00
w0rp
5ed6f66f77 Reorganise the ALEFix tests 2017-11-22 14:55:08 +00:00
w0rp
4b4762697c #1095 Use --stdin-filepath where available for prettier-eslint 2017-11-22 14:46:14 +00:00
w0rp
382cb4d538 Fix a fixer test on Windows 2017-11-22 14:06:37 +00:00
w0rp
520541cd2d #1095 - Use --stdin-filepath for prettier, where available 2017-11-22 13:46:11 +00:00
w0rp
3f70f1cbf1 Disable piping buffer data into commands for fixing files where needed 2017-11-22 13:01:13 +00:00
w0rp
e7865d2f94 Fix the empty echo fixer test on Windows 2017-11-22 12:41:16 +00:00
w0rp
074a011b08 Make fixing ignore empty output better 2017-11-22 12:01:21 +00:00
w0rp
796fb651d6 Fix the Windows tests for pyls 2017-11-22 00:42:39 +00:00
w0rp
52f3ad7c75 Escape the pyls executable in the command, and support running virtualenv pyls executables 2017-11-21 23:51:18 +00:00
w0rp
e6fb32b792 Remove a Unicode character Vint complains about 2017-11-21 16:39:05 +00:00
w0rp
8be85c2997 Use some default regex for completion support in other filetypes 2017-11-21 16:18:08 +00:00
w0rp
3ef98f42bd Fix #783 - Do not run Flow with home directory configuration files by default 2017-11-21 14:37:01 +00:00
w0rp
ac7f69063d #1151 - Overhaul the foodcritic linter for checking files on disk 2017-11-21 13:38:33 +00:00
w0rp
ce2986cfa5 Merge pull request #1158 from rhysd/redpen-error-code
redpen: Use 'code' key to show validator
2017-11-21 12:33:19 +00:00
rhysd
d465b71362 redpen: use 'code' key to show validator
instead of embedding it into text
2017-11-21 15:49:04 +09:00
w0rp
7ea3aba5e5 Quietly add go to definition support for tsserver 2017-11-21 00:21:45 +00:00
w0rp
5a3a695586 Merge pull request #1154 from deltaskelta/add-filename-key-for-gobuild
Added filename key for `go build` linter
2017-11-20 20:58:43 +00:00
w0rp
c9e203e620 Fix #859 Include test and jaxb Java source paths when available 2017-11-20 18:54:57 +00:00
Jeff Willette
b9f02ffb27 Added filename key for go build linter
- Re: f224ce8a37

- The issues that prompted the above commit which reverted changes made to `go build` and
`gometalinter` seemed to suggest that the main issue was with gometalinter and that
changes should be put into different commits so they are independent of each other

- This commit reinstates the changes to the `go build` linter which seem to be uncontested
and it also seems absolutely necessary to show errors from all files in the package which
may have caused a build failure.
2017-11-20 23:50:14 +09:00
Shogo NAMEKI
f20e5a4cf0 Add drafter for checking API Blueprint files (#1152) 2017-11-20 10:57:13 +00:00
w0rp
f224ce8a37 Revert "Show problems from other files for gobuild and gometalinter"
This reverts commit e721f851b4.
2017-11-20 10:43:45 +00:00
w0rp
9420c411bd #1149 Fix conversion from URIs to filenames on Windows 2017-11-20 00:02:33 +00:00
w0rp
597507e519 Make the message formats configurable with buffer local variables 2017-11-19 23:44:09 +00:00
w0rp
0cb8130d0e Stop the completion tests from failing randomly 2017-11-19 23:09:20 +00:00
w0rp
cc04a7aaa0 Make the iverilog tests match the other tests 2017-11-19 23:06:12 +00:00
RedBug312
1afe2992e2 Make options configurable for iverilog (#1143) 2017-11-19 22:59:17 +00:00
w0rp
344add6a28 Fix a typo 2017-11-19 13:57:04 +00:00
w0rp
151f9f857c Add an FAQ entry explaining how to configure ALE for different buffers. 2017-11-19 13:56:09 +00:00
w0rp
62904d39ee #852 - Capture error codes for tflint 2017-11-19 13:37:56 +00:00
w0rp
fa7f0e2b85 #852 - Capture error codes for swiftlint 2017-11-19 13:33:20 +00:00
w0rp
b16c82f2f1 #852 - Capture error codes for swaglint 2017-11-19 12:46:06 +00:00
w0rp
d7a60ade77 #852 - Capture error codes for stylelint 2017-11-19 12:30:20 +00:00
w0rp
01b2971d04 #852 - Capture error codes for slim-lint 2017-11-19 01:08:20 +00:00
w0rp
7123f7236b #852 - Capture error codes for reek 2017-11-19 00:54:09 +00:00
w0rp
c012563984 #852 - Capture error codes for nimcheck 2017-11-19 00:38:00 +00:00
w0rp
3c8f3221df #852 - Capture error codes for mcs and mcsc 2017-11-19 00:19:09 +00:00
w0rp
40e26f0bc2 #852 - Capture error codes for luacheck 2017-11-19 00:02:35 +00:00
w0rp
41cb174f3a #852 - Capture error codes for jscs 2017-11-18 23:55:47 +00:00
w0rp
cefc5dc5b8 #852 - Capture error codes for csslint 2017-11-18 23:15:23 +00:00
w0rp
2b50e68c7e Add an FAQ entry explaining how to configure C or C++ projects 2017-11-18 18:59:03 +00:00
w0rp
7455e2e97d #852 - Capture error codes for checkstyle 2017-11-18 18:29:12 +00:00
w0rp
49ccfb1a00 Fix #516 - Add support for pyflakes for Python 2017-11-17 18:11:28 +00:00
w0rp
0e96d4576a Merge pull request #1142 from rhysd/redpen-ext
* redpen support for asciidoc, reST, LaTeX and Re:VIEW
* redpen: fix start column
* add redpen as text linter
2017-11-17 16:34:01 +00:00
w0rp
5635b3c864 Fix #741 - Set highlights for entire lines when signs are disabled 2017-11-17 14:29:57 +00:00
Thomas van der Burgt
22ec81e1de add ale_asm_gcc_executable option (#1138)
* add ale_asm_gcc_executable option
* add Vader tests for asm gcc linter command callbacks
2017-11-17 10:02:30 +00:00
w0rp
a139b387c8 Merge pull request #1141 from elebow/eruby-fix-command-file-redir
erb, erubis: Redirect file into first command.
2017-11-17 09:27:40 +00:00
rhysd
79f15b0e30 add redpen as text linter 2017-11-17 16:43:16 +09:00
rhysd
ca345ffb62 redpen: fix start column 2017-11-17 15:34:07 +09:00
rhysd
44cd07d39c redpen support for asciidoc, reST, LaTeX and Re:VIEW 2017-11-17 15:34:07 +09:00
Eddie Lebow
b390c69642 erb, erubis: Redirect file into first command.
The previous version relied on a zsh-specific behavior where
`<filename` after a pipe could redirect to the first command. This
is the standard way to do it.
2017-11-16 23:10:25 -05:00
w0rp
1f4f19cbd4 Merge pull request #1133 from nicwest/linter-clj-joker
add joker handler for clojure
2017-11-16 11:06:27 +00:00
w0rp
3ddb858881 Merge pull request #1137 from rhysd/redpen
Add Redpen support
2017-11-16 10:44:52 +00:00
rhysd
e232ea07c2 redpen: fix trailing comma in test data 2017-11-16 19:42:51 +09:00
rhysd
f1314b285c redpen: support end_lnum and end_col if possible 2017-11-16 19:28:30 +09:00
w0rp
f90a2d5474 Merge pull request #1114 from elebow/eruby-strip-rails-flavoring
Strip Rails flavoring from eRuby when in a Rails project. Fixes #580.
2017-11-16 10:19:32 +00:00
w0rp
ee07be5f59 Merge pull request #1135 from aurieh/master
Capture error codes for checkmake
2017-11-16 10:15:37 +00:00
rhysd
c9c52ef370 add tests and doc for redpen support 2017-11-16 18:40:10 +09:00
w0rp
71d34fc0c6 Fix #1132 - Parse react error codes again for ESLint 2017-11-16 09:34:24 +00:00
rhysd
981cb95d80 add redpen support 2017-11-16 18:12:08 +09:00
aurieh
7565a45b6f Modify vader tests for d585123 2017-11-16 01:01:59 +02:00
aurieh
d585123d64 #852 Capture error codes for checkmake 2017-11-16 00:58:33 +02:00
Nic West
eda20d0585 add joker handler for clojure
Adds new linter for clojure using joker

https://github.com/candid82/joker

fixes #975
ref #544 #1040
2017-11-15 22:23:46 +00:00
w0rp
1d65e5692f #852 Capture error codes for pycodestyle, and consider every code except E999 to be style errors or warnings 2017-11-15 17:47:24 +00:00
w0rp
cf538c3a58 #852 Capture error codes for pylint, throw away the msgid values 2017-11-15 17:35:34 +00:00
w0rp
08f4f8f0fc #852 Capture error codes for shellcheck 2017-11-15 17:26:52 +00:00
w0rp
b14377915b Clean up tests to stop people copy and pasting the wrong examples 2017-11-15 17:21:17 +00:00
Jeff Willette
e721f851b4 Show problems from other files for gobuild and gometalinter
* Added filename keys to gobuild and gometalinter
* Removed skipping files not in current package
* Removed `--include` for gometalinter
* Fixed the tests
2017-11-15 16:34:30 +00:00
w0rp
290ed4885b Fix #1131 - Capture both output streams for golint 2017-11-15 16:24:29 +00:00
w0rp
e12e5c912c Complain about stray echo lines in the codebase 2017-11-15 12:00:13 +00:00
w0rp
38bc489604 Merge pull request #1130 from deltaskelta/patch-1
fix goimports typo in registry
2017-11-15 11:35:51 +00:00
w0rp
8f80708da6 #852 - Capture error codes for cpplint 2017-11-15 11:28:16 +00:00
w0rp
ff5c6b0509 #852 - Capture error codes for ansible-lint 2017-11-15 10:11:32 +00:00
w0rp
37f2f70439 Update the documentation for GetLoclist 2017-11-15 09:16:36 +00:00
Jeff Willette
a36129eab0 fix goimports typo in registry 2017-11-15 09:40:40 +09:00
w0rp
48be035da8 Update the documentation for :ALEDetail 2017-11-14 23:29:48 +00:00
w0rp
d48506f9c1 Fix #757 - Show :ALEDetail messages in a window 2017-11-14 23:25:01 +00:00
w0rp
6b2c61a5cc Fix #1128 - Add g:ale_linters_explicit for only enabling linters explicitly 2017-11-14 19:55:46 +00:00
w0rp
2e9cd978a2 Merge pull request #1129 from aliou/rubocop-cop-as-error-code
#852 - Capture error codes for Rubocop
2017-11-14 18:16:22 +00:00
w0rp
48eb362fca Add tests for the goimports fixer commands 2017-11-14 17:46:40 +00:00
Jeff Willette
20a01404f3 Added support for goimports fixer (#1123)
* Added support for goimports fixer
* added test and executable check
* fixed test assertions to reflect executable check
2017-11-14 17:37:22 +00:00
Aliou Diallo
425482116e #852 - Capture error codes for Rubocop 2017-11-14 17:50:15 +01:00
w0rp
16e7dc2371 Fix #1069 Support formatting the loclist messages with g:ale_loclist_msg_format 2017-11-14 10:28:36 +00:00
w0rp
d8f9aef84a #852 - Capture error codes for flake8 2017-11-14 09:41:29 +00:00
w0rp
037aaae593 #852 - Capture error codes for TSLint 2017-11-13 23:36:15 +00:00
w0rp
fea708cff3 #852 Pass on error codes in the loclist corrections 2017-11-13 23:34:00 +00:00
w0rp
8a3a2da87e #852 Capture error codes for ESLint 2017-11-13 23:23:06 +00:00
w0rp
764a33b1c9 Fix #1124 - Handle stack-build errors with leading spaces 2017-11-13 22:47:19 +00:00
w0rp
6c112dd1cc Fix #1122 - Handle notes for shellcheck errors again, and use type 'I' for notes 2017-11-13 16:08:09 +00:00
w0rp
a5f7f51c9a #1121 Tell people how to lint when leaving insert mode with Ctrl+C 2017-11-13 10:27:25 +00:00
Eddie Lebow
ad7ea36307 [eruby] Add GetCommand to erubis linter
GetCommand conditionally adds a filter (implemented as inline Ruby code
in the command line) to transform some of the problematic
Rails-specific eRuby syntax. Specifically, <%= tags are replaced with
<%.

This does not reduce the effectiveness of the linter, because the
transformed code is still evaluated.

This solution was suggested by @rgo at
https://github.com/w0rp/ale/issues/580#issuecomment-337676607.
2017-11-12 23:33:34 -05:00
Eddie Lebow
ea7f68226e [eruby] Add GetCommand to erb linter
GetCommand conditionally adds a filter (implemented as inline Ruby code
in the command line) to transform some of the problematic
Rails-specific eRuby syntax. Specifically, <%= tags are replaced with
<%.

This does not reduce the effectiveness of the linter, because the
transformed code is still evaluated.

This solution was suggested by @rgo at
https://github.com/w0rp/ale/issues/580#issuecomment-337676607.
2017-11-12 23:33:30 -05:00
Eddie Lebow
e9e29e003c [eruby] Rename erubylinterb to match tool name 2017-11-12 23:33:22 -05:00
w0rp
584e0bc7f2 #852 Support formatting echo messages with error codes. No linters set the code key yet 2017-11-13 00:47:34 +00:00
w0rp
70623ca8a7 Add support for showing Info severities in echoed messages 2017-11-12 23:19:26 +00:00
w0rp
7d056b0839 Update the documentation for the echo message format, so it makes more sense 2017-11-12 23:01:11 +00:00
w0rp
e7b9befaa6 Sort some linter entries alphabetically 2017-11-12 12:11:15 +00:00
w0rp
3c34848e02 Fix #510 Support checking LESS files with stylelint 2017-11-12 12:09:19 +00:00
w0rp
5b3094558b Merge branch 'zanona-less-lessc-linter' 2017-11-12 11:35:14 +00:00
w0rp
7edcb2210b Show problems from other files for lessc 2017-11-12 11:35:01 +00:00
w0rp
cd5da50531 Add tests for the command and executable callbacks, and make them use local node_modulse esxecutables like other linters 2017-11-12 11:25:24 +00:00
Michael Jungo
3aff1df961 Add tests for ocaml-language-server callbacks 2017-11-12 10:56:53 +00:00
w0rp
d20e3bc71c #1108 Support setting b:ale_linter_aliases to a List 2017-11-12 10:56:53 +00:00
w0rp
b98387d0fa #1108 Support using Lists and 'all' for b:ale_linters 2017-11-12 10:56:53 +00:00
w0rp
099df0af52 #1108 Support selecting fixers with Lists 2017-11-12 10:56:53 +00:00
Eddie Lebow
365d023d0e perlcritic: all issues are warnings
Perlcritic is a style checker, not a syntax validator.

This change was originally proposed by @RsrchBoy in
https://github.com/w0rp/ale/pull/784.
2017-11-12 10:56:53 +00:00
Michael Jungo
5df6ce6bb8 Remove id from LSP notifications 2017-11-12 10:56:53 +00:00
Michael Jungo
39107a48b9 Add ocaml-language-server for OCaml and ReasonML 2017-11-12 10:56:53 +00:00
w0rp
8e0d1f57c6 Fix a typo 2017-11-12 10:56:53 +00:00
w0rp
555743a2ba #1095 Cache the sorting of patterns for g:ale_pattern_options 2017-11-12 10:56:53 +00:00
w0rp
8cd1ccff84 #1095 Apply all patterns for g:ale_pattern_options, instead of just the first match 2017-11-12 10:56:53 +00:00
jnduli
6c60ca24c1 Add rstcheck linter to check for errors in restructured text (#1090) 2017-11-12 10:56:53 +00:00
Florian Beeres
52b6024997 Handle flow extra errors (#946)
Show more information for Flow errors with :ALEDetail
2017-11-12 10:56:53 +00:00
w0rp
4952e2f143 #1098 Add protoc-gen-lint to the list of supported tools 2017-11-12 10:56:53 +00:00
Jeff Willette
8bc44ed585 Added support for linting of proto files (#1098)
* Added support for linting of proto files
* Added function to get the proper protoc command
2017-11-12 10:56:53 +00:00
w0rp
a8c5e0f4dc Simplfy semver handling and share the semver version cache across everything 2017-11-12 10:56:53 +00:00
wuqiong4945
911b6d8f71 add 'output_stream': 'stderr', let golint work 2017-11-12 10:56:53 +00:00
w0rp
0741612db7 Merge pull request #1113 from jungomi/ols-tests
Add tests for ocaml-language-server callbacks
2017-11-12 10:26:36 +00:00
Michael Jungo
cb3a25f276 Add tests for ocaml-language-server callbacks 2017-11-12 02:06:28 +01:00
w0rp
27e2f53ac9 #1108 Support setting b:ale_linter_aliases to a List 2017-11-12 00:11:50 +00:00
w0rp
ae08f80ead #1108 Support using Lists and 'all' for b:ale_linters 2017-11-11 23:55:11 +00:00
w0rp
3111c6c1ca Merge pull request #1111 from elebow/perlcritic-only-warnings
Perlcritic: All issues are warnings
2017-11-11 23:47:11 +00:00
w0rp
f6ac8a9eb9 #1108 Support selecting fixers with Lists 2017-11-11 23:04:08 +00:00
Eddie Lebow
4d44996af6 perlcritic: all issues are warnings
Perlcritic is a style checker, not a syntax validator.

This change was originally proposed by @RsrchBoy in
https://github.com/w0rp/ale/pull/784.
2017-11-11 17:46:21 -05:00
w0rp
b789b9eaad Merge pull request #1110 from jungomi/ocaml-language-server
* Add ocaml-language-server for OCaml and ReasonML
* Remove id from LSP notifications
2017-11-11 22:13:09 +00:00
Michael Jungo
fb00acf734 Remove id from LSP notifications 2017-11-11 19:28:24 +01:00
Michael Jungo
f8fec369e5 Add ocaml-language-server for OCaml and ReasonML 2017-11-11 19:27:41 +01:00
w0rp
9e7c493e7e Fix a typo 2017-11-11 14:27:53 +00:00
w0rp
bac02c9d81 #1095 Cache the sorting of patterns for g:ale_pattern_options 2017-11-11 14:26:54 +00:00
w0rp
8c1d6eda81 #1095 Apply all patterns for g:ale_pattern_options, instead of just the first match 2017-11-11 13:44:12 +00:00
jnduli
6c014a25e8 Add rstcheck linter to check for errors in restructured text (#1090) 2017-11-11 12:10:17 +00:00
Florian Beeres
1ddc3eec6d Handle flow extra errors (#946)
Show more information for Flow errors with :ALEDetail
2017-11-11 12:07:08 +00:00
w0rp
bb271859ef #1098 Add protoc-gen-lint to the list of supported tools 2017-11-10 09:45:07 +00:00
Jeff Willette
27780cbb23 Added support for linting of proto files (#1098)
* Added support for linting of proto files
* Added function to get the proper protoc command
2017-11-10 09:37:23 +00:00
w0rp
d425b8a18a Simplfy semver handling and share the semver version cache across everything 2017-11-09 23:42:54 +00:00
Marcus Zanona
1ad7d5e6ca Remove unnecessary cat command from less#lessc 2017-11-09 19:52:08 -02:00
Marcus Zanona
4bc31fcd18 Fix imported files path lookup on less#lessc linter
Ale saves a temporary file (%t) which does not share the same path as
the original file, breaking import statements with relative URLs.
This fix sends content to `lessc` over stdin and adds
the current file (%s) as one of the included paths, so statements like
`@import '../utils' will correctly resolve based on the current file path.
2017-11-09 13:46:03 -02:00
Marcus Zanona
7ed82ab712 Adjust author info on less#lessc linter 2017-11-09 13:40:24 -02:00
Marcus Zanona
decf8188bc Adjust formatting on less#lessc linter 2017-11-09 13:39:38 -02:00
w0rp
c1fa88e78c Merge pull request #1105 from wuqiong4945/master
add 'output_stream': 'stderr', let golint work
2017-11-09 13:33:10 +00:00
wuqiong4945
bcc215c4e0 add 'output_stream': 'stderr', let golint work 2017-11-09 21:14:29 +08:00
Marcus Zanona
732d8e3ed6 Add support for linting less files with lessc 2017-11-09 10:39:39 -02:00
w0rp
8ef8a35462 Fix #1101 - Ignore no-implicit-dependencies errors until TSLint supports checking via stdin properly 2017-11-09 10:32:41 +00:00
Auri
8a4cf923a8 Add PyLS linter (#1097)
* Support PyLS (python language server)
* Replace pyls#GetProjectRoot and add more config types to ale#python#FindProjectRoot
2017-11-08 17:58:56 +00:00
w0rp
86e8074017 Merge pull request #1093 from ttaylorr/master
ale_linters: add 'dafny' linter
2017-11-08 17:36:22 +00:00
Taylor Blau
da8012971a ale_linters/dafny: lint only saved files 2017-11-08 09:28:24 -08:00
Taylor Blau
105251c1de README: denote that 'Dafny' linter checks files 2017-11-07 22:18:49 -08:00
Taylor Blau
248a5eb2f6 ale_linters: add 'dafny' linter 2017-11-07 22:11:49 -08:00
w0rp
1bf894f48c Fix #1086 - Implement command chaining for fixers 2017-11-07 23:20:14 +00:00
w0rp
d97924b698 Tell users when a fixer does not exist, and make the no fixers message softer 2017-11-07 19:47:20 +00:00
w0rp
e4cd371621 Merge pull request #1063 from aurieh/master
Add dart LSP (resolves #1006)
2017-11-07 11:54:00 +00:00
aurieh
3a57e4d151 Update doc and README for Dart LSP 2017-11-07 10:55:43 +02:00
aurieh
b5254e9760 Add dart LSP (resolves #1006) 2017-11-07 10:55:43 +02:00
w0rp
8e71f82f8f #1006 Fix raw message handling for LSP support in NeoVim 2017-11-06 22:46:32 +00:00
w0rp
3cbf716d72 Merge pull request #1087 from duleorlovic/master
Add example for changing highlight color
2017-11-06 21:15:12 +00:00
Dusan Orlovic
89832884c9 Add example for changing highlight color
Added example on how to actually change the color.
Related to #1077
2017-11-06 14:17:38 +01:00
w0rp
fa7d041c26 Fix #1085 - Add a final newline character to tsserver and LSP messages 2017-11-05 21:41:53 +00:00
w0rp
3c8e6ed51c Modify the shmft tests so they won't mess with your settings 2017-11-05 21:31:41 +00:00
Simon Bugert
716b22d524 Add shfmt fixer for sh files (#1083)
* Add shfmt fixer for sh files
* Add tests for shfmt fixer
2017-11-05 21:24:41 +00:00
David Sierra DiazGranados
7086586b17 Add executable option for phpmd linter (resolves #1076) (#1078)
* Add executable option for phpmd linter (resolves #1076)
* Add test for phpmd executable option
2017-11-05 18:53:12 +00:00
w0rp
7b5108d934 Fix #626 - Automatically use cargo check and cargo check --all-targets for cargo versions that are new enough 2017-11-05 18:37:44 +00:00
w0rp
caed406e16 Fix #1062 - Use <nomodeline> for the ALELint autocmd, so we don not mess with folds, etc. 2017-11-05 17:34:36 +00:00
w0rp
34674e088d Fix #1061 - Handle the filenames returned by javac 2017-11-05 15:33:31 +00:00
w0rp
d851f399c0 Fix #1058 - Ignore all errors with bad calls to jobstop() in NeoVim 2017-11-04 10:54:28 +00:00
w0rp
9c0a5635df #1081 Remove the ale#python#IsExecutable function 2017-11-04 10:46:19 +00:00
w0rp
9010458581 #1081 Use executable() for Python executables on Windows, and rename the test files to .exe so they will pass the executable() check 2017-11-04 10:41:08 +00:00
w0rp
c26e5e277e Fix #491 - Only set -x for shellcheck for versions which support the option 2017-11-03 22:08:26 +00:00
Antoine Reilles
54f44c2d0f windows compatible warning match pattern for erlc (#1071)
* windows compatible warning match pattern for erlc
2017-11-03 18:56:34 +00:00
w0rp
1752ad9ad1 #1074 #1077 Add highlight configuration to the FAQ 2017-11-02 10:39:40 +00:00
w0rp
a09db595f1 Merge pull request #1072 from drrcknlsn/master
Prevent logging of errors in the php linter.
2017-11-01 20:56:10 +00:00
Derrick Nelson
a786e01127 Prevent logging of errors in the php linter. 2017-10-31 20:02:59 -04:00
w0rp
3115d2025a Merge pull request #1068 from maximbaz/patch-1
Put info about lightline-ale in README.md (fixes #1065)
2017-10-31 13:03:02 +00:00
w0rp
9cd0d75c4f Fix #936 - Check the actual files for gosimple and staticcheck 2017-10-31 13:01:01 +00:00
Maxim Baz
0ed639a116 Put info about lightline-ale in README.md (fixes #1065) 2017-10-31 13:26:12 +01:00
w0rp
50f7ad3552 #857 - Add b:ale_fix_on_save for controlling fixing on save for specific buffers 2017-10-30 22:19:57 +00:00
w0rp
1575b3d7dd Merge pull request #1059 from ahmedelgabri/reason-refmt
refmt fixer for ReasonML
2017-10-30 11:30:13 +00:00
Ahmed El Gabri
634eb1920c refmt fixer for ReasonML 2017-10-29 21:48:28 +01:00
w0rp
daecbad543 Fix #719 - Add ALEReset and ALEResetBuffer for removing problems for all buffers or one buffer 2017-10-29 17:03:29 +00:00
w0rp
1aa737cdc9 #817 - Document the buffer toggling options, and define plug mappings for everything 2017-10-29 10:55:02 +00:00
w0rp
5fc2b98b73 #817 Add commands for toggling ALE for only the current buffer 2017-10-28 19:36:16 +01:00
w0rp
ea3a8e3c62 #817 Move code for toggling ALE to its own file 2017-10-28 15:41:14 +01:00
w0rp
6e681d9066 Fix #971 - Add an option for turning errors about missing eslint config files off. 2017-10-28 12:11:33 +01:00
w0rp
0e848b608c Merge pull request #1053 from SamHowie/hackfmt
Add hackfmt fixer
2017-10-27 23:36:16 +01:00
Sam Howie
36898436b5 Add hackfmt fixer 2017-10-27 13:42:55 -07:00
w0rp
73b8181ce6 #1054 - Prevent ALE from adding the after directory to runtimepath too much 2017-10-27 11:38:01 +01:00
w0rp
d4d939bea9 Fix #1039 - Only check the file on disk for dartanalyzer 2017-10-26 23:31:07 +01:00
w0rp
6490d3a5e6 Fix #1041 - Do not request completions shortly after CompleteDone 2017-10-26 23:18:12 +01:00
w0rp
33c2c20e66 Fix #1051 - Support ash and dash for shellcheck and the sh linter 2017-10-26 21:21:42 +01:00
w0rp
3ac92ea529 Fix #1048 - Do not lint files named "." 2017-10-26 20:29:33 +01:00
w0rp
3ab069c9bd Merge pull request #1052 from natw/tflint-no-stdin
don't use stdin with tflint
2017-10-26 20:25:55 +01:00
Nathaniel Williams
22e8050639 don't use stdin with tflint 2017-10-26 14:14:28 -05:00
Nathaniel Williams
e4456a4e0e Add tflint fot Terraform 2017-10-26 19:37:04 +01:00
w0rp
6ed456f99c Merge pull request #1009 from sirbrillig/add/phpcs-include-code-option
phpcs: include sniff code in message
2017-10-26 17:49:46 +01:00
Payton Swick
40f5e54198 Add test for phpcs error code 2017-10-26 12:22:34 -04:00
Payton Swick
aca66a54a5 Include sniff code in message 2017-10-26 12:22:08 -04:00
w0rp
f15c8f4127 #1049 Do not modify runtimepath if the conflict warnings are disabled 2017-10-26 12:26:16 +01:00
w0rp
0702cb59b7 Fix #1045 - Handle both output streams for Cargo 2017-10-26 10:03:10 +01:00
w0rp
5917de565d Fix #491 - Use -x for shellcheck for checking files with sourced files 2017-10-26 00:48:51 +01:00
w0rp
2f5b94e07d Remove redundant code for the GCC handler, and fix bugs with errors for - not being parsed 2017-10-26 00:09:26 +01:00
w0rp
da365134b5 Fix an exception with notes with no previous message 2017-10-25 23:43:09 +01:00
w0rp
7eb16836d0 Fix indentation for the haml-lint file 2017-10-25 23:07:38 +01:00
w0rp
f38ced1e4c Merge pull request #1047 from thenoseman/linter-hamllint_autodetect_config
[PR: hamllint] auto-detect .rubocop.yml and .haml-lint.yml when using haml-lint
2017-10-25 23:01:49 +01:00
w0rp
4af7219078 Make one of the sign tests work in all locales 2017-10-25 22:35:21 +01:00
Gerry Agbobada
25d2af0b25 Handle multiple files localtion lists with gcc handler (#1034)
Handle multiple files in the GCC handler.
2017-10-25 22:29:36 +01:00
Frank Schumacher
b0b91ba897 force add test fixtures for hamllint 2017-10-25 21:35:24 +02:00
Frank Schumacher
45ed37a5d9 auto-detect .rubocop.yml and .haml-lint.yml
Based on path to current file
2017-10-25 20:46:16 +02:00
w0rp
960ae62aaa Make the sign placement test pass more often by using another shell 2017-10-25 01:11:46 +01:00
w0rp
680672117f Make the highlight placement test pass more often by using another shell 2017-10-25 01:05:48 +01:00
w0rp
5029078df3 Set better highlights for write-good 2017-10-25 00:58:16 +01:00
w0rp
94bdabb8c3 Merge pull request #1044 from sumnerevans/mail-linters
#955 Add vale linter for mail files
2017-10-25 00:40:59 +01:00
w0rp
eec529ad9d Fix the write-good tests on Windows 2017-10-25 00:39:23 +01:00
Sumner Evans
7ac07a30b8 Fix #643 - Add support for write-good for many languages 2017-10-25 00:28:06 +01:00
Sumner Evans
780844ad73 #955 add documentation 2017-10-24 17:14:42 -06:00
Sumner Evans
db769fb060 #995 add vale linter for mail files 2017-10-24 17:01:40 -06:00
w0rp
1a5ef969a5 Merge branch 'aurieh-master' 2017-10-24 22:45:30 +01:00
Su Shangjun
d644dc797f example for 'rcfile' on ale_python_pylint_options
Two hyphens instead of one will enable the option `rcfile`.
2017-10-24 22:43:54 +01:00
aurieh
b401772d23 Add Vader tests 2017-10-25 00:39:54 +03:00
Christopher Swingley
1c56bebd7c proselint for mail files (#1037)
Add proselint for mail files
2017-10-24 22:34:38 +01:00
w0rp
fe729dab58 Merge pull request #1030 from grddev/run-tests-osx
Update test scripts to work on OS X
2017-10-24 22:30:42 +01:00
Zack Kourouma
07dad64acb adds fixer support for hfmt (#1027)
Add support for fixing Haskell with hfmt
2017-10-24 22:29:04 +01:00
Diego Oliveira
b172cd8b17 Add phan as a linter for php files (#1026)
Add phan for checking PHP code
2017-10-24 22:25:02 +01:00
w0rp
c248885e57 Merge pull request #1025 from kfox/add-rustfmt-fixer
add rustfmt fixer
2017-10-24 22:20:03 +01:00
w0rp
0e4dd95e5d Merge pull request #1017 from carakan/elixir_format
`mix format` new fixer for elixir lang
2017-10-24 22:13:04 +01:00
w0rp
5a91f7e19f Merge pull request #1043 from fengdasuk19/fengdasuk19-pylint-rcfile
example for 'rcfile' on ale_python_pylint_options
2017-10-24 22:06:38 +01:00
Su Shangjun
c96e7402ba example for 'rcfile' on ale_python_pylint_options
Two hyphens instead of one will enable the option `rcfile`.
2017-10-24 08:11:56 -05:00
aurieh
f0a0aef33d Update doc/ale.txt & README.md 2017-10-24 15:09:56 +03:00
aurieh
4884e33f8b Add checkmake (resolves #866) 2017-10-24 15:03:47 +03:00
w0rp
be5c7a09ce Add a badge for AppVeyor, and remove some trailing spaces from the README 2017-10-23 23:21:50 +01:00
w0rp
b952dda386 Get all tests to pass on Windows 2017-10-23 23:09:40 +01:00
w0rp
231398dddc Get more of the tests to pass on Windows 2017-10-23 01:26:31 +01:00
Carlos Ramos
be1377f6d7 add basic documentation for elixir mix 2017-10-22 19:44:44 -04:00
Carlos Ramos
3212278c91 fix test's and delete unused code 2017-10-22 19:20:38 -04:00
Carlos Ramos
43653ef548 new fixer elixir mix format
(only available in elixir > 1.6)
2017-10-22 19:20:38 -04:00
w0rp
c4579e1809 Merge pull request #1032 from diegoholiveira/tests_phpmd
Fix the regex of phpmd
2017-10-22 18:02:44 +01:00
Diego Oliveira
5b986ce5d3 Fix the regex of phpmd 2017-10-22 14:56:09 -02:00
w0rp
0b0cbfa80a Merge pull request #1022 from 0x6a62/fix-typos
Fix typo
2017-10-22 17:00:16 +01:00
Gustav Munkby
ed93cd1494 Update test scripts to work on OS X
There were a couple of issues
 - `paste` requires a file argument
 - `mktemp` requires a pattern argument
 - `sort` doesn't support `-h`, but `-n` is enough for sorting on numbers, and `-s` was introduced to perform a stable sort instead.

The main issues were that BSD `sed` does not support:
 - Alternation (`\|`) - solved by splitting to multiple patterns
 - Bound shortcuts (`x\+`, `x\?`) - solved by replacing with `xx*` and `x\{0,1\}` respectively
 - Lower-casing (`\L`) - solved by piping through `tr` instead (this will lowercase everything and not only the integration names, but I assumed that wasn't too much of an issue, as a portable alternative for the selective downcasing would be much more involved).
2017-10-22 10:42:36 +02:00
Kelly Fox
35031a0b8a add rustfmt fixer 2017-10-21 12:31:49 -05:00
jb
841acf725c Fix typo 2017-10-21 08:16:59 -04:00
w0rp
3878be9977 Merge pull request #1018 from zkourouma/master
Pretter fixer support for Less filetype
2017-10-21 11:31:15 +01:00
Zack Kourouma
b43ed6baf5 add doc file for less 2017-10-20 18:30:34 -07:00
Zack Kourouma
e023e7a2fe add prettier fixer support for 'less' filetype 2017-10-20 18:29:57 -07:00
w0rp
346c91fb6b Merge pull request #1012 from gosukiwi/patch-1
Add instructions for setting up Lightline
2017-10-20 00:13:02 +01:00
Federico Ramirez
a97afd3380 Add instructions for setting up Lightline 2017-10-19 13:39:49 -03:00
w0rp
658ec4b10e Merge pull request #1010 from rhysd/markdown-remark-lint
add support for remark-lint
2017-10-19 11:27:25 +01:00
rhysd
4339af2bb6 add support for remark-lint 2017-10-19 18:17:04 +09:00
w0rp
5292d2f349 Get more tests to pass on Windows 2017-10-18 23:42:51 +01:00
w0rp
81d993086e #904 - Allow linting to run on save a second after :q fails 2017-10-17 00:37:29 +01:00
w0rp
5946a128c3 Merge pull request #1001 from carakan/tslint_fixer
new tslint fixer for typescript
2017-10-16 23:42:28 +01:00
Carlos Ramos
8a8879a28f fix test't 2017-10-16 12:08:10 -04:00
Carlos Ramos
07ebfbeef0 Add new fixer tslint for typescript, fixes #932 2017-10-16 00:53:17 -04:00
w0rp
a790077136 Merge pull request #998 from svanharmelen/b-fix-734
Fix #734 - Use the correct buffer for the filetype blacklist and such
2017-10-15 10:57:21 +01:00
Sander van Harmelen
090f8a8f38 Fix issue #734
Fixes #734

The main issue was not consitently using the correct buffer.
2017-10-15 11:35:33 +02:00
w0rp
90d4fb139c #977 Complain about the lack of configuration files for scalastyle in such a way that users will be directed towards getting it to work 2017-10-15 00:20:43 +01:00
w0rp
515dcdef29 Fix some Scala documentation grammar and spacing 2017-10-14 23:47:47 +01:00
w0rp
d090dec8b4 Rename the Scala documentation file 2017-10-14 23:41:05 +01:00
w0rp
ef495ba32d #904 Do not run linters on :wq or :x 2017-10-14 23:22:13 +01:00
w0rp
010ebc2459 Fix a spelling mistake 2017-10-14 22:00:53 +01:00
w0rp
b2e6d0dff8 Rename the autocmd test file, as I can never remember the old name 2017-10-14 21:31:44 +01:00
w0rp
69d6ff6020 #904 Do less processing when newer NeoVim versions are exiting 2017-10-14 19:22:19 +01:00
w0rp
40e69794eb Make the getcmdwintype() check ever-so-slightly faster 2017-10-14 17:31:58 +01:00
w0rp
d8ea83e344 Clean up the test variable 2017-10-14 17:27:05 +01:00
w0rp
8eb41dc94c Fix the test for doing nothing for CtrlPFunky buffers 2017-10-14 17:24:29 +01:00
w0rp
6fd10f80de Cut down on the time for the CtrlPFunky check, by first checking if the command exists 2017-10-14 17:11:30 +01:00
w0rp
5204f2dbc2 Break up ShouldDoNothing checks into separate lines, so it's possible to profile them 2017-10-14 16:51:12 +01:00
Jay Thomas
618074a053 Add editorconfig (#997)
Add editorconfig
2017-10-14 15:55:33 +01:00
w0rp
663fe75d0f #965 - Make the cursor echo delay configurable 2017-10-12 23:25:41 +01:00
w0rp
e71c4a8bea #965 - Support limiting the number of signs ALE will set 2017-10-12 23:04:54 +01:00
w0rp
dded246aba Merge pull request #968 from adriaanzon/luacheck-whitespace
Luacheck: Respect warn_about_trailing_whitespace option
2017-10-12 22:06:48 +01:00
Adriaan Zonnenberg
221cb0f8cf Add some extra tests for luacheck whitespace warnings 2017-10-12 22:59:45 +02:00
w0rp
3ddbe48d84 Merge pull request #993 from butlerx/patch-1
Fix xmllint link
2017-10-12 19:06:00 +01:00
Cian Butler
d8a638f38a Fix xmllint link
fix link to xmllint
2017-10-12 10:49:15 +01:00
Carlos Ramos
844354cfed Add new fixer: TrimWhitespace (#991)
add a new fixer: trim_whitespace
2017-10-12 09:27:24 +01:00
w0rp
02c8793c53 #965 Check ale#ShouldDoNothing() less and such often, for better performance 2017-10-11 23:51:41 +01:00
w0rp
be547a0111 Merge pull request #990 from monokrome/master
Use $VIRTUAL_ENV environment variable when present.
2017-10-11 22:18:22 +01:00
Bailey Stoner
620ec32da1 Add a test to ensure $VIRTUAL_ENV is respected. 2017-10-11 13:42:38 -07:00
Bailey Stoner
3859ac0c9b Use $VIRTUAL_ENV environment variable when present. 2017-10-10 14:21:04 -07:00
Linda_pp
70177480ba Add llc integration for LLVM IR (#979)
Check LLVM IR with llc
2017-10-10 10:13:09 +01:00
w0rp
a809c4fa3a Get more random tests to pass on Windows 2017-10-08 23:26:50 +01:00
w0rp
65aa88a7d5 Merge pull request #981 from Kazark/fix-elm-win32
Fix Elm linter for Windows (resolves #980)
2017-10-08 15:33:34 +01:00
Keith Pinson
f21f52343d Fix Elm linter for Windows (resolves #980)
Looks like elm-make only respects /dev/null, even on Windows. The person
who wrote this linter maybe did not test it on Windows, and wrote the
code in the way you would expect to be solid by using NUL on Windows.
However it seems elm-make is not actually making use of /dev/null but
rather using it as a form of flag. Ironically this seems to be what is
already described in the comments; I added some clarification.
2017-10-06 17:26:50 -04:00
w0rp
47577564a2 Get more command callback tests to pass on Windows 2017-10-05 22:31:09 +01:00
w0rp
25045641fb Merge pull request #974 from odinuge/prettier_config
Add all possible config files for prettier
2017-10-04 11:38:28 +01:00
Odin Ugedal
a300014396 Add all possible config files for prettier
Prettier uses cosmiconfig, and therefore it is possible to add different
extensions to the config file. More information can be found here:
https://github.com/prettier/prettier#configuration-file.
2017-10-04 12:30:42 +02:00
aliou
e376f0ae44 gofmt fixer for Go (#970)
Add a gofmt fixer for golang.
2017-10-03 18:54:35 +01:00
w0rp
3ab414de1a Fix #964 - Remove signs when multiple signs end up on a single line 2017-10-03 10:00:16 +01:00
w0rp
7392f808c0 Merge pull request #972 from rhysd/fix-typo
Fix typos
2017-10-03 07:41:44 +01:00
rhysd
753592ca66 Fix typos 2017-10-03 01:11:54 +09:00
w0rp
e0bd490ed9 Get tslint and xmllint command callback tests to pass in Windows 2017-10-01 21:23:42 +01:00
w0rp
54a08c5f8c Add a Scripts dir for tests on Windows 2017-10-01 20:26:18 +01:00
w0rp
5091e2de45 Get fixer tests to work on Windows 2017-10-01 20:23:41 +01:00
w0rp
638ca42082 Use local versions of yapf on Windows, and get the callback tests to pass 2017-10-01 18:47:54 +01:00
w0rp
4634b1be93 Fix Flow and Idris tests for Windows 2017-10-01 18:41:41 +01:00
w0rp
5731616cd2 Get the mcsc handler tests to pass on Windows 2017-10-01 17:36:47 +01:00
w0rp
c76f721b59 Merge pull request #969 from rosmanov/master
Added g:ale_php_phpstan_configuration option
2017-09-30 18:05:43 +01:00
Ruslan Osmanov
a640d3b022 Added g:ale_php_phpstan_configuration option 2017-09-30 23:36:10 +07:00
Adriaan Zonnenberg
1d1b5155e6 Luacheck: Respect warn_about_trailing_whitespace option
See http://luacheck.readthedocs.io/en/stable/warnings.html, warnings
611 to 614.
2017-09-30 16:38:10 +02:00
w0rp
c989ef0fc6 Fix an issue with the check-supported-tools-tables script 2017-09-28 13:32:02 +01:00
w0rp
9fc01bd246 Merge pull request #952 from hernot/master
Add mcsc for checking C# code.
2017-09-28 13:29:55 +01:00
Xristoph Hintermüller
8f6044b8b6 Implemented review recommendations
Implements suggestions and recommendations suggested by the first review
of the "Advance C# linter based on mcs -t:module (#952)" pull request.

- Clarifies and simplifies description of linters and options
- Added links to help file and marked the mcsc linter as to be run only
  when file in buffer is saved or loaded.
- Added comments to the mcsc.vim file to clarify code
- removed type checks considered not necessary be reviewer.
- addresses findings by vader
- removed call to getcwd and cd in vim script
- handler expands file names relative to route of source tree into
  absolute pathes. Fixes errors not being marked when vim is started
  from subdirectory of source tree.
- implements tests for mcs.vim and mcsc.vim linter
2017-09-27 13:21:05 +02:00
w0rp
49b6805b09 Merge pull request #951 from rzane/eslint-fix-config-option
ESLint --config option causes it to not detect node_modules?
2017-09-25 21:38:55 +01:00
Xristoph Hintermüller
0be77c60c5 Added advanced c-sharp linter
The existing c-charp linter used the --syntax check mode of the mono mcs
compiler only. The new mcsc linter tries to compile the files located in
a directory tree located bejond the specified source directory or the
current one if no source is explicitly specified. The resulting module
target is placed in a temporary file managed by ale.
2017-09-25 13:13:21 +02:00
Xristoph Hintermüller
cde50f1091 Added advanced c-sharp linter
The existing c-charp linter used the --syntax check mode of the mono mcs
compiler only. The new mcsc linter tries to compile the files located in
a directory tree located bejond the specified source directory or the
current one if no source is explicitly specified. The resulting module
target is placed in a temporary file managed by ale.
2017-09-25 12:54:50 +02:00
Ray Zane
cb56cbb714 There seems to be a bug in eslint that causes the --config option to
not detect node_modules correctly. The `-c` option, however, works fine.
2017-09-24 13:57:18 -04:00
w0rp
2bd352370f Merge pull request #949 from TheLocehiliosan/shellcheck-option-order
Move dialect setting before user options (shellcheck)
2017-09-23 12:01:33 +01:00
Tim Byrne
3910b025b2 Move dialect setting before user options (shellcheck) 2017-09-22 17:04:00 -05:00
w0rp
70fdeb7c22 Merge pull request #942 from doits/fix_slim_typo
fix typo `RUBUCOP` --> `RUBOCOP` for slim lint
2017-09-18 15:52:13 +01:00
Markus Doits
5a1ebdb633 fix typo RUBUCOP --> RUBOCOP for slim lint
this actually makes 6ebd8f355c work
2017-09-18 12:29:20 +02:00
w0rp
8bc66cff39 Merge pull request #903 from doits/slimlint_directory
Pass the rubocop configuration file to slim-lint.
2017-09-16 17:28:00 +01:00
Markus Doits
6ebd8f355c slimlint: Search for .rubocop.yml and use it
This fixes slim-lint not honoring a `.rubocop.yml` in the file's or
parent directory. Due to the way slim-lint calls rubocop, it requires
the special `SLIM_LINT_RUBUCOP_CONF` env var to pick up the
`.rubocop.yml` if it is not run on the real file (which is the case
here).

See https://github.com/sds/slim-lint/blob/master/lib/slim_lint/linter/README.md#rubocop
2017-09-15 18:56:59 +02:00
w0rp
a59d1ddbf3 Make temporary file detection work on just about all platforms 2017-09-14 00:11:17 +01:00
w0rp
71c2e65d64 Fix a mistake in the flow tests 2017-09-14 00:10:47 +01:00
w0rp
52c933cd72 Report problems in other files for brakeman, and get the tests to pass on Windows 2017-09-13 23:33:13 +01:00
w0rp
3d2bddf4af Get some more random tests to pass on Windows 2017-09-13 23:30:39 +01:00
w0rp
677263f115 Merge pull request #929 from jdsutherland/solium-solidity-linter
Add solidity linter: solium
2017-09-13 20:32:28 +01:00
Jeff Sutherland
7302bedc5e Add solidity linter: solium 2017-09-14 01:59:22 +07:00
w0rp
91df9ba2c0 Fix #924 - Make changing the sign column color work again 2017-09-12 21:17:54 +01:00
w0rp
4e9420d1f5 Fix #921 - Capture both output streams for gosimple and staticcheck 2017-09-12 19:53:23 +01:00
w0rp
e2271b769c Ban getcwd() from the codebase, as it causes problems 2017-09-12 09:36:16 +01:00
w0rp
7f42aedaec Use the same function for finding the ESLint config for eslint --fix and prettier-eslint 2017-09-12 09:20:31 +01:00
w0rp
661ed6e40b Fix #923 Use package.json as a last resort for eslint --fix 2017-09-12 09:10:37 +01:00
w0rp
a7614d9502 Get more tests to pass on Windows 2017-09-11 22:25:15 +01:00
w0rp
8eb99c3cec Fix #922 - Prefer nearer ESLint configuration files with lower precedence filenames for eslint --fix 2017-09-11 21:53:45 +01:00
w0rp
b6a487ccf9 Fix some random test issues for Windows 2017-09-11 00:47:27 +01:00
w0rp
cb8a140141 Require function! to be used instead of function 2017-09-11 00:47:10 +01:00
w0rp
e19a81cb09 Fix #920 - Shut up about E776 2017-09-10 20:13:35 +01:00
w0rp
65e6e50bf8 Explain the table of contents script better, and simplify it a bit 2017-09-10 19:52:01 +01:00
w0rp
9d24cc4047 Fix numerous issues with integration documentation tags and the table of contents, and add a script to check for theses issues 2017-09-10 19:42:45 +01:00
w0rp
c4ad92e458 Move scripts for tests into the test directory, and do not export the Batch script for running tests 2017-09-10 13:19:08 +01:00
Clément DOUIN
18a7d32c4c Elm local install support (#915)
* Add Elm support for npm local installation
2017-09-10 12:58:42 +01:00
w0rp
c11d2ae375 Fix an SML variable init bug, and get the SML cm file tests to pass on Windows 2017-09-10 00:20:05 +01:00
w0rp
1a52a2b880 Get the TSLint handler tests to pass on Windows 2017-09-10 00:06:31 +01:00
w0rp
18f4d5a6da Simplify some Rust handler code, and get the Rust handler tests passing on Windows 2017-09-10 00:06:31 +01:00
Clément DOUIN
f3da8f45c1 Add elm-format as a new fixer (#916)
* Add elm-format as a new fixer
2017-09-09 21:30:20 +01:00
w0rp
b3a9a0e3e8 Fix some path issues, and get lsp dir tests passing on Windows 2017-09-09 18:39:56 +01:00
w0rp
8055a03067 execute the set encoding test setting to get Vint to shut up 2017-09-09 18:22:59 +01:00
w0rp
f238e15f10 Fix more random Windows test issues 2017-09-09 18:03:34 +01:00
w0rp
574cb11594 #917 Cover the old _args option for flake8 with a test, just in case 2017-09-09 13:28:46 +01:00
w0rp
d9bdbd5a58 Add a Batch script for running tests on Windows 2017-09-08 22:15:39 +01:00
w0rp
a33b3f189d Switch the AppVeyor clone directory to C:\testplugin 2017-09-08 21:54:43 +01:00
w0rp
26195efa0b Get some more random tests to work on Windows 2017-09-08 21:51:49 +01:00
w0rp
1c5253b928 Fix the smoke_test.vader file on Windows 2017-09-08 21:38:51 +01:00
w0rp
89cc8ca314 Fix #912 - Close lists automatically when g:ale_open_list is set to 'on_save' again 2017-09-08 20:10:11 +01:00
Sven-Hendrik Haase
ff28836616 Add GLSL linter using glslang (#914)
* Add a glslang linter for GLSL
2017-09-08 11:06:47 +01:00
BlahGeek
73d031d7ea Add cuda nvcc linter (#874)
* add cuda nvcc linter
2017-09-07 19:23:58 +01:00
w0rp
555d23c035 Now remove the version command and the dummy file 2017-09-07 00:00:00 +01:00
w0rp
8198c2b63c Add a blank file for testing AppVeyor 2017-09-06 23:57:01 +01:00
w0rp
b8963f21bf Now try to cache Vim and Vader for AppVeyor CI 2017-09-06 23:55:58 +01:00
w0rp
9474a9d319 Fix some PowerShell stderr BS 2017-09-06 23:52:57 +01:00
w0rp
963e16870b Try and set up Vader only if needed too 2017-09-06 23:47:51 +01:00
w0rp
02aad45aa6 Fix some PowerShell syntax errors 2017-09-06 23:45:12 +01:00
w0rp
59fd98b8b2 Try and set up AppVeyor so it will only download Vim if the directory is not there 2017-09-06 23:43:49 +01:00
w0rp
fbc846b4ba Try and get AppVeyor to run a single test 2017-09-06 23:28:39 +01:00
w0rp
dd77b6eac5 Set up Vim runtime files in AppVeyor too 2017-09-06 22:53:39 +01:00
w0rp
e951056e7b Try and set up Vader in AppVeyor 2017-09-06 20:03:37 +01:00
w0rp
2be39d3e1c Try again 2017-09-06 19:56:56 +01:00
w0rp
2b34cf098a Try different things for the Vim executable path 2017-09-06 19:55:45 +01:00
w0rp
9821b2c414 Disable builds for AppVeyor 2017-09-06 19:53:53 +01:00
w0rp
6661ff9794 Use absolute paths for the unzipping part in AppVeyor 2017-09-06 19:50:51 +01:00
w0rp
a9823cbfd5 Try to download and unpack a Vim console binary for AppVeyor 2017-09-06 19:47:11 +01:00
Peter Renström
03f1c1e81b Add 'prettier' fixer support to TypeScript, CSS, SCSS and JSON (#910)
* Add prettier fixer support for typescript

* Add prettier fixer support for css and scss

* Add prettier fixer support for json

* Use getbufvar() to get &filetype
2017-09-06 15:21:26 +01:00
w0rp
c277cdef8c Add an option for ignoring the output of TSLint if a file contains a single blank line 2017-09-06 11:17:21 +01:00
w0rp
ad1bd424fa Run installation steps in install instead for AppVeyor 2017-09-06 10:14:25 +01:00
w0rp
a170cc806a Do not mess with newlines for git config 2017-09-05 23:13:33 +01:00
w0rp
22a0cd6e05 Try and get appveyor to clone the repo by using a clone depth 2017-09-05 23:00:42 +01:00
w0rp
a21a75c19e Fix the .mak file name 2017-09-05 22:34:31 +01:00
w0rp
8595fcdeb9 Try and get nmake to work in AppVeyor 2017-09-05 22:32:34 +01:00
w0rp
5239ef9c83 Try and set up appveyor for building Vim 2017-09-05 22:26:14 +01:00
ode79
edfe65a22c Fix OCaml helptag name to match readme. (#909)
* Fix an OCaml help tag in the README
2017-09-05 13:50:03 +01:00
w0rp
e53debe000 Fix #907 - Stop LSP integration breaking with empty string keys in NeoVim 2017-09-04 00:15:13 +01:00
w0rp
c2f547b6e3 Merge branch 'support-lintr-options' 2017-09-03 23:37:04 +01:00
w0rp
984c4f0658 Document the new lintr option 2017-09-03 23:36:58 +01:00
w0rp
1ea5400e8d Test lintr options configuration 2017-09-03 23:29:12 +01:00
Alex Axthelm
b60a7224ab allow options to be set for lintr 2017-09-03 23:14:26 +01:00
Alex Axthelm
29ffd5134f Allow for lintr options 2017-09-03 23:14:26 +01:00
w0rp
6833e01f23 #894 - Replace ugly temporary filenames for Haskell problems with the buffer's basename 2017-09-03 21:53:48 +01:00
w0rp
0aa8640d07 Fix a typo 2017-09-03 20:14:42 +01:00
w0rp
e235e5a6a5 Make the grammar a little better for the g:ale_type_map option 2017-09-03 20:12:54 +01:00
Jake Zimmerman
63e8946fc8 Detect and use CM files for smlnj (#884)
* Detect and use CM files for smlnj

* Split into two checkers

- one for CM projects
- one for single SML files

* Fix some typos

* Fix error caught by writing tests

We want to actually use `glob` to search in paths upwards from us.
(Previously we were just searching in the current directory every time!)

* Fix errors from former test run

* Write tests for GetCmFile and GetExecutableSmlnj

* Typo in 'smlnj/' fixture filenames
2017-09-03 19:56:14 +01:00
w0rp
c7fbcb3c02 Fix #899 - Make the quickfix and loclist windows close again 2017-09-03 19:44:00 +01:00
w0rp
d482b8e3b7 Fix #891 - Do not check ctrlp-funky windows 2017-09-03 18:24:43 +01:00
w0rp
f9b43a566c #505 - Do not lint files on enter if the option for linting when the filetype changed is on 2017-09-02 16:57:01 +01:00
w0rp
52eff3bd83 Log commands that are run for ALEFix for ALEInfo 2017-08-31 16:46:40 +01:00
w0rp
7c2a5052a8 Fix #895 - Run Node.js scripts with node.exe instead of node on Windows 2017-08-31 13:12:24 +01:00
w0rp
1d86a724f2 Merge branch 'fix-prettier-eslint-fixer' 2017-08-30 22:49:55 +01:00
w0rp
f36f38c960 Cover the prettier-eslint changes with tests, and fix some problems 2017-08-30 22:49:46 +01:00
w0rp
301d30229b Fix doc tag alignment 2017-08-30 22:23:59 +01:00
Pavel Pertsev
05ce86ea33 Add prettier-eslint legacy option 2017-08-30 22:21:45 +01:00
Pavel Pertsev
6e423a94cd Fix docs for prettier-eslint ver 2017-08-30 22:20:35 +01:00
Pavel Pertsev
c09f8f5764 Passthrough eslint config to prettier-eslint 2017-08-30 22:17:16 +01:00
w0rp
33278f0fce Merge branch 'c-clang-tidy' 2017-08-30 22:11:51 +01:00
w0rp
9958a8d32e Add tests for the c version of clang-tidy 2017-08-30 22:11:04 +01:00
w0rp
ed9cdca127 Merge remote-tracking branch 'randrej/master' into c-clang-tidy 2017-08-30 22:08:41 +01:00
w0rp
fca77266bd Complain about badly aligned documentation on Travis CI, and fix some existing problems 2017-08-30 21:56:43 +01:00
w0rp
688212130d Fix the tag alignment for the tslint documentation 2017-08-30 21:29:19 +01:00
w0rp
3bde390c58 Merge branch 'tslint-rules' 2017-08-30 21:27:34 +01:00
w0rp
0cdb653c9c Cover the tslint rules option with a test 2017-08-30 21:27:28 +01:00
w0rp
40dca63891 Merge remote-tracking branch 'jclem/master' into tslint-rules 2017-08-30 21:21:03 +01:00
w0rp
b8f5a4923c Merge pull request #892 from jparise/thrift
Add a linter for Apache Thrift IDL files
2017-08-30 19:46:17 +01:00
Jon Parise
f4c5d29c64 Add a linter for Apache Thrift IDL files
This linter works by invoking the `thrift` compiler with the buffer
contents and reporting any parser and code generation issues.

The handler rolls its own output-matching loop because we have the
(unfortunate) requirement of handling error output that spans multiple
lines.

Unit tests cover both the command callback and handler, and there is
initial documentation for all of the option variables.
2017-08-30 11:08:06 -07:00
w0rp
c7536fb4fd Merge pull request #889 from bb010g/patch-1
Gradle support for javac
2017-08-30 10:26:27 +01:00
w0rp
3152e5c207 Fix #888 - Disable pycodestyle by default 2017-08-30 09:13:49 +01:00
Brayden Banks
d08d2dac79 Gradle support for javac
Based off of #745.
2017-08-29 15:39:23 -07:00
w0rp
8264e265a8 Make the check-supported-tools-tables script work on more machines 2017-08-29 17:00:09 +01:00
w0rp
ec178b0b3b Add a missing scriptencoding line 2017-08-29 16:57:08 +01:00
aliou
b36882e72e Add support for prettier configuration file. (#886)
* Add support for prettier configuration file.

As of version 1.6.0, prettier allows passing a `--config` argument with
a path to a configuration file.

* Add test prettier configuration file.

* Add option to use local prettier configuration.

* Add description for new prettier option.

* Also check if the config is present before using it.
2017-08-29 16:05:19 +01:00
w0rp
87fb72346a Merge pull request #885 from morhetz/add-prettier-d-fixer
Add prettier_d fixer path
2017-08-29 11:12:23 +01:00
Pavel Pertsev
2a238fda9e Add prettier_d fixer path 2017-08-29 11:46:53 +03:00
w0rp
54900d5216 Do not export the check-supported-tools-tables script 2017-08-28 22:17:03 +01:00
w0rp
22db934db9 Do not bother using hyperlinks for the table notes, which looks better 2017-08-28 22:12:41 +01:00
w0rp
4a0735a195 Add spaces before exclamation mark markers, which reads better 2017-08-28 22:10:33 +01:00
w0rp
0827cb5483 Use two exclamation marks for marking lint file linters, which are easier to see and click 2017-08-28 22:08:55 +01:00
w0rp
8e3c1dbd11 Fix - #883 Document linting behavior better, sync up the lists of supported tools, andautomatically demand that they stay in sync 2017-08-28 22:05:12 +01:00
w0rp
b031531e79 #869 - Detect the shell dialect from the hashbang for shellcheck 2017-08-28 19:16:23 +01:00
w0rp
73ec83d055 Handle jobstart() returning -1 in the NeoVim 0.2.0, just in case 2017-08-28 15:25:18 +01:00
w0rp
908e94622e #868 - Prefer cmd.js files for executing standard 2017-08-26 18:11:27 +01:00
w0rp
b9cf450684 Set the end column for some Vint problems 2017-08-26 17:23:20 +01:00
w0rp
e13651c16d Fix #825 - Downgrade signs when problems change 2017-08-26 16:38:27 +01:00
w0rp
cdd1ddffdb Fix #876 - Save history in a separate buffer variable so history works when linting is disabled 2017-08-25 22:22:26 +01:00
Michael
8f8d015dae Add pycodestyle Python linter support (#872)
Add a pycodestyle linter
2017-08-25 12:46:56 +01:00
Peter Renström
4bea50b82f Add clang-format fixer for C/C++ (#873)
* Add clang-format fixer for C/C++

* Document clang-format options

* Refer ale-cpp-clangformat to ale-c-clangformat
2017-08-24 22:49:43 +01:00
w0rp
623fdf212c Include executable checks in ALEInfo 2017-08-23 21:41:29 +01:00
w0rp
0507503aa7 #653 Set loclists better when taking data from previous buffers 2017-08-22 22:45:55 +01:00
w0rp
80c7fbcefe Remove some redundant eslint test code 2017-08-22 21:40:00 +01:00
Eric Stern
2f19cf874b Suppress warning about .eslintignore'd file (#836)
* Suppress warning about .eslintignore'd file

* Fix slightly ironic lint error

* Lock error suppression behind a variable; add docs and tests
2017-08-22 21:35:09 +01:00
w0rp
1a524ca63e #653 - Always set loclist or quickfix in a timer callback, which prevents errors E924, E925, and E926 2017-08-22 21:19:36 +01:00
w0rp
47a8ebc8b9 Prevent .swp files from causing the tests to hang in Vim 8 2017-08-22 21:08:32 +01:00
w0rp
9d3bda4441 Merge pull request #865 from jez/erubis-linter
Add erubis linter
2017-08-22 10:33:08 +01:00
Jake Zimmerman
b356d56448 Add erubis linter
This linter works largely the same as the existing `erubylint` linter,
except it works with `erubis` instead of `erb` as the driving command.
2017-08-21 13:51:42 -07:00
w0rp
a3299bf03a Fix #864 - Use the user's configured executable for phpstan for executable() checks 2017-08-21 18:42:18 +01:00
w0rp
cc02eb8a5a #653 Show errors from other files for mypy 2017-08-20 17:43:42 +01:00
w0rp
456378cb53 #653 - Jump to the position which Vim does not jump to for moving from quickfix/loclist items to other buffers 2017-08-20 15:59:27 +01:00
w0rp
47e681529b Merge pull request #862 from notomo/add-phpcbf-fixer
add phpcbf fixer
2017-08-20 13:42:03 +01:00
w0rp
4c6b58f70c Fix some indentation 2017-08-20 13:37:21 +01:00
Michiel Westerbeek
d646ebda72 Added new linter for GraphQL: gqlint (#863)
* Added new linter for GraphQL: GQLint

* added help-files
2017-08-20 13:36:46 +01:00
w0rp
c7193e775e #653 Document the automatic error prompt closing behaviour 2017-08-20 13:35:27 +01:00
w0rp
753cf5da95 #653 - Automatically accept annoying loclist and quickfix errors from Vim 2017-08-20 13:27:18 +01:00
tmn-o3
5a9a365aed add phpcbf fixer 2017-08-20 05:47:21 +00:00
w0rp
e5d0a17694 #653 - Explain the new filename key support in the documentation 2017-08-20 00:16:28 +01:00
w0rp
7112776d1b #653 Update tslint to set the filename key for problems in other files 2017-08-20 00:05:15 +01:00
w0rp
fb0adc602e #653 Treat temporary filenames as being for the current buffer 2017-08-19 21:18:27 +01:00
w0rp
9d6883561c #653 Set problems from other buffers when buffers are first checked 2017-08-19 20:15:46 +01:00
Dmitri Vereshchagin
b2d3764a18 Syntaxerl linter feature check (#861)
* Add feature check for SyntaxErl linter

* Escape SyntaxErl executable path in commands
2017-08-19 18:54:23 +01:00
w0rp
20e64fbae0 #860 Only enable the new option for setting the original filename for SyntaxErl if an option is on in ALE 2017-08-19 15:48:29 +01:00
w0rp
f8de08faf0 Merge pull request #860 from dmitrivereshchagin/update-syntaxerl-linter
Add original filename to SyntaxErl command
2017-08-19 15:37:06 +01:00
Dmitri Vereshchagin
18cb9a725d Add original filename to SyntaxErl command 2017-08-19 17:18:48 +03:00
Dmitri Vereshchagin
e9e1bec772 Update SyntaxErl linter tests 2017-08-19 17:18:48 +03:00
w0rp
fb0c931b2d Update the documentation to mention the new behaviour for quickfix 2017-08-19 14:35:01 +01:00
w0rp
5c839c4825 #653 Collect items for quickfix from all buffers, and de-duplicate them. Set filename items in quickfix and loclist. 2017-08-19 14:28:51 +01:00
w0rp
9c6e25d8d8 Stress the need for tests even further 2017-08-19 13:14:53 +01:00
w0rp
be4347084e Increase the default maximum completion suggestions to a more useful but safe level, and filter before requesting details, which is faster 2017-08-18 22:34:18 +01:00
w0rp
8cc7cd3aa1 Change the completeopt setting just before showing suggestions too, which works better 2017-08-18 21:06:21 +01:00
w0rp
41c4f3431c Fix #858 - Fix the stack ghc-mod command 2017-08-18 19:33:23 +01:00
w0rp
2560cdd56e Update the summary in the README for fixing and completion support 2017-08-18 00:13:08 +01:00
w0rp
2365fd2948 Document completion support for ALE, and expand the fixer documentation a little 2017-08-18 00:08:58 +01:00
w0rp
0a282eb76a Automatically adjust the completion options when using completion while you type 2017-08-17 23:06:02 +01:00
w0rp
342e83db60 Include the ruleName for errors in tslint problems 2017-08-16 10:37:36 +01:00
w0rp
17a76a7403 Cover completion with more tests 2017-08-16 00:45:46 +01:00
w0rp
797b03b35e Change the help file heading for clarification 2017-08-14 23:52:13 +01:00
w0rp
5af82312fb Set up one BufEnter event used for everything, and add tests for linting when the filetype changes 2017-08-14 23:31:54 +01:00
w0rp
1680f7af63 Fix a bug where the sign column was not closed some of the time, etc. 2017-08-14 10:00:46 +01:00
w0rp
79701f6f20 #653 Skip filetype keys in g:ale_buffer_info during cleanup 2017-08-13 22:27:01 +01:00
w0rp
2d02de33d4 #653 - Filter items based on the buffer number for signs 2017-08-13 16:30:46 +01:00
w0rp
ea124c49d0 Cover filtering out items from other buffers for highlights 2017-08-13 16:04:17 +01:00
w0rp
a5d7bb449b Merge pull request #846 from voanhduy1512/ghc-mod
Make ghc-mod linter check current buffer
2017-08-13 15:30:46 +01:00
Vo Anh Duy
626568d66d Make ghc-mod be awared of cabal file
Right now ghc-mod linter check temp file instead of current buffer,
which cause the problem that it can't detect cabal file and raise
missing package error.

To fix that we need to run ghc-mod check with actual path of the current
file and with ghc-mod option `--map-file` to redirect temp file source
code to actual one
2017-08-13 20:49:26 +08:00
w0rp
ae6cecabb6 #653 Filter items based on the buffer number for problem counts 2017-08-13 13:24:10 +01:00
w0rp
f67fc43d9b Simplify the loclist jumping code a little 2017-08-13 13:06:22 +01:00
w0rp
c6d11f4281 #653 - Filter out other buffers for loclist jumping 2017-08-13 13:02:59 +01:00
w0rp
b6f0b17eaf Merge pull request #848 from ilex/master
Fix bug with ALEPrevious for blank lines.
2017-08-13 11:02:55 +01:00
ilex
bc548b2ef9 Fix bug with ALEPrevious for blank lines.
ALEPrevious (as well as ALEPreviousWrap) does not work if there is an
error in empty line like 'W391: blank line at end of file' in python.
2017-08-13 11:56:41 +03:00
w0rp
e6b6146731 #653 - Fix loclist jumping so it works with buffer numbers 2017-08-12 14:49:02 +01:00
w0rp
b300b0646d Fix a failing test 2017-08-12 14:45:22 +01:00
w0rp
c14886e479 #653 - Include the buffer number in sorting of items 2017-08-12 14:37:56 +01:00
w0rp
c52a4910bf #653 - Update the loclist binary search to work with buffer numbers, to filter out items for other buffers 2017-08-12 14:27:47 +01:00
w0rp
7614560a6e #468 - Do not try to echo things for a while if something goes wrong 2017-08-12 10:47:06 +01:00
w0rp
8e9130d66e Use a shorter default completion delay, which works better 2017-08-11 10:50:59 +01:00
w0rp
78b9ae0f1c Add a fix function for breaking up long Python lines, which is hidden for now 2017-08-11 10:31:25 +01:00
w0rp
d5ae3201a4 Ban !=# and !=? from the codebase 2017-08-11 00:31:42 +01:00
w0rp
b1462ac66c #653 - Pass on filenames for loclist items 2017-08-10 23:08:40 +01:00
Scott Bonds
322910dc0b Add linter for Idris (#838)
* Add linter for Idris

* Fix parsing warnings and column ranges in Idris linter

* Make Idris linter configurable. Fix help tag.
2017-08-10 21:09:58 +01:00
w0rp
dcf7cbe366 Merge pull request #842 from gfontenot/gf-swiftformat
Add support for SwiftFormat as a fixer
2017-08-10 21:06:55 +01:00
w0rp
34aa3437e0 Pass extra rubocop options in the middle instead, and fix the Vader test so it can be run multiple times in Vim 2017-08-10 14:57:30 +01:00
Miguel Palhas
0c26e8945c Rubocop fixer now uses g:ale_ruby_rubocop_options (#841)
* Rubocop fixer now uses g:ale_ruby_rubocop_options

* Adds spec
2017-08-10 14:52:54 +01:00
w0rp
9ae2df1958 Automatically check for invalid help tag references, and fix some existing documentation issues 2017-08-10 10:45:12 +01:00
w0rp
7dee9da0f2 Fix documentation for the PHP langserver options 2017-08-10 10:28:42 +01:00
w0rp
2dcd2ee4da Fix some broken tag links 2017-08-10 10:14:42 +01:00
w0rp
b9f31621e4 Move --format=default in the flake8 command to the return value, and remove extra spaces in the tests 2017-08-10 09:58:32 +01:00
w0rp
abcf2909e6 Merge pull request #837 from matthewgrossman/master
Default flake8 to --format=default
2017-08-10 09:56:39 +01:00
Gordon Fontenot
4709e67627 Add support for SwiftFormat as a fixer
SwiftFormat is a tool that can be used to format Swift files. This commit adds
support for using SwiftFormat as a fixer from ALE. It looks for executables in
the Pods directory, then the Pods directory for a React Native project, then
finally falls back to the globally installed instance if neither of those were
found.

https://github.com/nicklockwood/SwiftFormat
2017-08-09 12:41:21 -05:00
Gordon Fontenot
2b546a50dc Fix link for SwiftLint 2017-08-09 12:26:13 -05:00
Matthew Grossman
fe95fcd357 Default flake8 to --format=default 2017-08-09 10:05:56 -07:00
w0rp
670858f774 Fix #468 - Add a cool down period for when things go wrong 2017-08-09 00:05:55 +01:00
w0rp
ac8cc6d991 Document the extra optional argument for ale#Queue 2017-08-08 23:52:28 +01:00
w0rp
16772298ab Simplify some comparisons 2017-08-08 08:43:51 +01:00
w0rp
a535d07f28 Ban use of ==# or ==? in the codebase, and prefer is# or is? instead 2017-08-08 08:39:13 +01:00
w0rp
5010ddc28f Fix #833 - Do not open windows on save when the option is off 2017-08-08 07:29:10 +01:00
w0rp
16cfedf04a Fix #271 - Add the ability to open the quickfix or loclist windows only after saving a file 2017-08-08 00:46:42 +01:00
w0rp
2edea15358 Fix the resetting of selections and annotate it 2017-08-07 22:08:35 +01:00
Adrian Kocis
c18451fba9 added missing visual reselection after quick/location list update (#788)
Reset visual selection after opening loclist or quickfix windows
2017-08-07 21:57:59 +01:00
w0rp
2c4700ab7f #517 - Document arguments for defining LSP linters 2017-08-07 13:31:29 +01:00
w0rp
39ebb431b6 Document the PHP langserver integration 2017-08-07 13:08:51 +01:00
w0rp
f7d7abe5b2 Document the rls linter 2017-08-07 13:00:17 +01:00
w0rp
2d608b9329 The default for ale_rust_cargo_use_check was wrong in the documentation 2017-08-07 09:41:52 +01:00
Andrej Radovic
e4a6da936d Fixed helptag alignment. 2017-08-06 13:15:02 +02:00
Andrej Radovic
70cd1d5a57 Fixed the comments, left only the doc URL 2017-08-06 13:14:09 +02:00
w0rp
593cafa18b Fix #823 - Write Windows files with CRLF 2017-08-05 20:17:25 +01:00
w0rp
747d4fe80b Stop writing a test file in real world usage in some cases 2017-08-05 19:51:38 +01:00
Andrej Radovic
a767578d44 Added clang-tidy for C, too.
A limited number of clang-tidy checks can be used with C, too. I pretty much
copied and refactored the C++ clang-tidy linter, and added some documentation
about C-compatible checks.
2017-08-05 16:42:28 +02:00
w0rp
666cfc6ee2 Fix the completion start position regex matching being off by one 2017-08-04 16:15:48 +01:00
w0rp
9ac74c44fe Tell Vim omnicompletion that tsserver matches are case-insensitive 2017-08-04 13:35:02 +01:00
w0rp
d1023e9c2c Merge pull request #821 from verbitan/nagelfar
Add Tcl nagelfar linter
2017-08-03 23:40:09 +01:00
w0rp
09d50ebe31 Cover the Rust LSP with tests, allow LSP linters to be named anything, and rename the Rust LSP linter to rls 2017-08-02 23:21:30 +01:00
Nick James
a3d2fb5688 Add Tcl nagelfar linter 2017-08-02 23:05:19 +01:00
w0rp
617582c5d3 Use g: for the PHP Vader tests 2017-08-02 22:36:53 +01:00
w0rp
6e07cf5b12 Cover the PHP language server functions with Vader tests 2017-08-02 22:34:09 +01:00
w0rp
1356cf8e01 #517 Enable the PHP language server 2017-08-02 19:44:00 +01:00
w0rp
db531171ac Merge pull request #820 from junegunn/rubocop-cop-name
Rubocop: Show cop name
2017-08-02 18:37:31 +01:00
w0rp
d6557b2c5c Fix indentation and a typo in the gometalinter documentation 2017-08-02 18:36:53 +01:00
w0rp
ad4c7f92cf Merge pull request #819 from deltaskelta/doc-#816
added gometalinter docs - Fix for #816
2017-08-02 18:34:56 +01:00
Junegunn Choi
bc1cf285c2 Rubocop: Show cop name 2017-08-02 13:55:54 +09:00
Jeff Willette
7eb84242ee added gometalinter docs - Fix for #816 2017-08-02 13:34:24 +09:00
w0rp
35913d9ce7 Cover the SaveEvent function with a test 2017-08-01 00:42:22 +01:00
w0rp
a4ffd2f37c #734 - Use the buffer number from the events for entering buffers and saving buffers for checking buffers 2017-08-01 00:03:24 +01:00
w0rp
ec82530247 #734 - Do not clear file linter results when no buffers are run 2017-07-31 22:36:30 +01:00
w0rp
7c32ef104b Merge pull request #813 from mahmost/stylelint-fixer
Add stylelint fixer
2017-07-31 12:30:18 +01:00
Mahmoud Mostafa
eaeb71993f Add stylelint fixer 2017-07-31 02:54:59 +02:00
w0rp
79d4935ccf Cover special LSP initialize response handling with Vader tests 2017-07-30 23:53:46 +01:00
w0rp
2c252c0f12 #517 - Get the Rust language server working in a basic way 2017-07-30 23:34:58 +01:00
w0rp
6000d956f0 When servers never send an initialize response, but instead just publish diagnostics straight away, handle that as an initialize response 2017-07-30 22:18:19 +01:00
w0rp
5810d7faa0 Add some error message handling for LSP, for test purposes 2017-07-30 22:17:29 +01:00
w0rp
84af543907 Fix some bugs so the PHP language server will show errors at least once 2017-07-30 14:42:00 +01:00
w0rp
63b9d9e9df Fix #798 - Handle syntax errors for tsserver 2017-07-27 13:24:32 +01:00
w0rp
fa33faad9e #810 - Handle output which is not JSON in many linters 2017-07-27 00:45:25 +01:00
w0rp
db4d68eae7 Add a fuzzy JSON decoding function for ignoring json_decode errors for linters 2017-07-27 00:06:15 +01:00
w0rp
ded1bc14df #810 Ignore output which isn't JSON for brakeman 2017-07-26 23:17:46 +01:00
w0rp
810e884dbe Remove channel logging 2017-07-26 10:45:21 +01:00
w0rp
fbf59fd4ce Check the active_linter_list only for running linters 2017-07-26 10:44:27 +01:00
w0rp
cfdb41f4d2 Remove a redundant check for tsserver 2017-07-26 10:44:07 +01:00
w0rp
e6f527f954 Merge branch 'lsp-stdio-support' 2017-07-26 10:37:50 +01:00
w0rp
cd860e3e8d #517 Add more code LSP support which makes the tssserver linter behave more like the LSP linters 2017-07-26 10:37:37 +01:00
w0rp
86297a7c65 Fix #804 - Do not run scalac for sbt files 2017-07-26 10:29:46 +01:00
w0rp
e45c16d9bb Fix #796 - Ignore errors for closing the last window 2017-07-24 09:30:41 +01:00
w0rp
e0c014ab8c Disable completion in the Vader test if we temporarily enable it 2017-07-24 09:23:53 +01:00
w0rp
b4d23d700b Set the g:ale_completion_enabled option when completion is enabled or disabled 2017-07-24 09:22:29 +01:00
w0rp
d1424de1f9 Merge pull request #799 from takano-akio/hdevtools-options
Make executable and options configurable for hdevtools
2017-07-24 09:15:16 +01:00
Takano Akio
8ab632e6f2 Make executable and options configurable for hdevtools 2017-07-24 05:50:09 +00:00
w0rp
a0059cfe03 Fix #795 - Handle GCC errors without column numbers 2017-07-23 00:39:59 +01:00
w0rp
12217480f9 Merge pull request #781 from sumnerevans/standard-fixer
Added fixer for Standard linter
2017-07-22 19:33:42 +01:00
w0rp
c1998b170c Update the PR template to stress the need for tests even more. 2017-07-22 19:31:48 +01:00
w0rp
78e37dabb7 Fix #794 - Filter out any preceding lines of Flow output which aren't JSON 2017-07-22 19:21:30 +01:00
Jonathan Clem
6d732b9fb4 Remove trailing whitespace in tslint.vim 2017-07-21 16:09:45 -04:00
Jonathan Clem
710c3ee3d2 Use the tslint_rules_option variable 2017-07-21 15:59:16 -04:00
Jonathan Clem
3bb75a6fde Document g:ale_typescript_tslint_rules_dir 2017-07-21 15:55:55 -04:00
Jonathan Clem
8ea9044667 Add myself to authors for tslint.vim 2017-07-21 15:54:28 -04:00
Jonathan Clem
cddb26558f Add tslint support for rules directory option 2017-07-21 15:52:51 -04:00
Sumner Evans
f3fec6685e added tests for Standard.js 2017-07-21 11:47:41 -06:00
w0rp
ee6dabcc4e Don't mess with compleopt for each completion, as it doesn't work 2017-07-21 14:55:32 +01:00
w0rp
af6830a722 Merge pull request #789 from tmsc4zht/fix_typo_in_doc_ale-go
fix typo in doc/ale-go
2017-07-21 09:33:27 +01:00
Rei MOCHIZUKI
ce845e51f2 fix typo in doc/ale-go 2017-07-21 09:36:40 +09:00
w0rp
87616c5e91 #782 - Do not set the build directory for clang-tidy for header files, which does not work 2017-07-20 14:52:24 +01:00
w0rp
7d1fde292d Update the installation notes for the standard package management sysytem so helptag generation will actually work 2017-07-20 13:45:28 +01:00
w0rp
a5f754a5e0 Fix #786 - Only set --no-local-style for yapf if a configuration file is detected 2017-07-20 11:07:07 +01:00
Sumner Evans
ca83f11bee added fixer for Standard 2017-07-19 14:50:33 -06:00
w0rp
f133ce96f8 Fix heading levels 2017-07-19 13:37:40 +01:00
w0rp
cbdf10a129 Fix #573 - Update the README to recommend installing via the built-in package system 2017-07-19 13:36:30 +01:00
w0rp
0b50ebb0f0 Fix #779 - Handle empty output for tslint 2017-07-19 10:26:03 +01:00
w0rp
235fc90e22 Fix #308 - Check Dart files with dartanalyzer 2017-07-18 23:57:33 +01:00
w0rp
aa94d0902a Fix #710 - Show hlint suggestions as info items, and include end line and column numbers 2017-07-18 13:14:02 +01:00
w0rp
5a6ffc2804 Add a missing test file 2017-07-18 12:34:22 +01:00
w0rp
0931e99ea4 Fix #775 - Run eslint.js via node on Windows for eslint --fix 2017-07-18 12:28:20 +01:00
w0rp
a8a4df05e6 Fix #776 - Do not add ; echo for Windows for Flow 2017-07-18 11:46:59 +01:00
Matthew Turland
da410caff8 Add yaml swaglint linter (#771)
* Add yaml swaglint linter
2017-07-17 20:28:21 +01:00
w0rp
a6cc492a99 Limit the suggestions only after filtering them 2017-07-17 17:39:11 +01:00
w0rp
27feab7e3a Filter the completion results by the prefix we used 2017-07-17 15:31:32 +01:00
w0rp
eab77b7072 #703 Add arguments to avoid generating plist files if no build directory is detected for clang-check 2017-07-17 10:19:08 +01:00
w0rp
3b1bc2bd13 Fix another executable callback typo 2017-07-17 00:19:33 +01:00
w0rp
92918fd841 Fix an executable_callback typo 2017-07-17 00:18:43 +01:00
w0rp
23ea62d40a #711 - Make the cpplint executable configurable 2017-07-17 00:17:59 +01:00
w0rp
3352a6c9df #711 - Make the clangtidy executable configurable 2017-07-17 00:07:18 +01:00
w0rp
fe70742bb9 #711 - Make the clangcheck executable configurable 2017-07-16 23:35:10 +01:00
w0rp
9e83878900 #711 - Make the gcc executables configurable 2017-07-16 22:41:15 +01:00
w0rp
58717e05a3 #711 - Make the cppcheck executables configurable 2017-07-16 22:11:43 +01:00
w0rp
54ff573174 #711 - Make the clang executables configurable 2017-07-16 21:37:10 +01:00
w0rp
bd5ff5b1e5 Merge pull request #774 from dmitrivereshchagin/syntaxerl-linter
Add SyntaxErl linter
2017-07-16 15:06:55 +01:00
Ardis
7d174b0056 Added phpstan linter for php. (#772)
* Added phpstan linter for php.
2017-07-16 15:04:25 +01:00
Dmitri Vereshchagin
1aea6a34ff Add SyntaxErl linter
These changes add [SyntaxErl][1] integration.  SyntaxErl is a syntax
checker tool for Erlang.

[1]: https://github.com/ten0s/syntaxerl
2017-07-16 15:35:21 +03:00
w0rp
4fa66ab627 Fix #560 #763 - Silence errors for setting signs, and do nothing for dirvish 2017-07-16 01:15:07 +01:00
w0rp
15c48650e7 #739 - Document the end_col and end_lnum keys for the loclist format 2017-07-16 00:40:20 +01:00
w0rp
cad9fc19c6 Fix #773 - Do not clear the loclist when closing the loclist window 2017-07-15 18:44:45 +01:00
w0rp
507e32e91c #764 - Update the documentation to mention how to echo messages with the ALELint autocmd 2017-07-14 00:33:12 +01:00
w0rp
5afbc9b701 Simplify the tests for the ALELint autocmd command 2017-07-14 00:33:12 +01:00
Kevin Kays
4c50aec79c Add scalastyle linter (#766)
* Add support for scalastyle

* Add scalastyle docs

* scalastyle support for column numbers

* off by one column

* Add tests for scalastyle command and handler

* update readme for scalastyle

* allow full scalastyle options instead of just config file

* fix indentation

* allow scalastyle config file in parent directories by a couple names.

* check for missing match args with empty

* remove echo

* use a for loop
2017-07-13 23:41:01 +01:00
w0rp
4c6c5bf84f #697 - Remove highlights more thoroughly 2017-07-13 23:27:02 +01:00
w0rp
b50ae96413 #769 Ignore stderr output and output without JSON we can read for rubocop 2017-07-13 22:47:43 +01:00
w0rp
f7f6f6541d Make tsserver completion more reliable, but not quite ready for documentation yet 2017-07-13 11:59:33 +01:00
w0rp
bc97735b6d Merge pull request #767 from elebow/rubocop-handle-empty-files-output
Rubocop: handle empty 'files' array in output
2017-07-13 09:41:36 +01:00
Eddie Lebow
dcbb0ffee5 Rubocop: handle empty 'files' array in output
The handler previously assumed there would be at least one entry in the
'files' array in the output JSON. It looks like this in the normal case:

  "files":[{"path":"app/models/image.rb","offenses":[]}]

But if RuboCop's config excludes the specified input files, causing no
files to be linted, the output is emptier:

  "files":[]

This change causes the handler to treat that case correctly, and also
exit early if the reported offense_count is zero.
2017-07-12 19:53:58 -04:00
w0rp
5885954197 Fix #760 - Report problems with configuration files for rubocop 2017-07-12 22:41:06 +01:00
Eddie Lebow
bc32e24203 Add rails_best_practices handler (resolves #655) (#751)
* Move FindRailsRoot() to more general location

* Add rails_best_practices handler (resolves #655)

* Update documentation for rails_best_practices

Also add brakeman to *ale* documentation.

* rails_best_practices: allow overriding the executable

* rails_best_practices: format help correctly

* rails_best_practices: capture tool output on Windows
2017-07-12 10:43:47 +01:00
w0rp
400580e4e8 Merge pull request #762 from bugant/fix-function-doc-for-FindProjectRoot
Fix docs for FindProjectRoot function
2017-07-12 09:23:14 +01:00
w0rp
9e0d7a9d8c Merge pull request #761 from svanharmelen/f-improve-regex
Fixup #756 (gometalinter)
2017-07-12 09:22:34 +01:00
Matteo Centenaro
ff80b23ee1 Fix docs for FindProjectRoot function 2017-07-12 10:00:42 +02:00
Sander van Harmelen
b2be833744 Fixup #756
The real fix was not using absolute paths anymore (so not expanding with the `:p` option). The regex was correct and should at least include the `^` character to make sure the string starts with the given path/filename and not references the path/filename in some error description.
2017-07-12 09:51:44 +02:00
w0rp
340c0bbac5 #756 Escape the paths used for the --include parameter for gometalinter, which uses RE2 2017-07-11 23:47:21 +01:00
w0rp
d12e990f73 Merge pull request #759 from julianandrews/docs-typo-fix
Fix documentation typo
2017-07-11 23:18:48 +01:00
Julian Andrews
bbabdd0043 Fix documentation typo 2017-07-11 16:14:18 -06:00
w0rp
a96cc92edf Merge pull request #756 from svanharmelen/b-gometalinter
Make gometalinter work again
2017-07-11 23:13:28 +01:00
w0rp
7b73204f25 Fix #747 - Lint and fix files after they have been been written to disk, not during writing them 2017-07-11 22:19:26 +01:00
Matteo Centenaro
505d114a68 Look for ini file to spot python project root (#755)
* Look for ini file to spot project root

When looking for the project root folder it would be better
to check for some well-known init file instead of __init__.py.
Indeed, with python3 it is now possible to have namespace modules
where intermediate dirs are not required to include the __init__.py file.

* Break if statement conditions over several lines

* Add blank lines for the if block

* Add test for FindProjectRoot

* Typo: missing / for MANIFEST.in

* Fix test for non-namespace package

* Add more test cases
2017-07-11 21:57:37 +01:00
Sander van Harmelen
5c7b55edec Make gometalinter work again
They changed their logic to use related paths instead of absoluut paths (see [here](a04df08be5 (diff-04424ed7c660c10495a54e8d11be89eaR253)))

This fixes the linter by also using relative paths…
2017-07-11 17:13:04 +02:00
Jake Zimmerman
768f761017 Prefer --fast for stack-build (#754)
* Vim scripts shouldn't have hyphens

Especially not ones that will be autoloaded. You can't have a hyphen in
a function name, so autoloading functions based on filename will fail.

* Add g:haskell_stack_build_options, default: --fast

If we're going to use the --fast option, we may as well go the whole 9
yards and let the user configure the 'stack build' flags.

* Create documentation for stack-build options
2017-07-11 13:05:13 +01:00
w0rp
05d3bb12dd Merge pull request #752 from elebow/brakeman-cleanup-unused-cache-var
Brakeman: Remove unused cache var from tests
2017-07-11 11:36:50 +01:00
Eddie Lebow
78e0029488 Fix comment typo 2017-07-11 01:30:28 -04:00
Eddie Lebow
eb79b52a9a Brakeman: Remove unused cache var from tests 2017-07-11 01:30:06 -04:00
Michael Pardo
d787050fa8 Kotlin and general Gradle support. (#745) 2017-07-10 23:03:36 +01:00
w0rp
29d0a20dc3 Fix the flow command tests so they will run on my machine 2017-07-10 21:44:51 +01:00
w0rp
751d965265 Fix #749 - Use /bin/sh when the shell is fish 2017-07-10 21:35:35 +01:00
w0rp
b44f6053d1 Fix #730 - Lint files on save even when nothing was fixed 2017-07-10 13:40:22 +01:00
w0rp
82dd80c692 Fix #746 - Keep highlights from other plugins when buffers are hidden 2017-07-10 00:02:49 +01:00
w0rp
6a84605c57 Make every test set filenames and switch directories in the same way, and fix some missing escaping for the rubocop linter 2017-07-09 22:43:31 +01:00
Jake Zimmerman
b50a7318fb Add new Haskell linter (#742)
* Add stack-build linter for Haskell

The stack-build linter works better than the other two linters when
you're working with an entire Haskell project. It builds the project
entirely and reports any errors.

The other two Haskell GHC linters only work on single files, which can
result in spurious errors (for example, not being able to find imports).

* Document all available Haskell linters

* Split GHC checkers into separate files
2017-07-09 22:39:33 +01:00
w0rp
47ff514878 Fix some indentation 2017-07-09 15:50:36 +01:00
w0rp
025f3407d6 Simplify ale_linters#ruby#rubocop#GetType 2017-07-09 15:50:12 +01:00
Eddie Lebow
ab0e76dbd5 Use rubocop's JSON output format (resolves #339) (#738)
* Use rubocop's JSON output format (resolves #339)

Rubocop's emacs formatter seems to have changed format in some
not-so-ancient version. The JSON formatter should provide a more stable
interface than parsing lines with a regex.

The JSON formatter was introduced in mid-2013, so it should be safe to
assume available in any reasonably-modern environment. The oldest
currently-supported version of ruby (according to ruby-lang.org) was
not supported by rubocop until 2014.

* Rubocop: Use global function for GetType

* Rubocop: Use scope prefix in GetType

* Rubocop: Update command_callback test

* Rubocop: add end_col to Handle
2017-07-09 15:48:04 +01:00
w0rp
836a2cfe3b Fix issues with running individual tests, and get the Vim tests to run on certain machines again 2017-07-09 14:58:21 +01:00
w0rp
c67d3b7e60 Merge pull request #743 from jez/fix-ghc-mod
Correctly resolve temp files on macOS
2017-07-09 13:56:21 +01:00
Jacob Zimmerman
a70591fa76 Correctly resolve temp files on macOS
On macOS, the `$TMPDIR` is in `/var`. However, `/var -> /private/var`.
This means that fully resolved temp filenames weren't always getting
checked against the proper prefix.

This was affecting some of the Haskell plugins, though I'm sure it could
have affected any program that resolved past the generated `$TMPDIR/foo`
and wound up at a different filename.
2017-07-09 02:16:46 -05:00
w0rp
ab47011ef2 Support setting settings with g:ale_pattern_options 2017-07-09 00:10:28 +01:00
w0rp
1b55e5edab Fix a syntax error in an example 2017-07-08 22:52:34 +01:00
Andrew Vimmer
4fd5bf81be Added missing statement about <Plug>(ale_toggle) mapping to the documentation (#740)
* Added missing statement about a `<Plug>` mapping.

* Fixed logical mistake related to "option calling".

* Rectified article usage according to a request.
2017-07-08 22:10:23 +01:00
Jonathan Boudreau
7def00d5a9 Use different reporter to support older versions of jscs (#737)
* Use different reporter to support older versions of jscs

* Add test and make more consistent with other code

* Add documentation for jscs

* Add more test coverage
2017-07-08 18:37:21 +01:00
w0rp
dd5806662a Document how to install yamllint 2017-07-08 14:42:39 +01:00
w0rp
996732d5a6 Document the virtualenv directories variable in the main file instead 2017-07-08 14:30:12 +01:00
w0rp
fdc7166c3c Use equal signs for language documentation sections 2017-07-08 14:17:26 +01:00
w0rp
f9aa7d3b9a Update the license year 2017-07-08 13:50:10 +01:00
w0rp
8eb4f95766 #697 - Clear all highlights every time items are set again, and refactor most things. Clear errors when linters are removed 2017-07-07 23:47:41 +01:00
daa84
46225f3bb1 Fix windows path check on rust linter (#736)
* Fix rust linter on windows

* Add windows path test

* Use ale#path#IsBufferPath to compare paths

* Fix errors
2017-07-07 17:03:17 +01:00
w0rp
d9a7364dae #710 - Fix a parsing bug caused by the last fix 2017-07-07 10:59:00 +01:00
w0rp
7ce960ae51 Fix #735 - Support old versions of Flow by only adding --respect-pragma for supported versions 2017-07-07 10:47:09 +01:00
w0rp
130928590b #710 - Show warnings as warnings for ghc 2017-07-07 00:28:22 +01:00
w0rp
8315c0e337 Make the executable for gometalinter configurable 2017-07-07 00:10:30 +01:00
w0rp
854066e849 #732 - Use the configuration files when fixing files with rubocop 2017-07-06 22:58:14 +01:00
w0rp
b43413916d Initialize rubocop variables in one place 2017-07-06 22:47:07 +01:00
w0rp
5859050d29 Fix some bad indentation 2017-07-06 10:51:05 +01:00
Gregory Einfrank
af02fb5183 Add ale_fix_on_save and ale_fixers to debug output (#731)
* Add ale_fix_on_save and ale_fixers to debug output

* Fix test by adding new ale-fix vars
2017-07-06 09:27:09 +01:00
w0rp
871ce1c8f5 Correct a comment 2017-07-05 15:52:39 +01:00
w0rp
1bd9b0fbe2 #729 - Use a wrapper for simplify to fix // problems on Windows 2017-07-05 15:51:31 +01:00
w0rp
a04e73ddbc #729 - Support running Python programs from virtualenv for Windows 2017-07-05 13:07:55 +01:00
w0rp
1b8450e7a0 #729 Fix // in virtualenv paths 2017-07-05 12:56:08 +01:00
w0rp
35093e8f0d Merge pull request #727 from andrew-vimmer/broken-links
Fixed broken link in the CONTRIBUTING.md
2017-07-05 10:15:25 +01:00
Wil Thomason
6ab92af181 Correctly pass options to cpplint (#728)
* Fix option passing to cpplint
2017-07-05 10:14:43 +01:00
User
e134eca694 Updated the link to handlers.vim file after it was broken into several
files with a03121f5b0.
2017-07-04 22:11:49 +03:00
w0rp
18fef18ab1 Remove the issue template note about the log_output option, now it's on by default. 2017-07-04 00:19:43 +01:00
w0rp
7b7a275902 Store the output of commands by default so I don't have to ask people to turn it on any more. 2017-07-04 00:17:13 +01:00
w0rp
bb293b297c Fix #216 - Filter out errors for other files for ansible-lint 2017-07-03 23:16:39 +01:00
w0rp
a1cf7f67a1 Fix #182 - Add support for lintr 2017-07-03 22:34:30 +01:00
w0rp
638eb1f000 Merge pull request #722 from RsrchBoy/travis-against-all-branches
Drop "only master branch" travis restriction
2017-07-03 20:33:43 +01:00
w0rp
84b280b881 Fix #178 - Check Stylus files with stylelint 2017-07-03 16:57:39 +01:00
Chris Weyl
def4466671 Drop "only master branch" travis restriction 2017-07-03 10:54:47 -05:00
w0rp
160b9548ee Add a function for fixing the alignment of Vim help tags 2017-07-03 16:51:34 +01:00
w0rp
fd6f05c9ea Report exceptions thrown for stylelint 2017-07-03 16:13:10 +01:00
Chris Weyl
5a3cfbbdf5 Allow hadolint linter to run via docker image (#720)
* Add documentation for hadolint (doc/ale-hadolint.txt)

* Allow `hadolint` linter to run via docker image

These changes enable the `hadolint` linter to run via the author's
docker image, if present.   Three modes are supported:

 * never use docker;
 * always use docker; and
 * use docker as a failback.
2017-07-03 15:37:32 +01:00
w0rp
51f256e897 Remove the need for pointless callbacks for LSP linters 2017-07-02 13:25:36 +01:00
w0rp
857ca941d2 Support an 'stdio' type for linter defintions, and require a command for LSP connections via programs 2017-07-02 13:17:24 +01:00
w0rp
b731bd77ab Get automatic completion with tsserver to work 2017-07-02 10:58:18 +01:00
w0rp
5b731f761f Refactor LSP jobs to use a uniform ID value 2017-07-02 10:58:18 +01:00
w0rp
9f21e45156 Add some experimental completion code for tsserver 2017-07-02 10:58:18 +01:00
w0rp
0d8be55c51 Merge pull request #712 from RsrchBoy/perlcritic/more-explicit-profiles-doc
Be more explicit about the effect of `g:..._perlcritic_profile = ''`
2017-07-02 00:47:18 +01:00
Ryan
2330837747 Adjust output of luacheck linter to include error code (#717)
* linters/lua/luacheck: Show error code in message
2017-07-02 00:20:59 +01:00
w0rp
b2e730fb5e Merge pull request #716 from sobrinho/master
Fix brakeman handler when there is no output
2017-07-01 15:43:04 +01:00
Gabriel Sobrinho
29746d492e Fix brakeman handler when there is no output 2017-07-01 11:18:21 -03:00
Chris Weyl
64c6cbee48 Be more explicit about the effect of g:..._perlcritic_profile = ''
Just to prevent any confusion, the documentation now explicitly states
that setting `g:ale_perl_perlcritic_profile` to an empty string merely
disables passing an explicit profile to `perlcritic` and does not cause
`--no-profile` to be set.
2017-06-30 10:14:17 -05:00
Chris Weyl
3f1cab3e7e Add profile, other options to the perlcritic linter (#675)
* Add profile, other options to the perlcritic linter
2017-06-29 13:08:51 +01:00
w0rp
411c6b5e9f Fix #707 - Fix some duplicate tags, and add some code to check for them 2017-06-29 12:55:00 +01:00
w0rp
518f99b480 Fix #706 - Skip fixers with jobs that return empty output, in case they have failed 2017-06-29 12:00:32 +01:00
w0rp
79e8e063af Make pug-lint detect node_modules executables, and add options for pug-lint like the other linters 2017-06-29 11:40:03 +01:00
Tarik Graba
01ecf2a75f Adds an option to pass additional arguments to the verilog/verilator … (#698)
* Adds an option to pass additional arguments to the verilog/verilator linter

The new otion is g:ale_verilog_verilator_options
+ doc

* Spell check verilog linter doc file

* Add entries to the verilog linters in the doc table of content

* Vader test for verilog/verilator linter args option verilog_verilator_options
2017-06-29 09:15:52 +01:00
Adam Stankiewicz
7eec1f2efc Add prettier-standard support (#702)
* Add prettier-standard support

* Update ale-javascript.txt

Remove a duplicated header line.
2017-06-28 16:35:19 +01:00
w0rp
8846a8860f Use a new window for the ALEFixSuggest command, and document it better 2017-06-28 16:20:05 +01:00
Alexander "Ace" Olofsson
f883d4d4fd Add puppet-lint fixer (#701)
* Add puppet-lint fixer

* Add vader test for puppetlint fixer

* Ensure puppetlint variables are initialized
2017-06-28 15:27:02 +01:00
w0rp
f984c5fb83 Merge pull request #699 from jwoudenberg/master
Elm linter shows full error ranges
2017-06-27 22:24:48 +01:00
Jasper Woudenberg
72161b82ef Elm linter shows full error ranges 2017-06-27 20:16:29 +02:00
w0rp
0302d2a328 Remove the script for runnning tests from git archives 2017-06-27 16:15:17 +01:00
w0rp
e51272e277 Do not include the code of conduct in git archives 2017-06-27 16:14:35 +01:00
Nick Krichevsky
14cca6d115 Remove style classification from E999 (#696)
* Remove style classification from E999

* Update test_flake8_handler to reflect E999 changes
2017-06-27 15:07:26 +01:00
w0rp
16ba9bd680 Fix #680 - Use --shadow-file to check for problems with mypy while you type 2017-06-27 10:06:03 +01:00
w0rp
499bf63dc3 #678 - Document the sign column color behaviour 2017-06-27 09:44:02 +01:00
w0rp
b9d91f0e9b Document :ALEInfo better 2017-06-26 22:08:55 +01:00
w0rp
d5c9a4eb87 #171 - Document every highlight 2017-06-26 21:49:20 +01:00
w0rp
d2ec53f817 Merge pull request #695 from jsivak/feature/fix_multiple_parens
Change regex to better handle messages with multiple groups of parentheses.
2017-06-26 09:25:56 +01:00
John Sivak
539a76c5ae Change regex to better handle messages with multiple groups of parentheses. 2017-06-25 20:19:39 -04:00
w0rp
1917e9157c Fix #694 - Ignore BEGIN failed errors for Perl only for certain errors 2017-06-25 21:49:57 +01:00
w0rp
3828ea5b26 Detect .git directories for finding the project root for C projects 2017-06-25 21:33:15 +01:00
w0rp
8b557f346c Move ale#handlers#c functions into ale#c 2017-06-25 20:34:23 +01:00
Lynn Dylan Hurley
7f6e5dc65b Add ruby fixer using rubocop --auto-correct (#689)
* add ruby fixer for `rubocop --auto-correct`
2017-06-25 20:04:14 +01:00
w0rp
7d73a1602b Explain how to use the airline extension better 2017-06-25 20:01:46 +01:00
John Sivak
a9b29fef28 Feature/restore display of symbol (#693)
* Add display of the pylint symbol name after the message.

* Update test to pass.
2017-06-25 18:22:13 +01:00
Jasper Woudenberg
c2f69b7750 Improve elm linter (#637)
* Improve elm linter

Some types of errors do not return nice JSON.
Show them on the first line instead of showing nothing.

* Remove unnecessary properties from elm linter

* Add a vader test for elm-make linter

* Test non-JSON elm-make errors are shown
2017-06-25 17:12:40 +01:00
w0rp
93473a4101 Fix #690 - Filter out errors from other files for Haskell 2017-06-25 17:08:57 +01:00
w0rp
229a1c092a #684 Handle tslint errors without the severity included, and use character instead of position for the columns 2017-06-25 16:40:44 +01:00
w0rp
492260c967 Fix the tests harder 2017-06-25 16:20:55 +01:00
w0rp
c2138a2656 Fix the tests for the fix on save feature 2017-06-25 16:14:04 +01:00
w0rp
ec3ddce4ac #665 - Replace the nomodified line with :w! 2017-06-25 15:59:38 +01:00
w0rp
2c6b571e66 Fix #665 - Stop prompts appearing when fixing files on save 2017-06-25 15:57:36 +01:00
w0rp
4eaa990fe8 Fix #684 - Use the JSON format for tslint, for consistency betwen versions, and handling of end line and column numbers 2017-06-25 13:56:51 +01:00
w0rp
8da5641355 Ask for let g:ale_history_log_output = 1 first in the issue template 2017-06-25 11:55:21 +01:00
w0rp
d1e23f7295 Fix #683 Recommend prettier and eslint over prettier-eslint 2017-06-24 17:32:43 +01:00
Gagbo
dc647fcc7f Add clangcheck Linter to cpp (#686)
Add a clangcheck linter
2017-06-24 16:10:04 +01:00
Gagbo
e98560a349 Added builddir option to clang-tidy to point to json folder (#688)
Detect compille_commands.json files for clang-tidy
2017-06-24 12:38:16 +01:00
w0rp
026c4f304e #681 Show extra kotlin errors at line 1 2017-06-24 12:35:01 +01:00
w0rp
1ea61162a0 Fix #687 - Check files on enter if they have changed 2017-06-24 12:24:31 +01:00
w0rp
fbf8ccb882 Fix #677 - Ignore errors from other files for cppcheck 2017-06-22 14:08:58 +01:00
w0rp
47401a6eda Fix the Perl tests in Docker 2017-06-22 13:51:18 +01:00
w0rp
ce2bfa88eb Fix #676 - Fix handling of Perl errors 2017-06-22 12:37:08 +01:00
w0rp
40f6ee4c39 Set the --no-color flag for Vint if we fail to parse the version number for some reason 2017-06-22 12:24:25 +01:00
w0rp
93539e10de Document the new phpcs options 2017-06-21 22:38:56 +01:00
w0rp
dab6f39eb0 Fix some escaping and make some tests set filenames consistently 2017-06-21 22:33:34 +01:00
Eric Stern
ab534c2995 Support project's local phpcs installation (#666)
* Use locally-installed PHPCS if available

* Add author

* Add configuration options

* Escape executable

* Add tests
2017-06-21 21:35:40 +01:00
w0rp
d2806fad60 Fix the standard and xo handlers so they call the eslint function 2017-06-21 11:15:05 +01:00
w0rp
50d952b07d Print messages about imports used when modules are turned off 2017-06-20 17:38:21 +01:00
w0rp
a105aa90a5 Fix #668 - Support eslint for TypeScript 2017-06-20 10:50:38 +01:00
w0rp
b96f5845ed Fix #667 - Do not add extra blank lines for add_blank_lines_for_python_control_statements 2017-06-20 09:39:58 +01:00
oaue
b44bd4e24f handle column number in javac linter (#660)
* handle column number in javac linter

* Updated tests with column number for javac errors.

* Updated tests with column number for javac errors.
2017-06-19 11:45:09 +01:00
w0rp
66b9d025bb #662 Fix kotlinc configuration name escaping 2017-06-19 11:39:42 +01:00
Pavel Kuropatkin
11e17669d3 TSLint: distinguish warnings from errors (#663)
* TSLint: distinguish warnings from errors

* Test for TSlint warning/error distinguishing code added.
2017-06-18 18:46:34 +01:00
w0rp
af1ab0b5a9 Add a non Code of Conduct 2017-06-18 18:24:44 +01:00
w0rp
8ab103504f Fix #658 - Clear highlights for all problem types 2017-06-18 18:20:05 +01:00
w0rp
7e79018b8c Fix #661 - Fix line highlights for style errors and warnings 2017-06-18 11:34:06 +01:00
w0rp
629ff513ec #659 - Add options for Python fixers, and cut down on duplicated documentation 2017-06-18 11:03:31 +01:00
David Alexander
fb682be199 Fix for Crystal support (#651)
* Strip color from Crystal compiler output

* Don't lint files if the file doesn't exist

* Lint files if they are readable
2017-06-15 09:30:34 +01:00
w0rp
f814be45b1 Fix #536 - Implement linter problem type re-mapping 2017-06-14 17:59:13 +01:00
w0rp
c2258e3684 Fix an ansible-lint test 2017-06-14 17:14:04 +01:00
w0rp
e455d8219e Fix #649 - Support tsserver linting for NeoVim 2017-06-14 17:08:39 +01:00
w0rp
25e4d1a353 #649 Output the tsserver command in ALEInfo 2017-06-14 16:53:21 +01:00
w0rp
07af1799b1 #430 Use the style sub_type for flake8 problems 2017-06-14 16:40:03 +01:00
w0rp
f6b0a28cba Split up the flake8 and ansible-lint handlers 2017-06-14 16:20:30 +01:00
w0rp
3442e58c8b Simplify the code for escaping strings for Windows 2017-06-14 11:05:49 +01:00
w0rp
f472e04b09 #538 - Set some end column indexes for flake8 2017-06-14 10:51:31 +01:00
w0rp
6f858590c2 Fix FusionScript documentation text alignment 2017-06-14 09:37:24 +01:00
Ryan
e8cc40b139 Add fusion-lint, documentation, and tests (#648)
* Add `fusion-lint` for first FusionScript linter

* Add documentation over `fusion-lint`

* Add tests for `fusion-lint` command callback
2017-06-14 09:35:11 +01:00
w0rp
ba83c476cd Document the tsserver linter 2017-06-13 17:59:09 +01:00
w0rp
ebbfb64221 Merge branch 'tsserver' 2017-06-13 17:54:07 +01:00
w0rp
aef58f598c Handle LSP responses for different files more consistently 2017-06-13 17:53:47 +01:00
w0rp
86c17e1834 Include package.json in eslint configuration files 2017-06-13 09:35:52 +01:00
Steven Humphrey
99263bdda4 Perlcritic column number and rule names (#640)
* Add column number to perlcritic linting output

This returns the column number of the perlcritic error so that ale can
show the column in addition to the line where perlcritic found an error.

* Add perlcritic configuration for rule names

This adds a configuration setting so that the name of the perlcritic
rule is shown [Rule::Name] after the error message.

This is useful to lookup the rule failure.

* Add a vader test for perlcritic#GetCommand
2017-06-11 21:13:47 +01:00
w0rp
5146332206 Add tsserver support 2017-06-09 09:47:19 +01:00
Mark Korondi
64ad51048d Support for GNU Awk linting (#638)
* GNU Awk linter support

* Documentation for awk linter
2017-06-08 18:26:21 +01:00
w0rp
62862c3347 Experimental code for showing results as soon as each linter completes 2017-06-08 17:30:21 +01:00
w0rp
8ce6d47ef6 Merge pull request #639 from marciomazza/patch-1
Fix typo in docs
2017-06-08 17:23:20 +01:00
Marcio Mazza
14d86f8763 Fix typo 2017-06-08 17:43:28 +02:00
w0rp
04190cbcfe #517 Support linter settings needed for LSP, undocumented for now 2017-06-08 13:52:29 +01:00
w0rp
d8d96fb0eb Fix #634 - Document eslint --fix behaviour with nested configuration files 2017-06-08 09:37:51 +01:00
w0rp
e93dba351c Fix #635 - Cancel previous jobs for fixing files when fixing files again 2017-06-08 09:24:15 +01:00
w0rp
817b6bbd2d Put ve-py3 before ve, so Python 3 executables will be preferred 2017-06-07 21:45:59 +01:00
José Luis Lafuente
1eec446620 Search python fixers in virtual environment (#632)
* Search python fixers in virtual environment

* Add tests for python fixers
2017-06-07 20:42:30 +01:00
w0rp
f61c6d4c0e Add support for generating essential tsserver messages 2017-06-07 17:05:34 +01:00
w0rp
71257979aa Merge pull request #633 from jlesquembre/fix_function_name
Fix function name
2017-06-07 16:46:59 +01:00
José Luis Lafuente
2ac670f293 Fix function name 2017-06-07 17:31:05 +02:00
w0rp
25e1aa43b8 Fix #631 - Fix some bad function names 2017-06-07 16:02:05 +01:00
w0rp
9ee7a6d57c Fix #630 - Initialize Prettier options 2017-06-07 15:33:41 +01:00
w0rp
7517fd8226 Move all functions for fixing things to autoload/ale/fixers, and only accept the lines of input where needed. 2017-06-07 14:02:29 +01:00
w0rp
edddb1910b Fix the stylelint tests to match the changes to the handler 2017-06-07 09:29:53 +01:00
w0rp
8f9828e5bf Merge pull request #628 from mziab/fix-stylelint-handler
Fixed stylelint not catching all errors.
2017-06-07 09:28:00 +01:00
w0rp
11e38efa83 Fix a bug which breaks the tests 2017-06-07 09:26:54 +01:00
w0rp
f30652a98f Allow ALEFix functions to be defined with only the buffer argument 2017-06-06 23:13:53 +01:00
w0rp
e4d886d4a7 Add a function for computing the number of arguments for a function 2017-06-06 22:27:20 +01:00
w0rp
eeea72e167 Fix #625 Ignore Perl errors from other files 2017-06-06 20:40:07 +01:00
Michał Ziąbkowski
e4708c356b Fixed stylelint not catching all errors.
The original regex failed to account for short lines being padded
to the length of the longest error.
2017-06-06 21:08:30 +02:00
w0rp
7db805b0cd #482 - Fix Flow handling with relative paths 2017-06-06 20:08:19 +01:00
w0rp
ef86a8a389 Make the test for the history more reliable 2017-06-06 19:54:10 +01:00
w0rp
9dadde190e Fix #461 - Allow multiple loclist windows to be opened, and replace some split windows 2017-06-06 17:31:13 +01:00
w0rp
e88eb6c415 Use BufWinEnter for g:ale_lint_on_enter instead 2017-06-06 17:01:17 +01:00
w0rp
3c5156d4a4 Simplify job cleanup code 2017-06-06 16:44:01 +01:00
w0rp
a0e0408ecc Complain about incorrect uses of expand('%...') 2017-06-06 10:22:52 +01:00
w0rp
d41f15bcbc #620 Check the Nim files on disk instead 2017-06-06 09:55:19 +01:00
w0rp
fcc17dffbe Fix a test 2017-06-06 09:54:17 +01:00
w0rp
02ac28dbe6 Fix #624 - Ask for the Vint version in the background 2017-06-06 09:47:22 +01:00
w0rp
f6109d2e4e Merge pull request #622 from blueyed/fix-typo
doc: fix typo: s/the the/to the/
2017-06-05 16:35:27 +01:00
Daniel Hahler
3be60bf034 doc: fix typo: s/the the/to the/ 2017-06-05 17:06:48 +02:00
w0rp
1a62e95733 Do not check files on insert leave 2017-06-05 13:55:18 +01:00
w0rp
dcbab18a35 Stop errors being generated when jobs are removed from the Dictionary before callbacks fire 2017-06-05 13:30:40 +01:00
Drew Neil
33b0852c84 Add :ALEFirst and :ALELast commands (#616)
* Add :ALEFirst and :ALELast commands

* Add documentation for ALEFirst and ALELast commands

* Add tests for ale#loclist_jumping#JumpToIndex()

* Fix the loclist jumping tests
2017-06-03 12:45:52 +01:00
w0rp
fcb5718712 Document that prettier and prettier-eslint are supported 2017-06-03 12:31:27 +01:00
Francis Agyapong
2c89a4c98a Add ktlint support (without formatting) for kotlin filetype (#610)
* Add ktlint support (without formatting) for kotlin filetype

* Fix code style and refactor to use ALE utility functions (GetMatches)

* Remove options for configuration file

* Refactor: Rename exec variable and use ale#Set for variable configuration
2017-06-02 19:41:46 +01:00
w0rp
7c68889bbc #574 Do not restore items with no columns for highlights from hidden buffers 2017-06-02 19:02:54 +01:00
w0rp
955452816a Merge pull request #614 from epilande/master
✏️ Fix link to stylelint styled-components
2017-06-02 18:54:31 +01:00
w0rp
8c5a7fb2ca Merge pull request #615 from w0rp/adriaanzon-patch-1
Suggest :ALELint instead of ale#Lint()
2017-06-02 18:40:37 +01:00
Adriaan Zonnenberg
2b9e320370 Suggest :ALELint instead of ale#Lint() 2017-06-02 16:08:54 +02:00
Emmanuel Pilande
e4649b50d6 ✏️ Fix link to stylelint styled-components 2017-06-02 04:54:38 -07:00
w0rp
fbd76fb63d Document the <Plug>(ale_fix) mapping 2017-06-01 21:13:05 +01:00
w0rp
0d3d5657ff #607 - Update the documentation for ale-fix to suggest an assignment which will work in vimrc 2017-06-01 21:08:43 +01:00
w0rp
d5ae9b50ea Fix #499 Set an explicit height for the quickfix list, and make the height configurable 2017-06-01 10:39:21 +01:00
cs86661
81f27a99c8 Set qflist/loclist window title properly ... (#588)
* Update list.vim

Set qflist/loclist window title properly ...

* Update list.vim

1. Remove redundant code.
2. Get absolute path from 'a:buffer'.

* Set the list window titles appropriately for each version of Vim, and add tests
2017-05-31 22:55:23 +01:00
w0rp
735a6a2a88 Fix #537 - Add support for balloons 2017-05-31 22:04:33 +01:00
w0rp
5e4c302b5b Fix #557 - Detect C project roots and include root directories with headers, or include directories 2017-05-31 20:01:47 +01:00
Jon Gjengset
88948e0ee3 Include span label in rust lints (#601)
* Include span label in rust lints

This turns relatively unhelpful error messages like

    mismatched types

into more expressive messages along the lines of

    mismatched types: expected bool, found integral variable

Fixes #597.

* Exclude rust lint span label if empty

* Use single-quoted strings in vimscript

* Add test for detailed rust errors

* Prune Cargo JSON

* Use matching error file name

* Byte offsets not char offsets
2017-05-31 18:16:49 +01:00
w0rp
42efd51723 Fix #596 - Report exceptions thrown by flake8 2017-05-31 15:20:12 +01:00
Jon Gjengset
5eb80f03a2 Include location list end column for rust lint (#602)
* Include location list end column for rust lint

Fixes #599.

* Include rust lint end_lnum for good measure

* Reverse engineer end_* for rust lint tests
2017-05-31 13:17:04 +01:00
w0rp
ab50b3a88a Fix #604 - Support highlights spanning many lines 2017-05-31 13:14:39 +01:00
w0rp
676a4049b3 #604 Add a function for creating positions needed for supporting highlights across many lines 2017-05-31 11:20:57 +01:00
w0rp
fd49f7df90 #604 Change match_id to match_id_list, for future highlights spanning more than 8 lines 2017-05-31 10:27:35 +01:00
w0rp
e72dc1acd5 Merge pull request #603 from craftgear/feature-make-prettier-option-enable
make prettier options enabled
2017-05-31 10:02:08 +01:00
w0rp
a90cf62995 Run the temporary file management test synchronously, so it will fail less 2017-05-31 10:01:46 +01:00
Shunsuke Watanabe
5d32366616 make prettier options enabled 2017-05-31 11:48:20 +09:00
w0rp
6fe8105a0e Merge pull request #600 from oalders/oalders-perl-warnings
Remove -X flag from perl defaults.
2017-05-30 22:30:37 +01:00
w0rp
b9f4b0373a #591 Store buffer variables when fixing filess, and read them back in ale#Var 2017-05-30 22:15:24 +01:00
w0rp
6ec965c8e4 #591 Support fixing files on save 2017-05-30 21:32:51 +01:00
Olaf Alders
fa02b1d259 Remove -X flag from perl defaults.
"-X Disables all warnings regardless of use warnings or $^W".  See
"perldoc perlrun" or http://perldoc.perl.org/perlrun.html

With the current defaults, warnings are squashed.  For example:

$ perl -X -Mwarnings -c -e'BEGIN { 42 + undef }'
-e syntax OK

$ perl -Mwarnings -c -e'BEGIN { 42 + undef }'
Use of uninitialized value in addition (+) at -e line 1.
-e syntax OK

So, it's not clear from the current defaults whether Ale wants to remove
warnings or enable them.  As it stands, it's trying to do both and the
disabling appears to win.

This commit enables warnings by default.
2017-05-30 16:07:21 -04:00
w0rp
bc317a7be5 Merge pull request #595 from daenney/go-default-linters
go: Remove `staticcheck` and `go build` defaults
2017-05-30 14:56:59 +01:00
Daniele Sluijters
bfad5c9dc4 go: Remove staticcheck and go build defaults
Fixes #594
2017-05-30 14:48:23 +02:00
w0rp
7a89d0c97e Refactor ALEFix code for work on events and tests to come 2017-05-30 11:06:02 +01:00
w0rp
50fc4b5521 Merge pull request #589 from bardzusny/ember-template-lint-handler-parsing-error
Ember-template-lint handler: properly handle template parsing errors.
2017-05-30 09:45:20 +01:00
Adrian Zalewski
7ed343965c Ember-template-lint handler: properly handle template parsing errors. 2017-05-28 21:19:47 +02:00
w0rp
945ed7d4e7 Add untested code for searching for C and C++ headers in basic projects 2017-05-28 11:05:14 +01:00
w0rp
505b591b22 Merge pull request #585 from gavocanov/master
kotlin linter support for maven/pom.xml
2017-05-28 10:37:36 +01:00
w0rp
dc775f236c Revert "Fix #501 - Do not run javac when it is just a stub asking you to install Java on Mac OSX"
This reverts commit 528355e2c6.
2017-05-28 00:52:04 +01:00
w0rp
c17346d402 Fix ALEInfo and some test issues 2017-05-27 23:51:27 +01:00
w0rp
aca5a00fb7 Fix #500 - Support defining aliases for linter names 2017-05-27 21:27:42 +01:00
w0rp
8e997ac231 Fix #584 - Fix Neovim line handling issues 2017-05-27 19:23:13 +01:00
w0rp
5825a65627 Merge branch 'add-fixer/prettier' 2017-05-27 18:31:58 +01:00
w0rp
62dae1cc6b Support both prettier and prettier-eslint 2017-05-27 18:31:52 +01:00
tunnckoCore
8e8113ff6f feat(fixer): add Prettier fixer (using Prettier-ESLint CLI) + docs 2017-05-27 18:03:14 +01:00
w0rp
c4f22186bd Refactor running of local Node programs with a helper function 2017-05-27 17:11:03 +01:00
Paolo Gavocanov
f71c60ede3 kotlin linter support for maven/pom.xml 2017-05-27 16:23:16 +02:00
Agata Naomichi
b934dc52b6 Fix file name checking in rust handler (#581)
* Fix file name checking in rust handler

* Add a test for rust hanler

* Remove unused variable
2017-05-27 00:35:57 +01:00
w0rp
00d3141962 Fix #577 Add an option preventing linting of large files 2017-05-26 21:21:15 +01:00
w0rp
28a62aab28 Fix #316 - Add tests to check the code used for autocmd events. The functions are already tested elsewhere 2017-05-26 17:36:21 +01:00
w0rp
9460e58c3b Fix #371 Allow ALE to be disabled in different buffers 2017-05-26 16:20:17 +01:00
w0rp
c77cf0e518 #371 Allow buffer variables to be set based on patterns 2017-05-26 15:59:43 +01:00
w0rp
7fe1119cf1 #576 Run the eslint.js file created by React with node on Windows 2017-05-26 10:02:48 +01:00
w0rp
c89587785b Fix #549 - escape strings more appropriately for use with cmd /c 2017-05-26 00:06:16 +01:00
w0rp
fb07971290 Remove a test file which is no longer used 2017-05-25 23:05:03 +01:00
w0rp
3840cebbc4 Automatically use eslint_d for eslint, when available 2017-05-25 22:34:59 +01:00
w0rp
c31cd12bdd Simplify the sandbox check, to save on execution time 2017-05-25 17:23:21 +01:00
w0rp
6f76a840f0 Merge pull request #579 from alphastorm/master
Fix minor typo in the g:ale_lint_on_insert_leave docs
2017-05-25 13:40:56 +01:00
w0rp
6b1f0c5d1f Merge pull request #578 from nOkuda/master
Translate pylint output column to 1-based index
2017-05-25 13:36:44 +01:00
w0rp
aabddea6dd Fix the Count example in the README 2017-05-25 13:33:29 +01:00
w0rp
5ee2ada8e9 Mention the Count argument in the documentation 2017-05-25 13:32:46 +01:00
Sunil Srivatsa
da8fd647bf Fix minor typo in the g:ale_lint_on_insert_leave docs 2017-05-25 01:47:59 -07:00
Nozomu Okuda
43098171ac Translate pylint output column to 1-based index
This should fix #575; also added vader tests to ensure that translation
is working properly.
2017-05-24 21:40:06 -06:00
w0rp
ed8f79987d #323 Document how to output ALE statuses 2017-05-24 10:38:20 +01:00
w0rp
92ade713f2 #323 Document ale#statusline#Count() instead, and encourage its use 2017-05-24 10:23:13 +01:00
w0rp
58880f33be #572 Handle cleared SignColumn highlights too 2017-05-23 17:25:13 +01:00
w0rp
1e72a7a130 Add a fixer for Python for automatically adding blank lines before control statements 2017-05-22 12:59:40 +01:00
w0rp
4526018344 Remove the test for highlight linking, because it just cannot be tested 2017-05-22 10:01:41 +01:00
w0rp
2e442a2cab Fix initialization of the use_global variable for eslint 2017-05-22 09:38:33 +01:00
w0rp
71bf2bfb94 Fix #572 - Link to whatever SignColumn links to for ALESignColumnWithoutErrors 2017-05-22 09:34:25 +01:00
w0rp
c8ce15d9f1 Fix a minor typo 2017-05-21 22:46:22 +01:00
w0rp
b67c103d06 #309 Add an option for changing the sign column color when problems are detected 2017-05-21 22:42:27 +01:00
w0rp
3a289dab6b #318 Do not capitalize the first character for cursor messages 2017-05-21 19:51:34 +01:00
w0rp
23ee0d0992 #149 - Set different highlights for info, style error, and style warning problems 2017-05-21 19:22:48 +01:00
w0rp
57ad32f986 Fix counting of warnings and style warnings 2017-05-21 18:58:26 +01:00
w0rp
d511b02ebe Make the job handling code handle the scripts being reloaded better 2017-05-21 16:16:06 +01:00
w0rp
ab44d05508 #149 - Support info and style problem types for status lines 2017-05-21 15:37:45 +01:00
w0rp
3532257a1a Detect more eslint configuration files for fixing errors 2017-05-20 23:41:54 +01:00
w0rp
f92bbab8cf #149 - Support Info, style error, and style warning types for problems for signs 2017-05-20 23:32:41 +01:00
w0rp
bf8bf06681 Merge branch 'error-fixing' 2017-05-20 19:02:56 +01:00
w0rp
74d879952c Document ALEFix 2017-05-20 19:02:36 +01:00
w0rp
3530180a73 Suggest functions for fixing issues for ALEFix 2017-05-20 19:02:36 +01:00
w0rp
59d9f5d458 Allow b:ale_fixers to be used 2017-05-20 19:02:36 +01:00
w0rp
ad52b9630d Fix Funcref fixers for NeoVim 2017-05-20 19:02:36 +01:00
w0rp
ed097cfcbd Allow funcref values and lambdas for ALEFix 2017-05-20 19:02:36 +01:00
w0rp
e80389f8d4 Add some more tools for fixing problems with Python files 2017-05-20 19:02:36 +01:00
w0rp
74691269ce Run a lint cycle after fixing problems 2017-05-20 19:02:36 +01:00
w0rp
18467a55b5 Don't modify files when fixing doesn't change anything. 2017-05-20 19:02:36 +01:00
w0rp
e6b132c915 Fix an off-by-one bug in ALEFix 2017-05-20 19:02:36 +01:00
w0rp
4214832ae2 Remove the code for checking if functions exist. It breaks autoload functions 2017-05-20 19:02:36 +01:00
w0rp
1f4d1800e0 Allow function aliases to be registered for fixing problems, and add some more argument checking for fixing problems 2017-05-20 19:02:36 +01:00
w0rp
ea1627f5ce Start experimenting with generic functions for fixing problems 2017-05-20 19:02:36 +01:00
w0rp
0b743389e5 Send modified lines to jobs, not the file contents 2017-05-20 19:02:36 +01:00
w0rp
05bab00c3c Allow strings to be used for selecting a single fix function for g:ale_fixers too 2017-05-20 19:02:36 +01:00
w0rp
8ebd15a54d Add commands to run ALEFix, and some tests to cover functionality so far. Add a simple autopep8 function. 2017-05-20 19:02:36 +01:00
w0rp
7d8390d43e Add experimental code for fixing errors 2017-05-20 19:02:36 +01:00
w0rp
0d797c203f Add an option to the script for running tests for only showing the tests which failed 2017-05-20 19:02:08 +01:00
w0rp
04e0dda17a Merge pull request #568 from Qusic/master
Add clang for objc and objcpp
2017-05-20 13:39:09 +01:00
w0rp
65fbf1cdff #563 Use a configurable list of directories for detecting virtualenv paths instead. 2017-05-20 13:34:53 +01:00
w0rp
d012fd1f09 Revert "Fix #556 Remove duplicate error messages from clang++"
This reverts commit 164c4efb32.
2017-05-20 12:57:41 +01:00
w0rp
0646b2861f Revert "#562 Join split JSON lines together for new Rust output"
This reverts commit 5790df1272.
2017-05-20 12:57:21 +01:00
w0rp
0f0d1709c5 #567 Try and fix NeoVim split line handling 2017-05-20 12:50:19 +01:00
Sander van Harmelen
455793dfd9 Improve performance when using gometalinter (#566)
* Improve performance when using gometalinter

Before this change when I opened a big project that had 6000+ warnings/errors it took ages to get the actual warnings/errors and it caused my CPU to be busy for quite some time. The call to gometalinter alone took about 24 seconds, but after that vim was struggling as well.

After this change the gometalinter call just takes 2 seconds and nothing noticable happens with the CPU and/or vim.

* Removed obsolete test

This logic is no longer done by the `ale` plugin, but by `gometalinter` itself.
2017-05-20 11:43:28 +01:00
Qusic
af6470c8d0 add clang for objc and objcpp 2017-05-20 00:58:09 +08:00
w0rp
bb1f045d59 Merge pull request #564 from adriaanzon/php-end-columns
Add end columns on php linter
2017-05-18 09:38:15 +01:00
q12321q
cdf0fb39e5 Add xmllint linter (#559)
* Add xmllint linter for xml
2017-05-18 09:31:12 +01:00
w0rp
3ca70cb841 Add a check to make tests fail less 2017-05-18 09:27:18 +01:00
w0rp
c41afa2b0d Clean up the rubocop file a little 2017-05-18 09:22:34 +01:00
w0rp
2fd4db91ce Merge pull request #561 from meunierd/override-rubocop-executable
Allow overriding rubocop executable.
2017-05-18 09:19:23 +01:00
Adriaan Zonnenberg
05970e1b28 Add end columns on php linter #538 2017-05-17 21:28:29 +02:00
Adriaan Zonnenberg
6299da7bd3 Break up php tests so the output is easier to read 2017-05-17 21:19:34 +02:00
Devon Meunier
3f926de76b Escape executable 2017-05-17 08:46:47 -04:00
w0rp
f7fc54262d Refactor special command parsing into its own file 2017-05-17 11:17:49 +01:00
w0rp
164c4efb32 Fix #556 Remove duplicate error messages from clang++ 2017-05-17 10:10:25 +01:00
w0rp
5790df1272 #562 Join split JSON lines together for new Rust output 2017-05-17 09:43:28 +01:00
w0rp
372a4dfd7e Merge pull request #546 from dawikur/master
Add cpplint linter
2017-05-17 09:12:36 +01:00
w0rp
3443994a52 #538 Set some end columns for some eslint problems 2017-05-16 22:57:15 +01:00
w0rp
e2860f8a26 #538 Fix an off-by-one bug with end columns 2017-05-16 19:46:19 +01:00
w0rp
1b53fa841b Fix some problems with LSP functions 2017-05-16 19:38:05 +01:00
Devon Meunier
9ca51ed035 Allow overriding rubocop executable. 2017-05-16 14:07:52 -04:00
w0rp
a65358cfce #538 Suport highlight sizes by looking at end column numbers 2017-05-16 18:12:49 +01:00
Dawid Kurek
9185a0d2e5 Add cpplint linter 2017-05-16 19:09:59 +02:00
w0rp
8712aee5dc Nag people more to include more logging for error reports 2017-05-15 21:27:40 +01:00
w0rp
4c5e97dd1c Fix #555 - Handle csslint errors without groups 2017-05-15 21:21:09 +01:00
w0rp
78a7df52c0 Clean up linters after running the checkstyle handlers 2017-05-15 20:59:50 +01:00
w0rp
42155049a5 Merge pull request #551 from meunierd/add-checkstyle-linter
Add checkstyle linter
2017-05-15 20:58:06 +01:00
w0rp
11a50b2580 Fix #553 - Filter out errors from other files for gometalinter 2017-05-15 20:43:55 +01:00
Devon Meunier
9baae52d1a Add checkstyle linter 2017-05-15 15:41:04 -04:00
w0rp
fa3a4b3ba2 Complain when shellescape is used instead of ale#Escape 2017-05-15 20:21:28 +01:00
w0rp
113f53a5d2 Merge pull request #496 from wizzup/haskell-ghc-mod
Haskell:  new ghc-mod linter
2017-05-15 19:57:50 +01:00
wisut hantanong
3f33dc7d98 Haskell: add ghc-mod linter 2017-05-15 19:46:02 +01:00
w0rp
d4466d4be7 Add some functions for sending LSP commands to a process, and automatically starting that process 2017-05-13 00:12:12 +01:00
w0rp
204e3ca36b Automatically remove jobs from the internal map after they are done 2017-05-12 23:56:58 +01:00
w0rp
5a947933d7 Refactor jobs into a Vim version agnostic API which can be used for other purposes 2017-05-12 21:16:15 +01:00
w0rp
2bafdb7e5a Run all tests in NeoVim, improve the test script, and make all tests pass for NeoVim 2017-05-12 20:38:52 +01:00
w0rp
07b2542c0d #549 Temporarily revert shell escaping changes, just for Windows 2017-05-12 09:20:16 +01:00
w0rp
fa54f7af97 Remove a dependency on eslint, ready for the new Docker image 2017-05-12 09:19:36 +01:00
w0rp
2f96f26038 Update the Dockerfile for experimenting with NeoVim testing 2017-05-11 08:32:45 +01:00
w0rp
ac707be619 Remove the tests which run C compilers. They are too expensive and difficult to maintain 2017-05-11 00:07:30 +01:00
Adriaan Zonnenberg
4e5a848d95 Merge pull request #533 from pbogut/add_php7_compatibility
Add PHP 7 compatibility
2017-05-09 18:34:38 +02:00
w0rp
6ea00af689 #540 Fix shell escaping pretty much everywhere 2017-05-08 22:59:25 +01:00
w0rp
28c6ec9cad #517 - Implement LSP chunked message parsing, sending messages to sockets, and callbacks 2017-05-08 22:18:28 +01:00
Pawel Bogut
d7bdaeeab0 Read errors from stdout only (and make sure they are displayed) 2017-05-08 21:17:54 +01:00
w0rp
cd79ced839 #517 Implement some LSP message handling 2017-05-07 23:54:14 +01:00
w0rp
32f21751f4 Do not copy the items for setting highlights, as we do need to modify the items in ale_buffer_info 2017-05-07 19:33:59 +01:00
w0rp
ca120088c7 Fix #539 - Just set our highlights again when buffers are shown after being hidden 2017-05-07 19:30:19 +01:00
w0rp
f6723784e6 #427 Document that the trailing whitespace option can be set differently in each buffer 2017-05-07 17:17:00 +01:00
w0rp
1a157b1cd5 Support python -m flake8 for users who are running flake8 that way 2017-05-07 16:31:33 +01:00
w0rp
05bd4f591c Escape JavaScript executables in commands 2017-05-07 16:19:40 +01:00
w0rp
4228c503f4 #335 Detect flake8 in vritualenv, and escape the executable path 2017-05-07 16:16:17 +01:00
w0rp
02f6fba6cb Remove a comment we don't need any more 2017-05-07 15:29:16 +01:00
w0rp
67beece06c Update the example GIF so it looks a bit nicer 2017-05-07 15:17:30 +01:00
w0rp
673e36b2ef Sleep to fix Travis builds 2017-05-06 23:33:38 +01:00
w0rp
a9c5e14fc9 Fix #363 - Detect virtualenv executables and fix import paths for mypy. Use lint_file for mypy 2017-05-06 23:19:54 +01:00
w0rp
702b203c51 Make the nimcheck tests more reliable 2017-05-06 23:06:51 +01:00
w0rp
07bcbd4c06 Escape the pylint executable appropriately 2017-05-06 21:20:02 +01:00
w0rp
f2c9fc403a Fix #208 - Use the file on disk for pylint, and follow import paths 2017-05-06 19:30:41 +01:00
w0rp
2e1c9b0fa5 #208 Automatically detect pylint in virtualenv directories 2017-05-06 19:11:43 +01:00
w0rp
bf8aae02e8 Fix #534 - Stop other higlights being restored when buffers are hidden and shown again 2017-05-06 16:20:39 +01:00
w0rp
0ac82f0a17 #532 Rename a Vint variable so it's more obvious 2017-05-06 10:14:03 +01:00
w0rp
3ecdb52e6c Make the gobuild tests work better when running them directly 2017-05-06 10:10:24 +01:00
Alexandr
bf0b2cfd84 go build: skip not current buffer (#531)
* go build: skip not current buffer

* fix gobuild_handler.vader
2017-05-06 10:08:34 +01:00
w0rp
ab9afaa2bf Add a has() wrapper we can override for tests, and add a function for generating paths up to the root directory to search through 2017-05-05 23:03:19 +01:00
w0rp
6b15c7c9fd Try and make the sign tests pass more often 2017-05-05 10:36:23 +01:00
w0rp
d1cc1de6a5 Allow the Brakeman tests to be run directly 2017-05-05 10:14:52 +01:00
Eddie Lebow
ba7999dae0 [RFC] Add Brakeman for Ruby on Rails (references #385) (#509)
* Add brakeman for Ruby on Rails
2017-05-05 10:05:53 +01:00
w0rp
14f3fc777f #427 Implement b:ale_warn_about_trailing_whitespace 2017-05-04 23:50:11 +01:00
w0rp
c2a0847f99 #502 Parse more undefined symbol errors 2017-05-04 23:34:52 +01:00
w0rp
8e70dc14f2 Fix #502 - Report undefined symbol errors better for javac 2017-05-04 23:19:58 +01:00
w0rp
528355e2c6 Fix #501 - Do not run javac when it is just a stub asking you to install Java on Mac OSX 2017-05-04 17:14:48 +01:00
w0rp
ab7ab7d6e3 Fix #530 - Fix LaTeX and TeX duplicate entries in documentation 2017-05-03 23:35:33 +01:00
w0rp
0aed51565e Fix #528 remove and restore highlights when buffers are hidden and shown 2017-05-03 23:28:57 +01:00
w0rp
858c1c47ae Merge pull request #524 from adriaanzon/fix-defaulting-to-fish
shell: Don't default to fish
2017-05-03 00:27:55 +01:00
Adriaan Zonnenberg
768a5e7421 Document that ale_sh_shell_default_shell won't default to fish 2017-05-03 00:34:17 +02:00
w0rp
3573975934 Fix #410 - Use compile_commands.json files for clang-tidy, and check files on disk instead 2017-05-02 22:44:08 +01:00
w0rp
eb8bd26776 #392 - Detect and use compile_commands.json for cppcheck 2017-05-02 21:18:17 +01:00
Francis Agyapong
36314aeaf2 Add kotlinc checker for kotlin (#526)
* Add kotlinc checker for kotlin
2017-05-02 18:27:04 +01:00
Adriaan Zonnenberg
dce99faf8f shell: Don't default to fish 2017-05-01 21:24:16 +02:00
Robert J
d5c135cfaf Glue for Vale (#522)
Add Vale linter definitions
2017-05-01 16:06:04 +01:00
w0rp
5dcc77e8c8 Merge pull request #521 from adriaanzon/rename-sh-linter-options
Rename g:ale_linters_sh_* to g:ale_sh_*
2017-05-01 16:05:29 +01:00
Adriaan Zonnenberg
b0bba34ea2 Rename g:ale_linters_sh_* to g:ale_sh_* 2017-04-30 22:38:28 +02:00
w0rp
6547adcf2f Run the lint_file checks synchronously, so the tests will consistently pass 2017-04-30 10:09:26 +01:00
w0rp
a6cadaabef Fix #356 Don't complain about #pragma once in C++ headers 2017-04-30 00:31:52 +01:00
w0rp
2c7d14809d Set GCC flags appropriately for older versions 2017-04-29 20:00:42 +01:00
w0rp
dfb10f1db2 Merge pull request #519 from AlexMasterov/feature/lua-luacheck-options
Add luacheck option to pass in more options
2017-04-29 18:06:55 +01:00
w0rp
6fc3954bd3 Cover the new path functions with some tests 2017-04-29 18:03:08 +01:00
w0rp
0b4acd6453 Fix #518 Fix handling of spaces in filenames for various linters 2017-04-29 17:33:18 +01:00
w0rp
cbb01e32b9 Cache executable calls to make things slightly faster 2017-04-29 11:58:50 +01:00
Alex Masterov
9cea780121 Add luacheck option to pass in more options 2017-04-29 08:58:35 +03:00
w0rp
e417dafa78 Merge pull request #514 from adriaanzon/buffer-local-options-doc
Add tags for buffer-local variants of each linter option
2017-04-28 17:06:38 +01:00
w0rp
944564bb8c Merge pull request #513 from blueyed/custom-checks-dirs
custom-checks: handle multiple dirs
2017-04-28 15:36:12 +01:00
w0rp
49e68fc093 Merge pull request #512 from dansdantas/add-xo-references-on-readme
add xo reference for javascript linters on readme
2017-04-28 15:31:06 +01:00
Adriaan Zonnenberg
7230cbe9e4 Use ale#Var in linters that didn't use it yet 2017-04-28 00:01:01 +02:00
Adriaan Zonnenberg
ba6dbde906 Add tags for buffer-local variants of each linter option 2017-04-27 23:04:34 +02:00
Daniel Hahler
236da06050 custom-checks: handle multiple dirs
This also fixes a [shellcheck issue](https://github.com/koalaman/shellcheck/wiki/SC2013).
2017-04-27 22:09:23 +02:00
Daniel Dantas
248901d589 add xo reference for javascript linters on readme 2017-04-27 14:30:39 -03:00
w0rp
10679b29c3 Sort out some documentation for ReasonML 2017-04-27 00:23:06 +01:00
w0rp
fbed7c15b9 Merge pull request #504 from bassjacob/master
Create reasonml merlin linter
2017-04-27 00:20:24 +01:00
w0rp
447917e348 #427 Output buffer variables when buffer numbers are strings 2017-04-27 00:15:16 +01:00
w0rp
6853d2c304 #427 - Output buffer-local variables with :ALEInfo 2017-04-27 00:07:41 +01:00
w0rp
b25dbd6ea5 Fix #506 - Don't set signs for buffers which don't exist 2017-04-26 23:32:20 +01:00
w0rp
ce2f777e33 Fix #505 Stop g:ale_lint_on_filetype_changed linting when you open buffers 2017-04-26 23:02:00 +01:00
Jacob Bass
4db5f3923d Create reasonml merlin linter
copy @andreypopp 's ocaml merlin linter from this project into reason
2017-04-26 19:29:09 +10:00
w0rp
65fc4aeb1e Merge pull request #503 from adelarsq/patch-1
Correcting wrong link for erubi
2017-04-26 07:25:53 +01:00
Adelar da Silva Queiróz
741d86e137 Update README 2017-04-25 21:53:37 -03:00
w0rp
5d5ba2a780 #427 Allow linters and aliases to be configured in buffer local variables 2017-04-25 23:52:13 +01:00
w0rp
45c2d6b580 Fixes #361, fixes #417 Get classpaths from Maven, and automatically detect src/main/java paths 2017-04-25 22:32:48 +01:00
w0rp
fe51866dfc Credit the original author of the Ruby handler 2017-04-25 20:50:56 +01:00
Matthias Günther
c55064881d Add erb linter (#497)
* Add eruby linter

* Update README with erb linter

* Fix example and contributions

* Remove trailing newline

* Fix for Vimscript style guide

* Eruby-linter: codereview with @w0rp
- read from stderro output_stream

* Eruby-linter: codereview => add handler for ruby

* Eruby-linter: codereview
- eruby and ruby lint use the same ruby-handler (removes
  duplicated handling logic)

* Eruby-linter: try to fix tests
2017-04-25 18:38:02 +01:00
w0rp
a25b55b954 Fix #469 - Remove Unicode quotes from GCC errors, which cause issues 2017-04-24 23:00:43 +01:00
w0rp
3345bf20ca Fix #450 Document how linters are loaded 2017-04-24 22:40:15 +01:00
w0rp
a03121f5b0 Break shared handlers up into their own files, and fix stylelint error handling 2017-04-24 22:27:18 +01:00
w0rp
b4c0335ebc Handle Unix errors with no space after the colon 2017-04-24 21:38:12 +01:00
w0rp
99afe586b3 Simplify some code and format some tests better 2017-04-24 21:11:33 +01:00
w0rp
689921d7e3 Merge pull request #498 from wizzup/haskell-hdevtools
update doc/ale.txt
2017-04-24 19:01:04 +01:00
wisut hantanong
368adb5c3a update doc/ale.txt 2017-04-24 17:27:45 +07:00
w0rp
49c9b689ce Comment-out the explanations in the Issue and PR templates 2017-04-23 18:17:13 +01:00
w0rp
9238976522 Add some more tags to the documentation, for easy references 2017-04-23 18:06:26 +01:00
Jason Tibbitts
c1a2d26711 Disable rpmlint by default (#492)
* Disable rpmlint by default as it is not safe.
2017-04-20 16:55:20 +01:00
w0rp
925f24707f Mention the IRC channel in the README 2017-04-20 16:02:51 +01:00
w0rp
7fd7630153 Fix #398 - Report problems with the eslint configuration file 2017-04-20 13:07:32 +01:00
Eddie Lebow
0384cabd77 Add the Reek checker for Ruby. (#490)
Add the Reek checker for Ruby.
2017-04-20 07:37:08 +01:00
w0rp
c6ef9e28a5 #427 Document the buffer variables, at least slightly 2017-04-19 23:56:02 +01:00
Jason Tibbitts
4eeb4783d3 Add rpm spec file linter (rpmlint) (#486)
* Initial attempt at an rpmlint linter.

* Add some basic documentation.

* Play with indentation in the test file.

* Another attempt to fix the rpmlint test.

* Hopefully this does it.
2017-04-19 23:40:58 +01:00
w0rp
d8dcc56af5 Remove error highlights when buffers are cleaned up 2017-04-19 22:55:06 +01:00
Shane Smith
72449d7cb1 Add missing "use global" var for tslint (#484)
* Add missing "use global" var for tslint
* Add typescript tslint documentation
2017-04-18 09:28:54 +01:00
w0rp
bdad25eefd Add a function for getting matches, and use it to simplify a lot of code 2017-04-18 00:35:53 +01:00
w0rp
e237add9fd Move path functions to their own file 2017-04-17 23:29:02 +01:00
w0rp
6c762237ce Merge pull request #483 from emord/patch-1
Fix link to cppcheck
2017-04-17 17:17:22 +01:00
Jonathan Emord
6dab0efe19 Fix link to cppcheck 2017-04-17 10:30:20 -04:00
w0rp
dc72daaf1e Merge pull request #481 from jonsmithers/jshint-with-html
Make jshint work with html
2017-04-17 08:49:15 +01:00
Jon Smithers
dbf4f03607 Enable jshint to extract javascript from html 2017-04-17 00:11:39 -04:00
w0rp
430bff7532 Merge pull request #479 from adriaanzon/patch-1
Fix htmlhint variable names
2017-04-16 23:49:45 +01:00
Adriaan Zonnenberg
ffda9077aa Fix htmlhint variable names 2017-04-16 21:44:15 +02:00
Rafał Cieślak
2643f9f119 Flow: Fix case where 1st msg points to different file (#477)
* Flow: Fix case where 1st msg points to different file

* Remove `bufnr` from Flow handler output

* Fix the failing test & add a new one
2017-04-16 11:45:42 +01:00
w0rp
e97dada261 #427 Implement buffer variable overrides for all linter options 2017-04-16 01:24:08 +01:00
w0rp
e80116cee0 #427 Add a function for looking up ALE variables in buffer scope, and then global scope 2017-04-16 00:16:48 +01:00
w0rp
7682fab294 Fix #168 - Make the Fortran linter more configurable 2017-04-15 22:06:56 +01:00
w0rp
d824466230 Remove documentation for an option that was removed 2017-04-15 21:17:50 +01:00
w0rp
35c831dd2c Merge pull request #471 from breed808/gometalinter
Add gometalinter linter for go files
2017-04-15 21:09:23 +01:00
w0rp
f0d76bc298 Use g:ale_linters for turning gometalinter on, and update documentation as appropriate 2017-04-15 21:04:43 +01:00
w0rp
296ae92da4 Merge pull request #478 from jordanandree/crystal-lint-file
turn on lint_file for crystal build to resolve `require` path errors
2017-04-15 16:00:25 +01:00
Jordan Andree
11a4af2727 turn on lint_file for crystal build to resolve require path errors 2017-04-15 10:37:32 -04:00
w0rp
706dd050f2 Fix #257 in preparation for #427, standardise options with fallbacks, and make it so every value can be computed dynamically 2017-04-15 13:36:16 +01:00
w0rp
2f009690c3 Fix the custom-checks script, and check for more problems 2017-04-15 12:52:25 +01:00
w0rp
cab68cba25 Make code more consistent 2017-04-15 12:52:08 +01:00
w0rp
c9a5d9845b Explain some code better 2017-04-15 12:13:31 +01:00
w0rp
7c49f5d4cc Mention Crystal in the online documentation 2017-04-15 11:37:09 +01:00
w0rp
d5ccb1a7a1 Merge pull request #474 from jordanandree/add-crystal-lint
Add linter for Crystal lang
2017-04-15 11:34:20 +01:00
Adriaan Zonnenberg
8351bdbc06 Add SQL linter sqlint, closes #395 (#472) 2017-04-15 11:24:05 +01:00
jordanandree
abdfaaf84f add crystal lint
- invokes via `crystal build` command without codegen
- adds vader tests
2017-04-13 21:33:36 -04:00
Ben Reedy
54991f3082 Add documentation for gometalinter 2017-04-13 19:38:32 +10:00
Ben Reedy
1167616726 Add gometalinter for go files
Linter is disabled by default (see g:ale_go_gometalinter_enabled) as it
conflicts with a number of established ALE linters (golint, govet,
gosimple, staticcheck, etc).
2017-04-13 19:38:32 +10:00
w0rp
349b31104a Merge pull request #470 from breed808/gobuild
Fix gobuild linter with multiple source files
2017-04-13 10:25:48 +01:00
Ben Reedy
a2bb45e974 Fix gobuild linter
Resolves issues with gobuild linter with multiple go source files
belonging to the same go package.
2017-04-13 18:58:55 +10:00
w0rp
e2287a42bc Merge pull request #463 from valtermro/multi-ft-aliases
Add support for multiple filetypes in filetype aliasing
2017-04-13 00:02:18 +01:00
w0rp
8afd914c6d Merge pull request #467 from adriaanzon/php-fix-double-errors
PHP: Fix double errors and support fatal errors
2017-04-12 23:58:01 +01:00
valtermro
475dd2e76a Add support for multiple filetypes in filetype aliasing 2017-04-12 19:47:34 -03:00
w0rp
266b3a2ddf Merge pull request #466 from adriaanzon/fix-markdown
Some fixes in markdown documents
2017-04-12 23:37:07 +01:00
w0rp
c2fdb399a7 Set a default for the puppetlint options so the linter will behave like it always has done, by default 2017-04-12 23:25:31 +01:00
rcn
7e0e7359c0 Add puppet-lint config options and documentation (#462) 2017-04-12 23:23:25 +01:00
w0rp
ceb910e78c Make some temporary file tests more reliable 2017-04-12 23:17:55 +01:00
Adriaan Zonnenberg
7dbf32d0d7 PHP: Fix double errors and support fatal errors 2017-04-12 23:59:12 +02:00
Adriaan Zonnenberg
20900dd12f Fix broken links 2017-04-12 22:53:20 +02:00
Adriaan Zonnenberg
10037c5133 Fix markdown headings
They were all the same size
2017-04-12 22:26:19 +02:00
Adriaan Zonnenberg
d2defc8f47 Fix markdown indentation 2017-04-12 22:22:56 +02:00
Ben R
0ce46fe7c8 Make go build linter check files on disk (#465)
* #418 Make `go build` linter check files on disk

* Omit errors from imported go packages
2017-04-12 10:53:33 +01:00
w0rp
65fe914fb8 #392 Handle clang header errors too 2017-04-11 21:05:41 +01:00
w0rp
b06b832447 #392 Report errors inside of headers, in a very basic way 2017-04-11 20:32:57 +01:00
w0rp
8b890caa31 Merge pull request #458 from Szero/master
Added shellcheck executable and options variable
2017-04-11 09:26:58 +01:00
w0rp
5aa52fc450 Merge pull request #460 from TheLonelyGhost/master
Typo correcting 3.0.7 -> 0.3.7 for `vint --no-color`
2017-04-10 22:05:28 +01:00
David Alexander
593dbe7556 Typo correcting 3.0.7 -> 0.3.7 for vint --no-color 2017-04-10 16:44:14 -04:00
Szero
8e33abaeab added shellcheck executable and options variable
updated docs
2017-04-09 19:54:25 +02:00
w0rp
b9bb4adacd Add a pull request template which asks for some common requests by yours truly 2017-04-08 21:53:39 +01:00
w0rp
94d5fcb15a Merge pull request #456 from mathsaey/patch-1
Added a missing space to the nimcheck command
2017-04-08 21:35:49 +01:00
Mathijs Saey
588d338342 Added a missing space to the nimcheck command 2017-04-08 20:32:47 +02:00
Brandon Roehl
4e40e8cb60 Add Ruby MRI linter (#453)
* Added ruby mri linter

* Added to the list of supported linters

* Async and now with 4 spaces

* Vader tests for ruby

* Match style choices

* Vader test for the Ruby handler now works and passes
2017-04-08 11:24:20 +01:00
Shalom Yiblet
cc8eb05860 improved the sml linter (#445)
* improved the sml linter

* made matching operator agnostic to user settings

* added tests for sml
2017-04-08 11:23:11 +01:00
Mathijs Saey
434283ed1a Update nimcheck.vim (#451)
Added a '--threads:on' switch to the nim check command so that it doesn't produce errors when using one of the various modules that require threads.
2017-04-07 15:42:46 +01:00
Adrian
d28d7f732a Add support for linting Handlebars templates with ember-template-lint (#452)
* Ember-template-lint Handlebars template linter: initial handler, test.

* Handlebars support with ember-template-lint: basic documentation entries.
2017-04-07 15:38:50 +01:00
José Júnior
4caf273d53 Adds options to foodcritic linter (#437)
* Adds options to foodcritic linter

Adds a way to pass command line options to the foodcritic command and
documentation about it.

* Creates a simple test for foodcritic command callback

This test simply runs the GetCommand function for the foodcritic linter
and feeds it with some test variables to assert the command line is
being created/escaped correctly.

* Makes foodcritic linter use a command callback

Following review comments, changes the foodcritic linter to use a
`GetCommand` callback for the `command_callback` linter option.

Makes sure that `~` are escaped: flags on foodcritic command line are
negated by adding a `~` in front of the specific cop name:

```
foodcritic -t ~FC011
```

But the way the commands are executed cause foodcritic to fail (since
tilde is recognized as home directory).

* Fixes the doc to include new variables
2017-04-05 18:21:47 +01:00
w0rp
c7bd5cc0ba Cover handling of swiftlint errors with tests 2017-04-03 23:43:31 +01:00
w0rp
f3fa8db4cf #447 Pass a temporary file to the shell linter instead 2017-04-03 23:11:25 +01:00
w0rp
4fc8452838 #447 Support zsh in the shell linter 2017-04-03 22:51:39 +01:00
w0rp
85d86620f7 Cover basic GCC functionality with tests 2017-04-03 22:24:30 +01:00
w0rp
10d8b4bfd7 Update the Makefile to use the latest Docker image 2017-04-03 22:17:39 +01:00
w0rp
22307ccabc Add g++ to the Dockerfile 2017-04-03 21:57:24 +01:00
w0rp
5f02595ea4 #380 Add some experimental code for killing long-running processes in NeoVim 2017-04-03 19:50:57 +01:00
w0rp
9691649b65 #446 Do not run ALE if inside of a command window 2017-04-03 19:21:11 +01:00
w0rp
b7c79974bb #446 Fix g:ale_lint_on_text_changed compatibility issues 2017-04-03 19:04:02 +01:00
w0rp
927ee79026 Update the test suite so it uses the latest Docker image, and use Bourne shell for most tests, so weird shell issues are easier to catch. 2017-04-02 22:57:29 +01:00
w0rp
e7aa079982 Add Bash to the Dockerfile, which no longer comes with vim-testbed by default 2017-04-02 22:44:36 +01:00
w0rp
e4f18770e0 Update the Makefile to use the latest Docker build 2017-04-02 22:29:01 +01:00
w0rp
bfc16ed2ec Allow for any current Python2 and PIP versions in the Docker build 2017-04-02 22:21:19 +01:00
w0rp
e24f9d263c Make the Dockerfile build again 2017-04-02 21:41:53 +01:00
w0rp
480c8504a6 Add C and C++ tools to the Dockerfile 2017-04-02 21:29:06 +01:00
w0rp
7c736579b7 Fix #438 Create Java .class files for javac in a temporary directory 2017-03-31 20:14:53 +01:00
w0rp
7a8dbe1139 Clean up some whitespace 2017-03-31 19:50:52 +01:00
Steven Lu
ef5b900657 adds line highlights style (#436)
* adds line highlights style

* adding doc for the new highlight styles.

* missing space
2017-03-31 19:22:25 +01:00
Adriaan Zonnenberg
4b0f3257dd Remove 'col' from linters where it is hardcoded to 1 (#434)
* Remove 'col' from linters where it is hardcoded to 1

When 'col' is 1, the first column will get highlighted for no reason. It
should be 0 (which is the default).

In the scalac linter there was also a check about the outcome of
`stridx`. It would set l:col to 0 if it was -1, and then it uses
`'col': l:col + 1` to convert the outcome of `stridx` to the actual
column number. This will make 'col' equals 1 when there is no match. We
can remove the check because `-1 + 1 = 0`.

* Remove outdated comments about vcol

vcol was added as a default, and the loclists that follow these comments
do not contain 'vcol' anymore
2017-03-30 23:33:38 +01:00
w0rp
6c97cd335b Merge pull request #429 from breed808/go
Add support for gosimple and staticcheck
2017-03-30 23:28:19 +01:00
taylorskalyo
36f9631512 Add options to facilitate linting only in normal mode (#425)
* [#420] Add options to facilitate linting only in normal mode

ale_lint_on_text_changed:
Allow setting to 'insert' or 'normal' to lint when text is changed only in
insert or normal mode respectively.

ale_lint_on_insert_leave:
This flag can be set to 1 to enable linting when leaving insert mode.

* [#420] Test updated global options

Ale should
- bind to TextChanged events when g:ale_lint_on_text_changed = 1
- bind to TextChanged events when g:ale_lint_on_text_changed = 'always'
- bind to InsertLeave event when g:ale_lint_on_insert_leave = 1
2017-03-30 23:21:37 +01:00
w0rp
3a74d242f9 Merge pull request #431 from janclarin/master
Check for existence of g:ale_emit_conflict_warnings before checking value
2017-03-30 16:37:28 +01:00
Jan Clarin
e59e57d2e4 Document conflicting plugins check 2017-03-30 01:16:40 -06:00
Jan Clarin
f88f59afb8 Fix #426 check for g:ale_emit_conflict_warnings existence 2017-03-30 01:16:34 -06:00
Ben Reedy
43f24f4c01 Add support for gosimple and staticcheck 2017-03-30 11:49:52 +10:00
w0rp
2a88b60ff1 Fix #260 automatically set .csslintrc files from ancestor directories 2017-03-29 00:56:39 +01:00
w0rp
8e71f233da Use the lint_file option so the Cargo linter will only be run against files on disk 2017-03-29 00:34:03 +01:00
w0rp
3f5cb55e73 Make the tslint file match the style in the rest of the codebase 2017-03-29 00:28:01 +01:00
w0rp
a4220b99a6 Fix #421 Automatically detect create-react-app paths 2017-03-29 00:21:27 +01:00
w0rp
4b9b4e3338 #326 Document existing StandardJS options 2017-03-28 23:49:06 +01:00
w0rp
81b49b2dff Merge pull request #424 from adriaanzon/command-enable-disable
Add :ALEEnable and :ALEDisable commands
2017-03-28 23:28:13 +01:00
w0rp
d7f8324c3c Move linter documentation into separate files 2017-03-28 23:25:44 +01:00
Adriaan Zonnenberg
6a5d8ba5d0 Add :ALEEnable and :ALEDisable commands 2017-03-29 00:04:58 +02:00
w0rp
094eeb2673 Merge pull request #423 from adriaanzon/command-bar
Allow commands to be chained using a `|`
2017-03-28 22:17:18 +01:00
Adriaan Zonnenberg
fe47649a23 Allow commands to be chained using a | 2017-03-28 19:27:07 +02:00
w0rp
ab3fd2e849 Fix #130 - Run linters when the filetype is changed 2017-03-27 22:40:25 +01:00
w0rp
c9ee3efc11 Enabling linting on save by default, re #333 2017-03-27 20:36:35 +01:00
w0rp
4abefc189c Cover the rubocop handler with tests 2017-03-27 19:53:12 +01:00
Gabriel Holodak
b9c078da20 Adjust rubocop error levels
Consider rubocop fatal errors as ALE errors, and rubocop style warnings
as ALE warnings.
2017-03-27 19:46:02 +01:00
w0rp
a1be697a02 Add a pause for the command chain test 2017-03-27 13:46:48 +01:00
w0rp
cd82740ade Document the Dogma linter 2017-03-27 13:02:25 +01:00
w0rp
5de084557b Merge branch 'add-dogma' 2017-03-27 12:57:00 +01:00
w0rp
82fde0ea51 Use the same formatting as other files for the dogma linter file, and cover the Handler function with tests 2017-03-27 12:56:54 +01:00
Idan Arye
2f40953e03 Make cargo linter lighter: (#408)
- Use `cargo check` instead of `cargo build` when
  `g:ale_rust_cargo_use_check` is truish.
- Use `--frozen` to avoid locking the project.
2017-03-27 12:37:00 +01:00
w0rp
8ca82af4ab Merge pull request #414 from lucaskolstad/add_asm_linter
Add support for ASM files using GCC
2017-03-27 12:32:42 +01:00
w0rp
c467a07512 Don't export the ISSUE_TEMPLATE in archives 2017-03-26 22:42:37 +01:00
w0rp
5582711680 Fix #413 Stop tests failing randomly due to issues with reading buffers too quickly 2017-03-26 02:13:21 +01:00
Lucas Kolstad
d84d91ff35 Add support for ASM files using GCC 2017-03-25 16:36:17 -07:00
w0rp
822b19ac83 Merge pull request #411 from lucaskolstad/lint_on_enter_bugfix
#272 Check if quickfix window is open before reopening
2017-03-24 21:04:49 +00:00
Lucas Kolstad
b3f6f56745 Fix #272 by checking if quickfix is open before reopening to avoid triggering a BufEnter event that causes quickly repeating linting runs when g:ale_lint_on_enter = 1.
Add test assertions that quickfix window closes when lists become empty again.
2017-03-24 10:39:37 -07:00
w0rp
a5ac3e4e4b Merge pull request #409 from lucaskolstad/document_hdevtools_support
Document support for hdevtools
2017-03-23 23:56:45 +00:00
Lucas Kolstad
3ca4c7de96 Document support for hdevtools 2017-03-23 15:57:37 -07:00
Blaž Hrastnik
ba97017380 Add the dogma checker. 2017-03-23 01:13:33 +09:00
baabelfish
9f3cdf8270 Fix problems with nim check (#404)
* Fix problems with nim check

- Multi file errors are not shown in the same buffer
- Fixes parsing of error type that contain ':'

* Remove redundant fnameescape
2017-03-22 09:11:32 +00:00
w0rp
59b5644fb3 Clean up the documentation some more, and make the description of the ALELint autocmd clearer 2017-03-22 08:57:29 +00:00
w0rp
18bae7da2e #333 Finish implementing the lint_file option 2017-03-21 14:52:02 +00:00
w0rp
c59204b94f Remove a test for experimental functionality which was removed 2017-03-21 13:58:08 +00:00
w0rp
3e13e10e03 #333 Change arguments for ale#Queue so they are more obvious, and check files in more places 2017-03-21 13:38:27 +00:00
w0rp
2d1d6fb850 Add some utility functions for changing directories for commands 2017-03-21 13:09:02 +00:00
w0rp
6550cdfbd0 Make it clearer that global variables should be set in vimrc, in the Rust documentation 2017-03-21 12:39:12 +00:00
Dylan Araps
551d53aa67 Fix shellcheck typo in docs. shellckeck -> shellcheck (#402) 2017-03-21 12:35:44 +00:00
Ruben Paz
5122dc498d tslint parameterized executable and config path (#400)
* Allow modifying the location of the tsling executable

* Allow definition of config file path

* fnameescape configuration file
2017-03-21 12:30:32 +00:00
w0rp
51729346bf Merge pull request #399 from baabelfish/master
Add support for nim check
2017-03-19 20:34:11 +00:00
baabelfish
297bc8553c Add support for nim check 2017-03-18 19:45:37 +02:00
w0rp
e7d32fe376 #333 Pass in a flag indicating that linters should be run against files, and clear more jobs 2017-03-14 23:51:57 +00:00
w0rp
790c614b7a #333 Update line numbers for loclist items when current sign_id values are set 2017-03-14 23:04:25 +00:00
w0rp
d19a35485f #333 Keep any loclist items which have match_id values set on them 2017-03-14 20:26:44 +00:00
w0rp
5836d9a9a7 Stop using globstar for tests, so they can be run on Mac OSX 2017-03-14 15:08:26 +00:00
w0rp
6f0fc965ab #394 Attempt to fix running linters when bufwinid() doesn't exist 2017-03-13 23:45:32 +00:00
Markus Doits
fae26369d4 add slim-lint (#388)
* add slim-lint

* add slim readme entry

* add slim entry to doc

* add slimlint vader test
2017-03-13 23:21:59 +00:00
w0rp
3f3d8b0014 Merge pull request #393 from naoina/fix-coffeelint-pattern
Fix pattern of output for coffeelint
2017-03-13 23:18:06 +00:00
Naoya Inada
e969d97843 Fix pattern of output for coffeelint 2017-03-13 20:09:49 +09:00
w0rp
711ab99362 #333 Remember the IDs for highlights 2017-03-12 22:46:33 +00:00
w0rp
382e569f66 Revert "Don't save the sign ID on loclist items. This approach won't work."
This reverts commit f25a543260.
2017-03-12 22:34:32 +00:00
w0rp
f25a543260 Don't save the sign ID on loclist items. This approach won't work. 2017-03-12 21:48:40 +00:00
w0rp
a4ae5ca997 Merge pull request #389 from jparise/erlc-output-tmpdir
Write erlc output files to the temporary directory
2017-03-12 16:50:17 +00:00
Jon Parise
f3eab445ee Use tempname() to create the temporary output file
Also, "manage" this filename so ALE can clean it up.
2017-03-11 19:33:32 -08:00
w0rp
4bf6784d7d #333 Save sign IDs back on loclist items, and make it possible to get line numbers again 2017-03-11 20:33:29 +00:00
w0rp
ca78e4c150 Support older versions of Vint 2017-03-11 19:45:33 +00:00
w0rp
892fff03cc Cover error priority in the sign tests 2017-03-11 17:39:51 +00:00
w0rp
d58a18b8ed #277 #318 Support all same-directory includes for gcc and clang 2017-03-11 16:48:49 +00:00
Paul Johnson
c2ceb9e085 FIX #344 - Add options to Perl linter
Conflicts:
	doc/ale.txt
2017-03-11 14:53:30 +00:00
Jon Parise
7d6b313065 Write erlc output files to the temporary directory
In particular, if we're working with a leex (.xrl) or yecc (.yrl) source
file, erlc would otherwise generate the corresponding .erl file in the
current directory (often the project root), which is generally not what
we want.

Unconditionally writing erlc output to a temporary directory also
matches Flycheck's behavior.
2017-03-10 08:24:21 -08:00
w0rp
bd07d04670 Cover parsing of Italian signs with tests 2017-03-10 13:21:08 +00:00
w0rp
3b981e22cc Fix sign tests. 2017-03-09 22:45:22 +00:00
w0rp
587360e760 Group sign tests 2017-03-09 22:18:45 +00:00
w0rp
3cababc83b Fix #386 report problems with eslint configuration files 2017-03-09 21:05:00 +00:00
w0rp
fc072a0772 Get milliseconds timestamps without system() calls for tests 2017-03-09 20:22:02 +00:00
w0rp
ad49846a48 #376 Use the window ID for a given buffer for setting the loclist 2017-03-09 00:43:53 +00:00
w0rp
1c3f0b1e19 #333 Add the List needed for the lint_file option, and option itself. Neither do anything meaningful yet 2017-03-08 00:23:14 +00:00
w0rp
21caf54543 Make the navigation commands only work with ALE's pre-sorted list 2017-03-07 23:31:25 +00:00
w0rp
b487c62130 Speed up and simplify the custom checks a lot 2017-03-07 00:16:35 +00:00
w0rp
b3ab89ac15 Make sure to reset linters after running the nix handler test 2017-03-06 23:34:19 +00:00
w0rp
663d8f832f Group handler test cases in a directory 2017-03-06 23:32:48 +00:00
w0rp
75a2dc5ff5 Complain loudly when other conflicting plugins are installed 2017-03-06 23:15:34 +00:00
w0rp
70fb1606ad Merge pull request #383 from alibabzo/add-nix-linter
Add support for nix linting
2017-03-06 18:33:00 +00:00
Alistair Bill
f659d97504 Add nix handler test cases 2017-03-05 20:36:29 +00:00
Alistair Bill
be57b545b7 Add support for nix linting 2017-03-05 20:36:29 +00:00
w0rp
76df2d393b Fix detailed messages with newline characters 2017-03-04 23:55:12 +00:00
w0rp
c1947d13cf #384 Try and stop stupid errors coming from the gobuild functions 2017-03-04 23:34:57 +00:00
w0rp
fb8df75ac3 Remove a now redundant line 2017-03-04 01:22:44 +00:00
Patrick Lewis
9e9e15bc87 Add hamllint linter for Haml (#377)
* Add hamllint linter for Haml

* Simplify hamllint
2017-03-03 20:27:07 +00:00
w0rp
2750c605c1 Fix cursor issues, and clean up the cursor tests 2017-03-03 20:14:03 +00:00
w0rp
da8a0f25cc Fix the tests again 2017-03-03 19:37:24 +00:00
w0rp
1f211dbe3e Merge pull request #374 from jwoudenberg/master
WIP: Add support for error details
2017-03-03 19:36:52 +00:00
Jasper Woudenberg
7030758da6 Fix documentation error. 2017-03-02 23:20:00 -08:00
Jasper Woudenberg
edc5dee226 Merge remote-tracking branch 'upstream/master' 2017-03-02 19:04:28 -08:00
Jasper Woudenberg
ae88263f0f Add documentation for ALEDetail 2017-03-02 18:55:22 -08:00
Jasper Woudenberg
f5ddc51d85 Address some feedback 2017-03-02 18:40:07 -08:00
w0rp
969274ccc2 Try and fix issues on Travis 2017-03-03 01:01:24 +00:00
w0rp
0e50a7d278 Fix #373 - echo the cursor message after lint cycles or when leaving Insert mode 2017-03-02 23:36:31 +00:00
w0rp
fab9e8f5ea Merge pull request #375 from manuelvio/patch-1
Update sign regex for LANG = it_IT.UTF-8
2017-03-02 22:04:55 +00:00
Manuel Unno Vio
79f18e7d87 Update sign regex for LANG = it_IT.UTF-8
I've noticed that signs weren't unplaced and, learning that this was an issue depending on locale and :sign place, I've fixed the regular expression used to match those messages in my locale (it_IT.UTF-8).
2017-03-02 12:17:43 +01:00
Jasper Woudenberg
70711022db Add support for error details
Some review needed.
2017-03-01 23:27:48 -08:00
Daniel M. Capella
18508f7453 proselint: Add more supported filetypes (#367)
* proselint: Add more suported filetypes

* proselint: Minor consistency fixes

* Vim help: Disable linters by default
2017-03-02 00:06:09 +00:00
Adriaan Zonnenberg
6befe9e37c Fix PHP column matching for unexpected single quotes (#370)
* PHP: Fix column matching for unexpected single quotes

Unexpected single quotes resulted in an empty match, because PHP
surrounds the errors with quotes, and we check for the next quote to be
the ending delimiter.

For example: an unexpected string 'foo' would be presented as
`unexpected ''foo''`, and then the match would be `''`. The inner part
of that match is an empty string.

This adds a check for the keyword "expecting". Any quote after
"expecting" won't be matched, so we can use greedy matching instead of
non-greedy.

* PHP: Use "very magic"

The pattern started to get unreadable

Also replaced non-greedy matching (`\{-}`) by greedy matching, because
we don't need to match non-greedily anymore and it reads a little nicer.

* PHP: Add tests for column matches

And with that, also a test for unexpected single quotes.
2017-03-01 23:26:03 +00:00
w0rp
f578c4a792 Merge pull request #369 from equal-l2/fix-cpp-clang-standard-flag
Use latest C++ standard
2017-03-01 15:19:52 +00:00
equal-l2
4fa52fd98a Use latest C++ standard 2017-03-01 02:42:35 +09:00
w0rp
ceeff6c723 Fix #288 - Add a command for running ALE 2017-02-28 09:10:58 +00:00
w0rp
31d328b272 Fix a mistake in the documentation 2017-02-27 22:22:39 +00:00
w0rp
7a92c3a046 Merge pull request #366 from kbenzie/cmakelint
Add cmakelint support for cmake filetype
2017-02-27 22:21:42 +00:00
w0rp
b2fe1b2567 Copy all loclist items returned from handlers, and set up defaults for convenience 2017-02-26 14:51:22 +00:00
w0rp
f1e80b800c Merge pull request #364 from jsivak/feature/pylint_symbol
Add the pylint symbol name for the msg_id of the error/warning.
2017-02-25 19:19:45 +00:00
John Sivak
9c93e79a66 Add display of the pylint symbol name for the msg_id. 2017-02-25 13:23:36 -05:00
Kenneth Benzie (Benie)
b5e603bbc5 Add cmakelint support for cmake filetype 2017-02-25 17:27:03 +00:00
w0rp
f48f306ab9 Create a Contributing section in the README 2017-02-23 22:51:08 +00:00
Jon Parise
c2c6c9f491 Fix Credo's line-matching pattern (#360)
* Fix Credo's line-matching pattern

In d3e7d3d5, the line matching pattern was changed to handle filenames
other than `stdin`. Unfortunately, this broke the pattern's ability to
reliably extract both line and column numbers because the latter is an
optional match and the filename portion was very greedy. This resulted
in line numbers being discarded (treated as part of the filename) and
column numbers being interpreted as line numbers.

This change simplifies the pattern to only anchor on the line's suffix,
ignoring the filename portion entirely.

Alternatively, we could use vim's `\f` ("file name characters") class,
but that could still run into problems when `:`'s naturally appear in
the filename.

* Add a Vader test case for the Credo handler
2017-02-22 23:33:05 +00:00
Chris Paul
fef3276f34 escape dot in maker regex (#357)
* escape dot in maker regex

* Create test_typecheck_handler

* Rename test_typecheck_handler to test_typecheck_handler.vader
2017-02-21 20:32:37 +00:00
w0rp
6a02c5812c Fix #314 - quickfix should take precedence over loclist for jumping 2017-02-21 12:51:49 +00:00
w0rp
c310080359 #314 filter both lists, and add tests to cover the list retrieval 2017-02-21 12:46:07 +00:00
w0rp
1a9c8b8d06 Merge pull request #353 from pauloalem/master
Add sml support via smlnj
2017-02-21 12:10:48 +00:00
w0rp
884109c6f4 Add an extra custom check for using endif instead of end, etc. 2017-02-21 11:50:59 +00:00
w0rp
3c4af280f0 Remove a flaky PHP handler 2017-02-21 11:35:37 +00:00
w0rp
3786322cf0 Merge remote-tracking branch 'adriaanzon/php-columns' 2017-02-21 11:34:39 +00:00
w0rp
8eca101fd1 Merge pull request #348 from rob-b/add-hdevtools-linter
Add hdevtools linter for haskell
2017-02-21 11:09:15 +00:00
paulo alem
677e55df0f Add sml support via smlnj 2017-02-18 00:05:33 -02:00
Adriaan Zonnenberg
cca0222cf1 PHP: Make parser work with more error messages 2017-02-18 00:51:33 +01:00
Adriaan Zonnenberg
a18e172a96 PHP: Fix test for column highlighting 2017-02-18 00:04:59 +01:00
Rob Berry
06fe8a043f Add hdevtools linter for haskell
This adds support for the hdevtools haskell linter
https://github.com/hdevtools/hdevtools

The output for hdevtools is near identical to the ghc output so this
also extracts the ghc handler into the handle file and adds tests

* Add testing for previous major release of ghc
2017-02-17 17:18:38 +00:00
w0rp
b21ca4ed4e Use a more reliable method for getting an ID for a job 2017-02-17 10:19:44 +00:00
w0rp
bdbf36991d Prevent some stupid exceptions 2017-02-17 09:56:36 +00:00
w0rp
5041246c0e Modify the issue template to note how to capture the output of commands 2017-02-16 23:24:23 +00:00
w0rp
eac0a41ae1 #254 Add an option for logging the output of commands 2017-02-16 23:18:57 +00:00
w0rp
843370b96f #254 Capture command exit codes in the history 2017-02-16 22:19:53 +00:00
w0rp
ca17b5aebd Add an option for completely disabling command history, and add documentation 2017-02-16 21:33:44 +00:00
w0rp
3a2286a1b8 Refactor history management functions into their own file 2017-02-16 21:18:03 +00:00
w0rp
434ff01f59 Add a missing question mark 2017-02-16 21:00:39 +00:00
w0rp
8c3c84c45e Add an FAQ section to address concerns about battery life 2017-02-16 20:59:37 +00:00
w0rp
406d784f7a Merge pull request #350 from qantik/clang-fix
Fix clang++ flag typo
2017-02-16 20:38:51 +00:00
Andrea Caforio
a7272466f7 Fix clang++ flag typo. 2017-02-16 18:12:41 +01:00
Rob Berry
c4afd72792 Add hdevtools linter for haskell
This adds support for the hdevtools haskell linter
https://github.com/hdevtools/hdevtools

The output for hdevtools is near identical to the ghc output so this
also extracts the ghc handler into the handle file and adds tests
2017-02-16 10:06:48 +00:00
w0rp
8c758e339c Fix a typo 2017-02-15 23:01:15 +00:00
w0rp
9e7034c6e2 Fix #319 - Enable only cargo for Rust by default 2017-02-15 22:59:33 +00:00
Adriaan Zonnenberg
b2241e991b Support columns on php handler
Also added some tests for different error messages
2017-02-15 23:59:18 +01:00
w0rp
732e8a813f Merge pull request #346 from AlexMasterov/fix/yaml-yamllint-syntax
Fix 'yamllint' syntax
2017-02-15 22:24:58 +00:00
w0rp
ba1eb90212 #338 Don't do anything from tags files. 2017-02-15 22:03:18 +00:00
Alex Masterov
903a6dc885 Fix 'yamllint' syntax 2017-02-16 00:58:48 +03:00
w0rp
c49819e892 Merge pull request #345 from AlexMasterov/feature/yaml-yamllint-options
Add yamllint option to pass in more options
2017-02-15 21:45:19 +00:00
w0rp
cb60a2c06e Cover ALEToggle with Vader tests 2017-02-15 21:36:16 +00:00
w0rp
2e7050dbe2 Create a make target and variable for running specific tests 2017-02-15 20:40:50 +00:00
w0rp
721a850e21 Merge pull request #343 from vimeitor/master
Fix spelling
2017-02-15 19:48:41 +00:00
Alex Masterov
7ef1d485fe Add yamllint option to pass in more options 2017-02-15 11:36:16 +03:00
w0rp
14679f0bd4 Add an issue template 2017-02-14 23:56:14 +00:00
w0rp
0131526261 #254 Add a command for copying ALEInfo to your clipboard quickly 2017-02-14 23:45:22 +00:00
w0rp
ed370667c8 #254 Add command history to ALEInfo 2017-02-14 23:44:37 +00:00
w0rp
c460602cbb #338 Try and stop ALE from throwing ALEs when run from a sandbox 2017-02-14 21:02:49 +00:00
Adrià Farrés
4afa415bd9 Fix spelling 2017-02-14 20:26:19 +01:00
w0rp
78135103fb Merge pull request #342 from Exteris/bugfix/gfortran-6.3.1
Update line marker pattern for new gfortran
2017-02-14 19:06:25 +00:00
Daan van Vugt
68b6be57f1 Update line marker pattern for new gfortran
Add tests for GCC 4.1.2, 4.9.2 and 6.3.1
2017-02-14 14:31:31 +01:00
w0rp
afd0730248 #274 Stop airline from doing anything if ALE doesn't load by using a different flag for loading with a very ugly name 2017-02-14 09:18:54 +00:00
w0rp
810e420510 #274 Don't emit the warning if ALE isn't working for git commits or blank files 2017-02-13 23:48:36 +00:00
w0rp
f39e88cfa8 #274 - Fix airline integration when ALE is not loaded fully 2017-02-13 23:31:29 +00:00
w0rp
c0814934af Output ALE global variables for :ALEInfo 2017-02-13 23:15:52 +00:00
w0rp
0589022c76 Include most linter variables in ALEInfo 2017-02-13 22:11:35 +00:00
w0rp
f6bc73b749 Fix a style issue 2017-02-13 12:52:44 +00:00
w0rp
a5ec5366c4 Actually catch all Job ID problems 2017-02-13 12:13:54 +00:00
w0rp
f9815fcdef Merge pull request #336 from ninjawithaneedle/master
Highlighting should not filter linter messages without column info
2017-02-13 11:02:51 +00:00
ninjawithaneedle
a2f59049dc Highlighting should not filter linter messages without column info 2017-02-13 16:30:32 +05:30
w0rp
5cdd1498b4 #283 Fix linting buffers with no filename, by creating a filename with a guess for the file extension 2017-02-13 10:36:38 +00:00
w0rp
3aa1d57b57 Fix #171 - Implement basic error highlighting 2017-02-13 00:24:25 +00:00
w0rp
a995daa827 Fix #325 - document the ALEToggle option 2017-02-12 19:26:18 +00:00
w0rp
83b46f66f8 Make a note to ask for Vader tests 2017-02-12 17:59:05 +00:00
w0rp
f0bd08ec11 Merge pull request #331 from AlexMasterov/feature/css-stylelint-options
Add stylelint option to pass in more options
2017-02-12 17:49:22 +00:00
Alex Masterov
4e082b9217 Add stylelint option to pass in more options 2017-02-12 09:25:40 +03:00
w0rp
820896315d Update the contributing guide 2017-02-12 00:26:45 +00:00
w0rp
ed269b8831 Fix the clangtidy linter, and document everything 2017-02-11 23:45:06 +00:00
Tim van Deurzen
355608b031 Add clang-tidy linter for cpp. (#275)
* Add clang-tidy linter for cpp.

* Use stdin-wrapper to allow linting as you type.
2017-02-11 23:32:56 +00:00
w0rp
4a71638061 Feed files to commands via stdin by first writing the file to a temporary file, and then piping them in via the shell instead 2017-02-11 22:43:13 +00:00
w0rp
341ea5f367 Fix the custom check issue. 2017-02-11 22:06:20 +00:00
w0rp
112f71fb17 Make javac work in a basic way 2017-02-11 22:02:38 +00:00
Valentin Finini
8c4846b68a Added support for javac (with eclipse classpath support for now) (#141)
* A try at javac support for ALE

* Small cleanup: moved '/tmp/java_ale' string into script var

* Fixed Travis-CI build failing on autocmd not being in augroup and stupid omission

* One more fix for Travis-CI

* For some reason, expandtab was not set

* Indentation and removal of header guard.

Used examples from ale_linters/c/gcc.vim and
ale_linters/javascript/eslint.vim for the indentation of string concat blocks.
2017-02-11 21:29:48 +00:00
w0rp
3551bde012 Fix #330 - Explain how to check JSX with eslint and stylelint 2017-02-11 21:18:24 +00:00
w0rp
2078255ec3 Fix filename substitution, especially on Windows 2017-02-11 20:34:14 +00:00
w0rp
ecbb276805 Replace every stdin-wrapper script with the new %t formatting support 2017-02-11 19:40:57 +00:00
w0rp
c33602534e Fix Pug linting 2017-02-11 18:49:12 +00:00
w0rp
beeef28b1a Use writefile() for temporary files, which works better 2017-02-11 18:19:01 +00:00
w0rp
03ab963d1a Add support for temporary filename substitution, for replacing stdin_wrapper 2017-02-11 18:14:18 +00:00
w0rp
88192e8662 Add support for managing temporary files/directories 2017-02-11 15:16:08 +00:00
w0rp
8ad85858b8 Merge pull request #329 from tomotanakamura/AddClangToCpp
Add clang to cpp linters.
2017-02-11 13:10:18 +00:00
tomotanakamura
2ba2aff65e Add clang to cpp linters. 2017-02-11 21:35:34 +09:00
w0rp
4737e09bcf Try and fix Travis builds again 2017-02-11 00:20:16 +00:00
w0rp
14c38cdb63 Fix #116 - Send SIGKILL to processes if they don't respond to SIGTERM 2017-02-11 00:08:05 +00:00
w0rp
81779e60bb Document the command empty string behaviour 2017-02-10 23:11:26 +00:00
w0rp
49f7ce4f6d Fix #246 Don't run flow if there's no .flowconfig 2017-02-10 22:47:56 +00:00
w0rp
926cd1a953 Fix #283 Add an option for using ch_sendraw(), which can be better for some users 2017-02-10 19:34:44 +00:00
w0rp
c528ab1eaa Fix #269 Set $TMPDIR to a default value, if not set 2017-02-10 09:45:42 +00:00
w0rp
5bda827143 Merge pull request #327 from jparise/credo-stdin-filename
Pass the buffer's filename to Credo
2017-02-10 09:20:45 +00:00
Jon Parise
d3e7d3d5e7 Pass the buffer's filename to Credo
By default, Credo attributes input from STDIN as though it came from a
file named `stdin`. This change passes the buffer's filename, too, so
that Credo can use that information when applying its configuration.

This is a nice improvement because files like `mix.exs` are normally
excluded from Credo-based linting. Previously, ALE would show lint
warnings for those files as they were edited. Now, they are correctly
honor the Credo configuration and don't produce lint output.
2017-02-09 19:24:28 -08:00
w0rp
5de445c041 Fix #315 Implement the read_buffer option 2017-02-09 23:32:57 +00:00
w0rp
9f8c76b5b9 Make ALE complain when conflicting command options are used 2017-02-09 20:44:13 +00:00
w0rp
38d9802d12 Don't export the custom-checks script in archives 2017-02-09 20:14:03 +00:00
w0rp
b0190fd080 Merge pull request #306 from ahmedelgabri/standardjs
Add standard linter
2017-02-09 18:56:40 +00:00
Daniel Lupu
d8efd4fa73 add xo support (#304)
* add xo support

* add documentation

* Fix a screw up when fixing conflicts

* Fix it harder
2017-02-09 18:54:49 +00:00
Daniel Lupu
6dfed8576e add ALEToggle command (#303)
* add ALEToggle command

* stop active jobs when toggled off

* small logic cleanup & ensure ale can be ran manually while toggled off
2017-02-09 18:47:14 +00:00
w0rp
943fe9b4b0 Merge pull request #295 from metakirby5/pr/coffeelint-local
Add support for locally installed coffee and coffeelint
2017-02-09 18:44:52 +00:00
w0rp
f67cf17070 Merge pull request #285 from medains/master
Linter addition of PHP Mess Detector
2017-02-09 18:43:26 +00:00
w0rp
73e0f87eba Document the command_chain option 2017-02-09 09:42:17 +00:00
w0rp
bf2075cd0c Revert "Add a Batch stdin wrapper script"
This reverts commit 76a03b0709.
2017-02-09 00:28:32 +00:00
w0rp
db835fa0a1 Make some corrections in the README 2017-02-08 22:25:08 +00:00
w0rp
325fcc25dd #314 Use the quickfix list for jumping between errors if that is set instead of the loclist 2017-02-08 22:14:07 +00:00
w0rp
eb37d9c1fc #39 Don't send the Vim buffer to commands before the last in a chain 2017-02-08 09:37:22 +00:00
w0rp
df2c6df819 Add a test to cover sign placement after linting 2017-02-07 22:55:23 +00:00
w0rp
c3ebe7bd9e Cover the Rust handler with some tests 2017-02-07 21:17:10 +00:00
Joshua Rubin
472631573e try fixing go build (#297)
* try fixing go build

* cache some system calls

* fix /dev/null

* use chained commands, use `go test -c` instead of `go tool compile`

* fix some unescaped shell commands

* fix a bug with explicitly setting GOPATH

* implement changes requested in code review. handle errors from multiple files. fix issue when starting a new package

* run `go env` as a job

* ensure all functions return the proper type

* fix loclist line numbers in some cases

* remove multibuffer support for now
2017-02-07 20:36:04 +00:00
w0rp
c0ac393297 #256 Attempt to fix Rust linter issues again 2017-02-07 15:19:37 +00:00
w0rp
da8408501c #256 Attempt to fix Rust linter issues 2017-02-07 15:15:22 +00:00
w0rp
a3b7056cad #289 Only use the --stdin-display-name flag if the flake8 version supports it 2017-02-06 11:12:27 +00:00
w0rp
a9a76241ac Merge pull request #307 from yous/rubocop-comment
Update comments for RuboCop pattern
2017-02-06 09:59:20 +00:00
w0rp
ccf78c40b1 Merge pull request #305 from notkild/master
Fix rust linting with cargo when multiple targets are present
2017-02-06 09:34:27 +00:00
notkild
0143eb6a53 Fix rust linting with cargo when multiple targets are present 2017-02-06 09:21:06 +01:00
Chayoung You
6f40cdca65 Update comments for RuboCop pattern 2017-02-06 15:13:13 +09:00
w0rp
9d85590421 Take the rubocop filename from the buffer number given to the function 2017-02-05 22:32:38 +00:00
w0rp
0a14bbe78d Merge pull request #299 from derekprior/dp-fix-rubocop-again
Fix Rubocop filename handling
2017-02-05 22:31:43 +00:00
Ahmed El Gabri
119695bd08 Add standard linter 2017-02-05 21:19:34 +01:00
w0rp
744d7d789f Merge pull request #294 from tpict/master
Add vint support for Neovim commands
2017-02-05 15:58:15 +00:00
w0rp
eb410b4ee6 Update the contributing guide to offer some more advice 2017-02-05 15:55:50 +00:00
w0rp
9a5fc6f932 Make a note in the FAQ about how to use quickfix errors 2017-02-05 15:34:35 +00:00
w0rp
d953c68ebb Fix mypy error parsing when column numbers are included. 2017-02-04 19:47:37 +00:00
w0rp
829f87bc6a Fix #124 Finish implementing command chaining, and make it work for DMD 2017-02-04 18:30:30 +00:00
Derek Prior
f2fc7072b9 Fix Rubocop filename handling
In my previous change, I updated the Rubocop linter to pass the filename
to Rubocop. This change was tested on a file I expected Rubocop to
ignore and the experience in vim was as I expected. However, I soon
found that ALE wasn't finding errors in files that should not be
ignored. After investigation, I found a few issues that this commit
fixes:

1. We were not properly passing the current filename. We now use
   `expand` to get the filename.
2. The regular expression used in the callback was expecting the static
   value of `_` for the filename in output. We now use a looser regular
   expression that begins matching on the first `:`.
3. The linter was defined statically. By using the current filename when
   defining the command the linter would always use the filename of the
   first Ruby file the user opened. We now use a `command_callback` to
   inject the proper filename.

I tested these changes on a configuration with included and excluded
files and found it to work as I expected. Apologies for the earlier
incorrect change.
2017-02-03 16:03:52 -05:00
Ethan Chan
69ce8502a4 add support for locally installed coffee 2017-02-02 17:03:26 -08:00
Ethan Chan
1da187a6e5 add support for locally installed coffeelint 2017-02-02 16:56:09 -08:00
w0rp
97131262ab Add a default alias for the Dockerfile filetype, which is capitalised for some users. 2017-02-02 22:26:46 +00:00
tpict
32c8d02d62 Add --enable-neovim flag to vint when appropriate 2017-02-02 19:48:18 +00:00
medains
ff096124c6 Linter addition of PHP Mess Detector 2017-02-01 16:28:51 +00:00
w0rp
512b6e00d9 Merge pull request #284 from EinfachToll/fix-gcc-command
Tell gcc to use C, not C++, when linting C source files
2017-02-01 10:46:06 +00:00
EinfachToll
e8123b3d5e Tell gcc to use C, not C++, when linting C source files
A regression bug introduced with PR #232
Ref #278
2017-02-01 11:22:21 +01:00
Łukasz Jan Niemier
a1458e9c07 Dockerfile linting via hadolint (#282)
* Add hadolint linter for Dockerfiles

* Fix path

* Fix typo

* Update docs
2017-01-30 15:27:26 +00:00
w0rp
03bab835d9 Fix #249 Mention how to clear sign background colors in the README 2017-01-30 15:22:14 +00:00
w0rp
aff56e69a9 Merge pull request #281 from derekprior/dp-fix-rubocop
Enable Rubocop to exclude files based on config
2017-01-30 15:04:09 +00:00
Derek Prior
a82ead0dc1 Enable Rubocop to exclude files based on config
When using `--stdin`, Rubocop requires that you also pass the associated
file name. ALE was previously passing `_` as the filename. By passing
the actual relative path to the file and enabling the
`--force-exclusion` option, we can get Rubocop to respect excluded files
in the configuration.

Closes #197
2017-01-27 16:29:58 -05:00
DiscoViking
a9c650cd05 Add ALEInfo command to get list of available/enabled linters (#273)
* Add ALEInfo command to get list of available/enabled linters for current filetype

* Add Vader tests for ALEInfo command

* Fix ALEInfo tests breaking CI by echoing too much output to screen

* Speculative change to Makefile which seems to fix test hanging problem locally.

* Fix Vader tests to not require a TTY
2017-01-24 15:50:49 +00:00
w0rp
fd89da113d Document the new quickfix and loclist options. 2017-01-22 15:31:28 +00:00
w0rp
b2696b105a Sort the global options in the documentation by name. 2017-01-22 15:06:33 +00:00
w0rp
d7ed49f849 Add a script for custom checks to enforce using the abort flag for functions and trailing whitespace, and fix existing issues. 2017-01-22 14:54:57 +00:00
w0rp
e4a4fcd26b Make the Erlang linter code match the style used in the rest of the codebase. Make the options match the new standard. 2017-01-22 13:51:57 +00:00
Magnus
cae153b3ac Add erlc lint for Erlang (#248) (#255)
* Add erlc lint for Erlang (#248)

* Ignore certain errors in Erlang .hrl files (#248)

A .hrl file does not need to have a -module definition. Additionally, it
is common to have unused elements in such a file, as the entities will
be used in a file including the header.

* Address change requests to Erlang linter
2017-01-22 13:42:18 +00:00
EinfachToll
23f8e7ddc5 Fix parsing of currently shown signs with Spanish locale (#268)
* Fix parsing of currently shown signs with spanish locale

* Add a test for parsing of Spanish signs
2017-01-22 13:40:23 +00:00
w0rp
a37970facd Clean up the list opening tests 2017-01-22 13:33:16 +00:00
yfery
a23173eeb2 Add option to open loclist/quicklist when there are errors (#266)
* Add option to open loclist/quicklist when there are errors

I copied PR #137, and tries to complete it by correcting some issues and
adding vader tests.

About tests, first time with vader, can you give some feedback if there
are what you expected in PR #137.

* Remove old code + fix indent issue

* add g:ale_keep_list_window_open option

* Correct bug with keep open option

* Add comment into vader file

* Fix errors for Travis CI build
2017-01-22 12:57:05 +00:00
w0rp
9820899b9e Improve mypy handling a little bit more 2017-01-20 17:30:34 +00:00
w0rp
ea438be5c1 REVERT "Fix some naming conventions and use abort for all Rust functions, and disable the rust linters for now, re #256"
This reverts commit f412b4f96f.

Conflicts:
	doc/ale.txt
2017-01-19 20:21:54 +00:00
EinfachToll
831f783493 Join the lines Neovim passes to ale (#263)
* Join the lines Neovim passes to ale

Fixes #256

* Refactor line joining into own function

* Add test for line joining

* Fix the test. Sorry.
2017-01-19 20:01:51 +00:00
w0rp
2478d7d925 Merge pull request #262 from KenjiTakahashi/fix_swiftlint
Fix SwiftLint
2017-01-19 13:23:46 +00:00
w0rp
1560f4ce03 Merge pull request #265 from aswins/mypy_fix
Fix using variable g:ale_python_mypy_options that was not defined
2017-01-18 10:35:52 +00:00
Aswin
d45505e135 Fix using variable g:ale_python_mypy_options that was not defined 2017-01-18 16:01:36 +05:30
KenjiTakahashi
62b492c727 Fix SwiftLint
1. Should be defined for 'swift' files, not 'swiftlint'.
2. Use `--use-stdin` option instead of the stdin-wrapper.
2017-01-17 19:59:45 +01:00
w0rp
41686980fd Document the mypy options, and fix spacing issues, largely in the documentation 2017-01-15 13:20:23 +00:00
w0rp
35bdd6f478 Merge pull request #237 from keith/ks/mypy-linter
Add python mypy support
2017-01-15 13:05:37 +00:00
w0rp
f1ac7c9f73 Rename pylint _args variables to _options variables 2017-01-15 13:05:07 +00:00
w0rp
548ff299f4 Merge pull request #243 from SabatierBoris/master
Add options for pylint linter
2017-01-15 13:02:51 +00:00
Junfeng Li
8762a6fa66 Support C# linting with mono compiler mcs. (#250)
* Support netcore project linting.

* Support check on the fly.

* Remove debug.

* Rename csc.vim to mcs.vim as it should be.

* Update README.

* Update doc.

* Using `=~#` instead of `=~`.
2017-01-15 12:42:17 +00:00
Masahiro H
74e7a283c0 Improve Verilator support (#205) (#258)
* improve-verilator-support

* fix for linter
2017-01-15 12:39:13 +00:00
SABATIER Boris
dc8166384c Add doc for pylint options 2017-01-13 11:04:29 +01:00
SABATIER Boris
0a9f9c0811 Add executable and arguments options for pylint linter 2017-01-13 10:59:39 +01:00
w0rp
f412b4f96f Fix some naming conventions and use abort for all Rust functions, and disable the rust linters for now, re #256 2017-01-13 09:23:03 +00:00
w0rp
3b486d3475 Prefix mandatory flake8 arguments with extra spaces so they will always work 2017-01-12 13:11:10 +00:00
w0rp
9191750b5b Fix #175 - Fix the error types for rubocop 2017-01-12 12:57:07 +00:00
EinfachToll
9c5f092b4f Add support for Rust using rustc and cargo (#230)
* Add rustc checker for rust files

* Add documentation for rustc

* Use a nice helper function

* Add cargo as linter

* Complete the doc for rust linters

* Put l: in front of every local variable

* Apply the requested stylistic changes
2017-01-12 09:33:55 +00:00
w0rp
75485d53f6 Merge pull request #245 from zefei/add-eslint-options
Add eslint option to pass in more options
2017-01-12 09:28:06 +00:00
Zefei Xuan
2c176a234e added eslint option to pass in more options 2017-01-05 00:28:32 -08:00
Zefei Xuan
5a0c3fd01e Added hack linter for php (#239)
* added hack linter

* updated docs for hack (hh_client)

* naming
2017-01-04 17:07:21 +00:00
w0rp
ed43b17201 Merge pull request #244 from icgood/fix-perlcritic-typo-exception
Fix typo in perlcritic linter dictionary
2017-01-04 13:10:35 +00:00
w0rp
c17123b631 Fix #238 Make the README show the proper linter name for Flow 2017-01-04 13:05:17 +00:00
w0rp
c9b58136bf Merge pull request #236 from Chronial/patch-1
Pass file name to flake8
2017-01-04 12:57:40 +00:00
w0rp
871c09c123 Merge pull request #235 from still-dreaming-1/fix-php-generic-error
Fix PHP lint generic error without line number
2017-01-04 12:54:54 +00:00
Ian Good
c97ad01bcb Fix typo in perlcritic linter dictionary
The linter validation logic was checking for `stdout`, `stderr`, or
`both`, resulting in an exception being thrown when loading the
perlcritic linter.
2017-01-03 14:55:23 -05:00
Keith Smiley
4566bd65c9 Add python mypy support
This adds support for the official optional python typechecker.
2016-12-30 16:12:30 -08:00
Chronial
e0928d0991 Pass file name to flake8 2016-12-30 17:06:49 +01:00
still-dreaming-1
2b251a2cee Fix PHP lint generic error without line number
This makes php output more specific error messages. The format is the normal one ALE expects, but on some systems ALE does not work with PHP unless the display_errors=1 option is used. Without that option php will only output a generic message without a line number like "Errors parsing index.php"
2016-12-28 11:10:47 -07:00
w0rp
3e1486fc92 Merge pull request #233 from LubergAlexander/master
Fixed a typo scss -> sass
2016-12-26 16:47:02 +00:00
Alexander Luberg
14aff89fb2 Fixed a typo scss -> sass 2016-12-26 08:35:22 -08:00
w0rp
fcfd8d5f56 Merge pull request #232 from grzebiel/master
Added ability to reload compilation flags for c and c++
2016-12-26 13:28:43 +00:00
w0rp
12e99489b2 Merge pull request #231 from fannheyward/master
Redirect go build output to /dev/null
2016-12-26 13:27:46 +00:00
grzebiel
9767fd8732 Added ability to reload compilation flags for c and c++ after loading plugin 2016-12-24 00:18:14 +01:00
Heyward Fann
e46ef0ae19 Redirect go build output to /dev/null
Named file file will be created after ALE, this can redirect the output to /dev/null if go build failed.
2016-12-23 14:56:44 +08:00
dzhou121
55827a9493 add go build for build errors (#180)
* add go build for build errors

* Add go build to doc and README

* Improvement for Go build

Go build works on package level, so copy over the other files
that belong to the same package to the temp folder as well.

* revert back to simple go build

* change gobuild script var name
2016-12-22 12:10:21 +00:00
diartyz
6c0996eb9c [enhancement] add node_modules support for stylelint & htmlhint (#226)
* Add node_modules support for stylelint

* add node_modules support for htmlhint

* fix stdin

* update doc about stylelint & htmlhint
2016-12-22 11:39:01 +00:00
w0rp
cd6d8f2ab6 Fix #229 Disable text linters by default 2016-12-22 11:32:20 +00:00
w0rp
771bfe3b18 #193 Fix a parsing error for parsing errors with eslint 2016-12-22 11:16:22 +00:00
Eric Lehner
bda6df61a0 Elm file filter & Windows bug fixes (#223)
* Filters out unrelated errors in Elm linter

The function now filters out errors that are unrelated to the file,
those that were found in imported modules.

It does this by comparing the temp directory environment variable to the
file name in the elm output. If the file begins with the temp directory,
then it sould be included (it's from the buffer).

* Changing output to '/dev/null'

Turns out the compiler only accepts /dev/null as an ignorable name. It's
hard-coded here
https://github.com/elm-lang/elm-make/blob/master/src/Flags.hs

Changing this allows Windows linting to work. Otherwise the compiler
errors when using "nul"

* Fixes for Windows

Should now be able to successfully handle Windows.

Windows seemed to not handle the ";" properly, so I switched it to "&&",
which probably should've been done anyway to prevent false positives.

Oddly, matchend(l:error.file, l:temp_dir), and various other regex
solutions, couldn't properly match the two. Subsetting did though, hence
the new solution.

* Applying corrections

Made the file check case-insensitive for Windows, case-sensitive for
Unix/non-windows.

Added comment explaining hard coding of 'dev/null'

* Spelling correction

* Minor corrections

Actually uses the is_file_buffer variable now, added space between the
if statements, and added space between '-'
2016-12-16 10:41:21 +00:00
w0rp
8cb9b2ba4e Make sign parsing testable, and add tests for it against various languages. 2016-12-16 10:01:28 +00:00
w0rp
7e6d5292f7 Merge pull request #224 from cympfh/master
Fix: sign pattern
2016-12-16 09:33:52 +00:00
cympfh
8df2444ec4 Fix: sign pattern 2016-12-15 13:57:26 +09:00
w0rp
4ad5c4757c Merge pull request #221 from rob-b/improve-formatting-of-haskell-linters
Improve formatting of ghc and hlint haskell linters
2016-12-14 19:13:19 +00:00
w0rp
54b55bb39c Merge pull request #222 from justinmk/fixfuncref
Nvim: pass functions as funcrefs
2016-12-14 19:09:56 +00:00
Justin M. Keyes
1ae851878a Nvim: pass functions as funcrefs
neovim/neovim#5529 merged support for Vim's partial functions, which
made nvim more strict about dictionary functions and callbacks, to
match Vim behavior.
2016-12-14 17:40:45 +01:00
Rob Berry
0ffef758ae Improve formatting of ghc and hlint haskell linters
For ghc, it seemed that the conditional

```
if l:corrected_lines[-1] =~# ': error:$'
    let l:line = substitute(l:line, '\v^\s+', ' ', '')
endif
```

was never being reached. It's actually better to unconditionally
collapse whitespace anyway and so I simply removed the conditional
check.

For hlint I added more information about the error. This changes the
reported error from `Error:` to something like:
` Error: Avoid lambda. Found: \ x -> foo x Why not: foo`
2016-12-14 12:50:14 +00:00
David Mohundro
3418faf054 Add support for Swift with swiftlint (#214)
* Add support for swift with swiftlint

* Fix issue by adding '.swift' file extension
2016-12-13 15:28:20 +00:00
w0rp
10777d3421 Add tests to cover definitions for linters so far. 2016-12-13 13:33:19 +00:00
w0rp
f950c29035 Implement command chaining. Tests and documentation to come. 2016-12-13 10:19:56 +00:00
w0rp
88f4598ea2 Fix the proeslint linter for plaintext files 2016-12-13 10:19:19 +00:00
w0rp
76a03b0709 Add a Batch stdin wrapper script 2016-12-13 10:00:40 +00:00
Eric Lehner
70e379cc46 Add Elm linting via elm-make (#213)
* Add support for Elm linting

* Adding documentation for Elm

* Adjusting spacing

* Addressing concerns listed in pull request

Removed the s:FindRootDirectory function as it does not make much sense
in this context. Adjusted the rest of the code to handle the removal of
that function, including using the ale#util function to find the nearest
file.

Ensured that when an empty filepath is found, the code does not attempt
to change directories.

Ensured that the linter would take from stdin using the wrapper.
2016-12-13 09:06:04 +00:00
w0rp
25f6445c50 Merge pull request #210 from apuignav/error-cpp
Catch g++ fatal error
2016-12-08 09:05:36 +00:00
Albert Puig
b5013ba54b Catch g++ fatal error 2016-12-08 09:32:57 +01:00
w0rp
815be12649 Merge pull request #209 from apuignav/ignore-pylint
Skip I0011 messages in pylint.
2016-12-07 22:57:12 +00:00
Albert Puig
88c203b686 Skip I0011 messages in pylint.
Ignore 'Locally disabling %s' messages from pylint.
2016-12-07 23:54:41 +01:00
w0rp
aee339f401 Document the new stylelint linter 2016-12-06 13:26:06 +00:00
w0rp
d5c626667e Merge pull request #207 from diartyz/master
[new linter] add stylelint support
2016-12-06 13:22:47 +00:00
diartyz
725957de6e add stylelint support 2016-12-06 21:14:14 +08:00
w0rp
1a749a6b43 Merge pull request #201 from kyrisu/fix-proper_extension_handling_for_tslint
Fix proper extension handling for tslint
2016-12-05 11:14:08 +00:00
Krystian Paszkiewicz
ff8f3673eb Fix proper extension handling for tslint 2016-12-05 08:42:00 +00:00
w0rp
d77e5a9308 #200 Make systemverilog files use the verilog linters by default 2016-12-04 23:13:57 +00:00
Andrew Balmos
35307c0585 LaTeX Linters (#190)
* Add chktex linter

* Alias plaintex to tex

* Add lacheck linter

Closes #179

* Add the chktex warning code

This very useful to have when you want to suppress lint warnings with LaTeX
comments. chktex tends to be a bit noisy so this often needed.

* lacheck: Make regex less specific

To be more robust future changes in `stdin-wrapper`
2016-12-04 22:19:06 +00:00
kyrisu
bbdff82aee Add support for tslint.json file detection in tslint (#198)
* Add support for tslint.json file detection in tslint

* Fix tslint.json path building for tslint
2016-12-04 22:17:22 +00:00
w0rp
3a1caca907 Merge pull request #195 from mortonfox/rubocop-options
Add options variable for ruby-rubocop
2016-12-02 09:18:18 +00:00
Po Shan Cheah
5636626da1 Add options variable for ruby-rubocop 2016-12-01 12:28:27 -05:00
w0rp
f5a4e11894 Add an FAQ section describing how to run linters when files are saved. 2016-12-01 09:52:43 +00:00
w0rp
66b183e1ba Fix #188: Revert to and older version of the Haskell linter, which works better 2016-11-28 09:53:07 +00:00
poohzrn
900b4cdff3 Add Proselint (#185)
* Add Proselint
- Markdown
- Tex
- Text

* Use ale#handler#HandleUnixFormatAsWarning

* Indentation
2016-11-28 09:36:11 +00:00
Alexander "Ace" Olofsson
e03df80a09 Add puppet linters (#183)
* Start adding Puppet linters

* Use the correct output stream for puppet parser

* Finish Puppet and puppet-lint linters

* Add Puppet information to documentation
2016-11-25 12:00:07 +00:00
w0rp
da37989960 Merge pull request #186 from poohzrn/patch-1
Fix links to handlers.vim
2016-11-25 11:53:26 +00:00
poohzrn
10bacf0996 Fix links to handlers.vim 2016-11-24 20:19:24 +01:00
Andrey Popp
f7e6236fe8 Add ocaml linter: merlin (#177)
* Add ocaml linter: merlin

* Add docs for ocaml-merlin integration.

* Remove annoying error message from ocaml merlin linter

* Update doc to list merlin linter
2016-11-23 15:19:36 +00:00
Andrey Popp
d700da8cb8 Flow linter improvements (#176)
* Fix flow linter to provide filename of the buffer

Related #173

* Fix flow linter not to fail on empty response

* Various improvement to message parsing
2016-11-21 09:53:18 +00:00
Marius Gedminas
713a6910d4 Add g:ale_python_flake8_executable (#174)
* Add g:ale_python_flake8_executable

Closes #172.

* Add g:ale_python_flake8_args

* Always add - to flake8 invocations
2016-11-14 17:52:31 +00:00
w0rp
498a9435de Document that typecheck is now supported 2016-11-10 16:24:17 +00:00
w0rp
7669550ae2 Merge pull request #170 from mkusher/typescript_typecheck_linter
Add typecheck linter for typescript
2016-11-10 16:20:28 +00:00
Aleh Kashnikau
0a3faa60f7 removed useless echom from typecheck.vim 2016-11-10 18:48:09 +03:00
Aleh Kashnikau
2e5f3899d1 Add typecheck linter for typescript 2016-11-10 18:41:02 +03:00
w0rp
ccc08d08f6 Merge pull request #164 from delianides/master
flow linting should only happen on flow typed files.
2016-11-05 21:02:59 +00:00
purpleP
60b89abd9c changed while read -r loop to cat > for portability and simplicity (#165)
* changed while read -r loop to cat > for portability and simplicity

* typo fix
2016-11-05 20:43:57 +00:00
w0rp
ec2845eefa Take sign information out of the buffer variables, and make it so dummy signs are set and removed more reliably. 2016-11-04 11:58:56 +00:00
w0rp
ca18a80e3e #159 Change the condition for checking for Vim 8 features to work better in MacVim 7. 2016-11-04 10:17:49 +00:00
delianides
8d5353831e flow linting should only happen on flow typed files. 2016-11-03 15:51:49 -04:00
w0rp
f9cbc69ce1 Re-align documentation markers. 2016-11-03 10:17:25 +00:00
w0rp
175db78f35 Merge pull request #162 from mshr-h/fix-document
Fix docment for c-clang
2016-11-02 09:08:58 +00:00
Masahiro H
8ba5b3cb76 Update ale.txt 2016-11-02 15:19:24 +09:00
mshr-h
afa37e6855 Fix docment for c-clang 2016-11-02 15:16:42 +09:00
w0rp
5b8410f868 Merge pull request #156 from edwlarkey/add_foodcritic
Added support for foodcritic
2016-11-01 20:44:25 +00:00
Edward Larkey
8632e6b4e0 Added support for foodcritic
Adding support the foodcritic linter for Chef files.
Listing all issues as warnings for now
Doesn't get in the way of rubocop linting if ft=ruby.chef
Updated documentation

Closes #127
2016-11-01 15:36:08 -05:00
w0rp
f03fb64e51 #160 Switch back to using readline for writing stdin to the temporary file, because it actually works on all machines. 2016-11-01 20:30:15 +00:00
Zach Perrault
4088347901 Add FlowType support (#157)
* Add `javascript/flow` linter

* Add documentation for flow

* Remove a line from the docs that was from eslint

* Only run if flow gives output; Correct link in doc

* Address PR feedback #157
2016-11-01 09:00:08 +00:00
w0rp
614a30a508 Improve file blacklisting to make Unite.vim not fuck up. 2016-10-31 14:47:08 +00:00
w0rp
cb410927d1 Reduce sign column juttering by waiting for all jobs to complete before updating everything. 2016-10-31 13:45:22 +00:00
w0rp
f44756f347 Merge pull request #158 from mshr-h/support-clang-for-c
Add support for clang for C language
2016-10-31 10:58:40 +00:00
mshr-h
e3a8829d67 Add support for clang for c 2016-10-31 14:38:13 +09:00
w0rp
9028d1f132 Add pylint to the list of supported tools. 2016-10-30 09:47:06 +00:00
w0rp
a6ca60203f Increase the delay for linting on entering a buffer. 2016-10-30 09:29:11 +00:00
w0rp
629e6a3675 Merge pull request #153 from keith/ks/shellcheck
Choose shell dialect based on vim syntax
2016-10-30 09:24:39 +00:00
w0rp
c4ab4855b7 Merge pull request #155 from deathmaz/feature/htmlhint-args
Added options variable for htmlhint
2016-10-30 09:21:55 +00:00
w0rp
8bee64d1b7 Update the documentation to match the code 2016-10-30 09:21:34 +00:00
w0rp
e9bbbbdf3e Merge pull request #151 from keith/ks/pylint
Add pylint formatter
2016-10-30 09:20:02 +00:00
deathmaz
9a4645fc7f Default stdin in htmlhint options 2016-10-28 12:42:55 +03:00
Keith Smiley
5fc2f8f6c0 Choose shell dialect based on vim syntax
Shellcheck is smart enough to check the shebang in a given file to
determine which dialect to use. Unfortunately this doesn't work for
files without shebangs, even if it might be apparent what dialect should
be used, such as "bashrc" or "foo.bash". Luckily `filetype.vim` defines
specific vars based on which shell dialect is being used based on a huge
list of conditions. With this change we take those into account for all
the types shellcheck supports, otherwise we fallback to letting it try
and decide.
2016-10-27 18:46:58 -07:00
Keith Smiley
86cc2aab71 Add pylint formatter
This customizes the output format of pylint in order to use the same
pep8 parser
2016-10-27 18:38:26 -07:00
deathmaz
5b56103c69 Added optoins variable for htmlhint 2016-10-27 18:31:49 +03:00
w0rp
c8821fc049 #144 - Implement commands for moving through warnings/errors 2016-10-26 10:36:53 +01:00
w0rp
1bcee7ef33 Mention the Google Vimscript Style Guide in the contributing file. 2016-10-25 17:41:34 +01:00
w0rp
454dbbe33e Merge remote-tracking branch 'origin/echo-less' 2016-10-25 16:51:50 +01:00
w0rp
aa4c669ea0 #148 - Check the cursor position so we don't try to echo too frequently. 2016-10-25 16:07:20 +01:00
w0rp
60762d5018 Merge pull request #143 from w0rp/better-buffer-cleanup
Stop jobs when buffers close
2016-10-25 16:02:47 +01:00
w0rp
222d9e6908 Fix the autocmd suggestion some more 2016-10-25 15:46:18 +01:00
w0rp
9a019e2342 Fix a mistake in the FAQ code for the autocmd event 2016-10-25 15:01:10 +01:00
w0rp
73c9a1f965 #148 Do not run ALE for NERDTree or Unite.vim buffers. 2016-10-25 14:09:58 +01:00
w0rp
0fbf7bcc99 Fix the headings and table of contents. 2016-10-25 10:44:50 +01:00
w0rp
2bcb21f350 Restructure the README. 2016-10-25 10:39:06 +01:00
w0rp
d6a7b0f518 #119 - Stop ALE clearing the echo message when it doesn't need to. 2016-10-24 20:55:20 +01:00
w0rp
b9428b7db0 Merge #139 - Add Markdown linting support 2016-10-24 20:40:24 +01:00
Alex Layton
95373ddab5 Add support for mlint, a MATLAB linter (#145)
* Add support for mlint, a MATLAB linter

* Fix mlint linter as requested

* Clean up leftover loaded flag for mlint
2016-10-24 20:32:52 +01:00
w0rp
6e66b60b63 Limit Travis to only building master on push. 2016-10-24 20:27:36 +01:00
w0rp
79552872f3 Merge pull request #142 from w0rp/use-local-jshint-program
Add node_modules support for JSHint, and use the global config as a fallback
2016-10-24 20:23:15 +01:00
w0rp
c546f47cc0 Merge everything into the one global map. 2016-10-24 20:21:42 +01:00
w0rp
0dbf08f6d5 Add some comments to some lines to make things clearer. 2016-10-24 09:58:45 +01:00
w0rp
7481facd73 #107 Stop jobs when buffers close 2016-10-23 22:41:00 +01:00
w0rp
226b4ed586 Add node_modules support for JSHint, and use the global config as a fallback. 2016-10-23 13:25:50 +01:00
w0rp
36461b69d7 Support loading eslint from node_modules, re issue #118. 2016-10-23 13:04:41 +01:00
w0rp
f94865c4ce Merge pull request #140 from neersighted/cleanup
Clean up some test filenames and extraneous code
2016-10-23 10:41:58 +01:00
Bjorn Neergaard
dc99282f79 Clean up some test filenames and extraneous code 2016-10-22 08:53:28 -05:00
w0rp
89d8f2a0bc Merge pull request #138 from neersighted/dotft
Add support for dot-seperate linters, improve linter tests
2016-10-22 14:35:13 +01:00
Bjorn Neergaard
99aebcafac Docs! 2016-10-22 08:31:29 -05:00
w0rp
cd00a18c3a Make builds fail again when there are Vint warnings. 2016-10-22 14:20:05 +01:00
Łukasz Jan Niemier
e293e0b5ab Use cat instead of read -r to stream stdin to file (#120)
* Use `cat` instead of `read -r` to stream stdin to file

* Cleanup dmd-wrapper

* Fix typo

* Make wrapper work on macOS

* Use fifo instead of temporary file

* Fix stdin-wrapper

* Use `awk` instead of `read` hackery

* Finish refactoring

* Fix `exec` issue

* Add myself as an coauthor of wrapper scripts (no shame at all :P)

* Fix dmd-wrapper

* Extract check_dubfile
2016-10-22 13:52:49 +01:00
Bjorn Neergaard
f49f615ef6 Add support for dot-seperate linters, improve linter tests
This PR first and formost implements support for dot-seperate filetypes,
a very trivial change.

This closes #132

But more importantly, this PR vastly improves the test quality for
`ale#linter#Get`. It enables us to reset the state of ale's internal
linter cache, to facilitate better testing, as well as making use of
mocked linters instead of depending on linters on disk (which may
change). In addition, a dummy linter is defined to test the autoloading
behavior.

Header guards were removed from all linters as:

* A: ale won't try and load linters if they already exist in memory
* B: we can't reset state for testing if they can't be loaded again
2016-10-21 21:02:20 -05:00
w0rp
216eadbcbe Merge pull request #133 from ehzShelter/master
Added c++14 standard support and POSIX API compile time linker flags and ISO c++14 atomic and thread library support…
2016-10-21 18:08:25 +01:00
ehzShelter
1e83489691 make it less verbose for c and cpp 2016-10-21 20:02:20 +06:00
w0rp
5eee70cf37 Merge pull request #129 from neersighted/ansible
Add ansible-lint support and factor out PEP8 handler
2016-10-21 09:21:50 +01:00
ehzShelter
ce3d79550d Added c++14 standard support and POSIX API compile time linker flags for avoiding annoying errors and warnings 2016-10-21 13:07:51 +06:00
Bjorn Neergaard
c697ef05bb Add PEP8 handler test. 2016-10-20 22:52:25 -05:00
w0rp
7a06d276c2 #131 Keep the error types in the message for eslint 2016-10-20 18:07:55 +01:00
Bjorn Neergaard
a2e4af1626 Document ansible-lint 2016-10-20 09:27:57 -05:00
Bjorn Neergaard
c34664120b Add ansible-lint support and factor out PEP8 handler 2016-10-20 09:23:23 -05:00
Bart Libert
a34fb0a6a7 Add support for cppcheck (#126)
* Add support for cppcheck

* Fix vint error in cppcheck handler

* Add vader test for CppCheck format handler
2016-10-20 12:30:45 +01:00
w0rp
acb209aa11 Fix the D error parsing to handle output without column numbers. 2016-10-19 23:42:00 +01:00
w0rp
6df632218e Add a test which checks that we can find the stdin-wrapper script. 2016-10-19 23:26:07 +01:00
1349 changed files with 68670 additions and 2785 deletions

40
.appveyor.yml Normal file
View File

@@ -0,0 +1,40 @@
---
# Disabling building for AppVeyor. We are just testing things.
build: false
clone_depth: 10
# Use the directory C:\testplugin so test directories will mostly work.
clone_folder: C:\testplugin
# Cache the vim and vader directories between builds.
cache:
- C:\vim -> .appveyor.yml
- C:\vader -> .appveyor.yml
init:
# Stop git from changing newlines
- git config --global core.autocrlf input
install:
# Download and unpack Vim
- ps: >-
if (!(Test-Path -Path C:\vim)){
Add-Type -A System.IO.Compression.FileSystem
Invoke-WebRequest ftp://ftp.vim.org/pub/vim/pc/vim80-586w32.zip `
-OutFile C:\vim.zip
[IO.Compression.ZipFile]::ExtractToDirectory('C:\vim.zip', 'C:\vim')
Invoke-WebRequest ftp://ftp.vim.org/pub/vim/pc/vim80-586rt.zip `
-OutFile C:\rt.zip
[IO.Compression.ZipFile]::ExtractToDirectory('C:\rt.zip', 'C:\vim')
}
# Clone Vader and check out the commit we want
- ps: >-
if (!(Test-Path -Path C:\vader)){
git clone https://github.com/junegunn/vader.vim C:\vader 2> $null
cd C:\vader
git checkout -qf c6243dd81c98350df4dec608fa972df98fa2a3af 2> $null
}
test_script:
- cd C:\testplugin
- 'C:\vim\vim\vim80\vim.exe -u test\vimrc "+Vader!
test/*.vader test/*/*.vader test/*/*/*.vader test/*/*/*.vader"'

14
.editorconfig Normal file
View File

@@ -0,0 +1,14 @@
# EditorConfig is awesome: http://EditorConfig.org
# Top-most EditorConfig file
root = true
# Match and apply these rules for all file
# types you open in your code editor
[*]
# Unix-style newlines
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
trim_trailing_whitespace = true

View File

@@ -1,11 +0,0 @@
module.exports = {
parserOptions: {
ecmaVersion: 6,
sourceType: "module",
},
rules: {
semi: 'error',
'space-infix-ops': 'warn',
radix: 'error',
}
}

6
.gitattributes vendored
View File

@@ -1,7 +1,13 @@
.* export-ignore
/CODE_OF_CONDUCT.md export-ignore
/CONTRIBUTING.md export-ignore
/Dockerfile export-ignore
/ISSUE_TEMPLATE export-ignore
/ISSUE_TEMPLATE.md export-ignore
/Makefile export-ignore
/PULL_REQUEST_TEMPLATE.md export-ignore
/README.md export-ignore
/img export-ignore
/run-tests export-ignore
/run-tests.bat export-ignore
/test export-ignore

3
.github/CODE_OF_CONDUCT.md vendored Normal file
View File

@@ -0,0 +1,3 @@
Codes of conduct are totally unnecessary and dumb.
Just don't be a jerk and have fun.

25
.github/CONTRIBUTING.md vendored Normal file
View File

@@ -0,0 +1,25 @@
## Guidelines
Have fun, and work on whatever floats your boat. Take It Easy :tm:.
For help with contributing to ALE, see `:help ale-development` in Vim, or view
the help file online [here](/doc/ale-development.txt).
## Creating Issues
Before creating any issues, please look through the current list of issues and
pull requests, and ensure that the issue hasn't already been reported. If an
issue has already been reported, but you have some new insight, please add
a comment to the existing issue.
Please read the FAQ in the README before creating any issues. A feature
you desire may already exist and be documented, or the FAQ might explain
how to solve a problem you have already.
Please try and describe any issues reported with as much detail as you can
provide about your Vim version, the linter you were trying to run, your
operating system, or any other information you think might be helpful.
Please describe your issue in clear, grammatically correct, and easy to
understand English. You are more likely to see an issue resolved if others
can understand you.

45
.github/ISSUE_TEMPLATE/report-a-bug.md vendored Normal file
View File

@@ -0,0 +1,45 @@
---
name: Report a bug
about: Report a bug with ALE.
---
<!--
This is the template for reporting ALE bugs. Make sure you try updating ALE
to a more recent version before reporting a bug. Look through existing bug
reports for similar issues before reporting a new one. Don't leave comments
about new bugs in the comment section for old issues.
Make sure to try disabling other plugins and trying to repeat your bug before
reporting it in ALE. Some times problems can arise when two plugins are used
together, but often your issues might be problems with other plugins.
-->
## Information
**VIM version**
<!-- Paste just the first two lines of :version here. -->
Operating System: <!-- Describe your operating system version. -->
## What went wrong
<!-- Describe what went wrong here. Be specific. -->
Something went wrong in specifically this place, and I also searched through both open and closed issues for the same problem before reporting a bug here.
Are you having trouble configuring ALE? Try asking for help on [Stack Exchange](https://vi.stackexchange.com/) or perhaps on [Reddit](https://www.reddit.com/r/vim/) instead. The GitHub issue tracker should be used for reporting bugs or asking for new features.
## Reproducing the bug
<!-- Write a list of steps below. -->
1. I did this.
2. Then this happened.
### :ALEInfo
<!-- Paste the output of :ALEInfo here. Try :ALEInfoToClipboard -->
<!-- Make sure to run :ALEInfo from the buffer where the bug occurred. -->
<!-- Read the output. You might figure out what went wrong yourself. -->

View File

@@ -0,0 +1,20 @@
---
name: Suggest a new linter or fixer
about: Suggest a new tool ALE can officially integrate with.
---
<!--
Write "Add support for foobar" as the issue title, or similar.
Fill out the details below.
-->
**Name:** foobar
**URL:** https://foo.bar.com
<!--
Write a description of the tool, and add any other information you think might
be helpful. Consider creating a pull request to add support for the tool
yourself.
-->

View File

@@ -0,0 +1,7 @@
---
name: Suggest an improvement
about: Suggest some way to improve ALE, or add a new feature.
---
<!-- There's no fixed format for feature requests. Just add your thoughts. -->

13
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,13 @@
<!--
Before creating a pull request, do the following.
* Read the Contributing guide linked above first.
* Read the documentation that comes with ALE with `:help ale-dev`.
Have fun!
-->
Where are the tests? Have you added tests? Have you updated the tests? Read the
comment above and the documentation referenced in it first. Write tests!
Seriously, read `:help ale-dev` and write tests.

13
.gitignore vendored
View File

@@ -1,4 +1,11 @@
/init.vim
/doc/tags
.*
!.editorconfig
*.obj
# Ignore all hidden files everywhere.
# Use `git add -f` to add hidden files.
.*
__pycache__
*.pyc
/doc/tags
/init.vim
/test/ale-info-test-file
tags

View File

@@ -2,6 +2,11 @@
sudo: required
services:
- docker
language: python
language: generic
env:
- OPTIONS=--vim-80-only
- OPTIONS=--vim-81-only
- OPTIONS=--neovim-only
- OPTIONS=--linters-only
script: |
make test
./run-tests -v $OPTIONS

View File

@@ -1,61 +0,0 @@
# Contributing to ALE
1. [Guidelines](#guidelines)
2. [Creating Pull Requests](#pull-requests)
3. [Creating Pull Requests](#compiling)
<a name="guidelines"></a>
# 1. Guidelines
Have fun, and work on whatever floats your boat. Take It Easy :tm:.
<a name="pull-requests"></a>
# 2. Creating Pull Requests
For code you write, make sure to credit yourself at the top of files you add, and probably those you modify. You can write
some comments at the top of your VIM files.
```vim
" Author: John Smith <john.smith@gmail.com>
" Description: This file adds support for awesomelinter to the best language ever.
```
If you want to credit multiple authors, you can comma separate them.
```vim
" Author: John Smith <john.smith@gmail.com>, Jane Doe <https://jane-doe.info>
```
# 2.1. Adding a New Linter
If you add a new linter, look for existing handlers first in the [handlers.vim](plugin/ale/handlers.vim) file. One of the handlers
there may already be able to handle your lines of output. If you find that your new linter replicates an existing error handler,
consider pulling it up into the [handlers.vim](plugin/ale/handlers.vim) file, and use the generic handler in both places.
When you add a linter, make sure the language for the linter and the linter itself are present in the table in the
[README.md](README.md) file and in the Vim [help file](doc/ale.txt). The programs and linters are sorted alphabetically in the
table and list.
# 2.2. Adding New Options
If you add new options to the plugin, make sure to document those new options in the [README.md](README.md) file, and also
in the [help file](doc/ale.txt). Follow the format of other options in each. Global options should appear in the README
file, and in the relevant section in the help file, and options specific to a particular linter should go in the section
for that linter.
<a name="compiling"></a>
# 3. Compiling the Windows stdin wrapper
To compile the stdin wrapper program for Windows, when updating the D program, you will need to compile the program with
[LDC](https://github.com/ldc-developers/ldc) in release mode. Download and install the Community edition of Visual Studio
from [the Visual Studio website](https://www.visualstudio.com/downloads/) first before installing LDC. LDC typically comes in
a ZIP you can just extract somewhere.
Make sure to compile with the 32-bit architecture flag, otherwise the EXE will not run on 32-bit machines.
```
ldc2 -m32 -Oz -release stdin_wrapper.d -of=stdin-wrapper.exe
```

View File

@@ -1,20 +1,20 @@
FROM tweekmonster/vim-testbed:latest
RUN install_vim -tag v8.0.0000 -build \
-tag v8.0.0027 -build
RUN install_vim -tag v8.0.0027 -build \
-tag v8.1.0204 -build \
-tag neovim:v0.2.0 -build \
-tag neovim:v0.3.0 -build
ENV PACKAGES="\
bash \
git \
python=2.7.12-r0 \
py-pip=8.1.2-r0 \
nodejs \
python \
py-pip \
"
RUN apk --update add $PACKAGES && \
rm -rf /var/cache/apk/* /tmp/* /var/tmp/*
RUN pip install vim-vint==0.3.9
RUN npm install -g eslint@3.7.1
RUN pip install vim-vint==0.3.15
RUN git clone https://github.com/junegunn/vader.vim vader && \
cd vader && git checkout c6243dd81c98350df4dec608fa972df98fa2a3af

View File

@@ -1,4 +1,4 @@
Copyright (c) 2016, w0rp <devw0rp@gmail.com>
Copyright (c) 2016-2018, w0rp <devw0rp@gmail.com>
All rights reserved.
Redistribution and use in source and binary forms, with or without

View File

@@ -1,33 +0,0 @@
IMAGE ?= w0rp/ale
CURRENT_IMAGE_ID = 107e4efc4267
DOCKER_FLAGS = --rm -v $(PWD):/testplugin -v $(PWD)/test:/home "$(IMAGE)"
test-setup:
docker images -q w0rp/ale | grep ^$(CURRENT_IMAGE_ID) > /dev/null || \
docker pull $(IMAGE)
test: test-setup
@:; \
vims=$$(docker run --rm $(IMAGE) ls /vim-build/bin | grep -E '^n?vim'); \
if [ -z "$$vims" ]; then echo "No Vims found!"; exit 1; fi; \
EXIT=0; \
for vim in $$vims; do \
echo; \
echo '========================================'; \
echo "Running tests for $$vim"; \
echo '========================================'; \
echo; \
docker run -a stderr $(DOCKER_FLAGS) $$vim '+Vader! test/*' || EXIT=$$?; \
done; \
echo; \
echo '========================================'; \
echo 'Running Vint to lint our code'; \
echo '========================================'; \
echo 'Vint warnings/errors follow:'; \
echo; \
docker run -a stdout $(DOCKER_FLAGS) vint -s /testplugin | sed s:^/testplugin/:: || EXIT=$$?; \
echo; \
echo; \
exit $$EXIT;
.DEFAULT_GOAL := test

826
README.md
View File

@@ -1,11 +1,13 @@
# Asynchronous Lint Engine [![Build Status](https://travis-ci.org/w0rp/ale.svg?branch=master)](https://travis-ci.org/w0rp/ale)
# Asynchronous Lint Engine [![Travis CI Build Status](https://travis-ci.org/w0rp/ale.svg?branch=master)](https://travis-ci.org/w0rp/ale) [![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/r0ef1xu8xjmik58d/branch/master?svg=true)](https://ci.appveyor.com/project/w0rp/ale) [![Join the chat at https://gitter.im/vim-ale/Lobby](https://badges.gitter.im/vim-ale/Lobby.svg)](https://gitter.im/vim-ale/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
![ALE Logo by Mark Grealish - https://www.bhalash.com/](img/logo.jpg?raw=true)
ALE (Asynchronous Lint Engine) is a plugin for providing linting in NeoVim
and Vim 8 while you edit your text files.
ALE (Asynchronous Lint Engine) is a plugin for providing linting (checking
syntax and semantics) in NeoVim 0.2.0+ and Vim 8 while you edit your text files,
and acts as a Vim [Language Server Protocol](https://langserver.org/) client.
![linting example](img/example.gif?raw=true)
<img src="img/example.gif?raw=true" alt="A linting example with the darkspectrum color scheme in GVim." title="A linting example with the darkspectrum color scheme in GVim.">
ALE makes use of NeoVim and Vim 8 job control functions and timers to
run linters on the contents of text buffers and return errors as
@@ -15,57 +17,79 @@ back to a filesystem.
In other words, this plugin allows you to lint while you type.
## Supported Languages and Tools
ALE offers support for fixing code with command line tools in a non-blocking
manner with the `:ALEFix` feature, supporting tools in many languages, like
`prettier`, `eslint`, `autopep8`, and more.
This plugin supports the following languages and tools. All available
tools will be run in combination, so they can be complementary.
ALE acts as a "language client" to support a variety of Language Server Protocol
features, including:
<!--
Keep the table rows sorted alphabetically by the language name,
and the tools in the tools column sorted alphabetically by the tool
name. That seems to be the fairest way to arrange this table.
-->
* Diagnostics (via Language Server Protocol linters)
* Go To Definition (`:ALEGoToDefinition`)
* Completion (`let g:ale_completion_enabled = 1` before ALE is loaded)
* Finding references (`:ALEFindReferences`)
* Hover information (`:ALEHover`)
* Symbol search (`:ALESymbolSearch`)
| Language | Tools |
| -------- | ----- |
| Bash | [-n flag](https://www.gnu.org/software/bash/manual/bash.html#index-set), [shellcheck](https://www.shellcheck.net/) |
| Bourne Shell | [-n flag](http://linux.die.net/man/1/sh), [shellcheck](https://www.shellcheck.net/) |
| C | [gcc](https://gcc.gnu.org/) |
| C++ (filetype cpp)| [gcc](https://gcc.gnu.org/) |
| CoffeeScript | [coffee](http://coffeescript.org/), [coffeelint](https://www.npmjs.com/package/coffeelint) |
| CSS | [csslint](http://csslint.net/) |
| Cython (pyrex filetype) | [cython](http://cython.org/) |
| D | [dmd](https://dlang.org/dmd-linux.html)^ |
| Elixir | [credo](https://github.com/rrrene/credo) |
| Fortran | [gcc](https://gcc.gnu.org/) |
| Go | [gofmt -e](https://golang.org/cmd/gofmt/), [go vet](https://golang.org/cmd/vet/), [golint](https://godoc.org/github.com/golang/lint) |
| Haskell | [ghc](https://www.haskell.org/ghc/), [hlint](https://hackage.haskell.org/package/hlint) |
| HTML | [HTMLHint](http://htmlhint.com/), [tidy](http://www.html-tidy.org/) |
| JavaScript | [eslint](http://eslint.org/), [jscs](http://jscs.info/), [jshint](http://jshint.com/) |
| JSON | [jsonlint](http://zaa.ch/jsonlint/) |
| Lua | [luacheck](https://github.com/mpeterv/luacheck) |
| Perl | [perl -c](https://perl.org/), [perl-critic](https://metacpan.org/pod/Perl::Critic) |
| PHP | [php -l](https://secure.php.net/), [phpcs](https://github.com/squizlabs/PHP_CodeSniffer) |
| Pug | [pug-lint](https://github.com/pugjs/pug-lint) |
| Python | [flake8](http://flake8.pycqa.org/en/latest/) |
| Ruby | [rubocop](https://github.com/bbatsov/rubocop) |
| SASS | [sass-lint](https://www.npmjs.com/package/sass-lint) |
| SCSS | [sass-lint](https://www.npmjs.com/package/sass-lint), [scss-lint](https://github.com/brigade/scss-lint) |
| Scala | [scalac](http://scala-lang.org) |
| TypeScript | [tslint](https://github.com/palantir/tslint) |
| Verilog | [iverilog](https://github.com/steveicarus/iverilog), [verilator](http://www.veripool.org/projects/verilator/wiki/Intro) |
| Vim | [vint](https://github.com/Kuniwak/vint) |
| YAML | [yamllint](https://yamllint.readthedocs.io/) |
If you don't care about Language Server Protocol, ALE won't load any of the code
for working with it unless needed. One of ALE's general missions is that you
won't pay for the features that you don't use.
*^ Supported only on Unix machines via a wrapper script.*
If you enjoy this plugin, feel free to contribute or check out the author's
other content at [w0rp.com](https://w0rp.com).
If you would like to see support for more languages and tools, please
[create an issue](https://github.com/w0rp/ale/issues)
or [create a pull request](https://github.com/w0rp/ale/pulls).
If your tool can read from stdin or you have code to suggest which is good,
support can be happily added for more tools.
## Table of Contents
## Usage
1. [Supported Languages and Tools](#supported-languages)
2. [Usage](#usage)
1. [Linting](#usage-linting)
2. [Fixing](#usage-fixing)
3. [Completion](#usage-completion)
4. [Go To Definition](#usage-go-to-definition)
5. [Find References](#usage-find-references)
6. [Hovering](#usage-hover)
7. [Symbol Search](#usage-symbol-search)
3. [Installation](#installation)
1. [Installation with Vim package management](#standard-installation)
2. [Installation with Pathogen](#installation-with-pathogen)
3. [Installation with Vundle](#installation-with-vundle)
4. [Installation with Vim-Plug](#installation-with-vim-plug)
4. [Contributing](#contributing)
5. [FAQ](#faq)
1. [How do I disable particular linters?](#faq-disable-linters)
2. [How can I keep the sign gutter open?](#faq-keep-signs)
3. [How can I change the signs ALE uses?](#faq-change-signs)
4. [How can I change or disable the highlights ALE uses?](#faq-change-highlights)
5. [How can I show errors or warnings in my statusline?](#faq-statusline)
6. [How can I show errors or warnings in my lightline?](#faq-lightline)
7. [How can I change the format for echo messages?](#faq-echo-format)
8. [How can I execute some code when ALE starts or stops linting?](#faq-autocmd)
9. [How can I navigate between errors quickly?](#faq-navigation)
10. [How can I run linters only when I save files?](#faq-lint-on-save)
11. [How can I use the quickfix list instead of the loclist?](#faq-quickfix)
12. [How can I check JSX files with both stylelint and eslint?](#faq-jsx-stylelint-eslint)
13. [How can I check Vue files with ESLint?](#faq-vue-eslint)
14. [Will this plugin eat all of my laptop battery power?](#faq-my-battery-is-sad)
15. [How can I configure my C or C++ project?](#faq-c-configuration)
16. [How can I configure ALE differently for different buffers?](#faq-buffer-configuration)
17. [How can I configure the height of the list in which ALE displays errors?](#faq-list-window-height)
18. [How can I see what ALE has configured for the current file?](#faq-get-info)
<a name="supported-languages"></a>
## 1. Supported Languages and Tools
ALE supports a wide variety of languages and tools. See the
[full list](supported-tools.md) in the
[Supported Languages and Tools](supported-tools.md) page.
<a name="usage"></a>
## 2. Usage
<a name="usage-linting"></a>
### 2.i Linting
Once this plugin is installed, while editing your files in supported
languages and tools which have been correctly installed,
@@ -74,39 +98,263 @@ programs for checking the syntax and semantics of your programs. By default,
linters will be re-run in the background to check your syntax when you open
new buffers or as you make edits to your files.
### Options
The behaviour of linting can be configured with a variety of options,
documented in [the Vim help file](doc/ale.txt). For more information on the
options ALE offers, consult `:help ale-options` for global options and `:help
ale-integration-options` for options specified to particular linters.
A full list of options supported for configuring this plugin in your
vimrc file for all given linters is as follows:
<a name="usage-fixing"></a>
| Option | Description | Default |
| ------ | ----------- | ------- |
| `g:ale_echo_cursor` | echo errors when the cursor is over them | `1` |
| `g:ale_echo_msg_format` | string format to use for the echoed message | `'%s'` |
| `g:ale_echo_msg_error_str` | string used for error severity in echoed message | `'Error'` |
| `g:ale_echo_msg_warning_str` | string used for warning severity in echoed message | `'Warning'` |
| `g:ale_lint_delay` | milliseconds to wait before linting | `200` |
| `g:ale_linters` | a dictionary of linters to whitelist | _not set_ |
| `g:ale_lint_on_enter` | lint when opening a file | `1` |
| `g:ale_lint_on_save` | lint when saving a file | `0` |
| `g:ale_lint_on_text_changed` | lint while typing | `1` |
| `g:ale_set_loclist` | set the loclist with errors | `1` |
| `g:ale_set_signs` | set gutter signs with error markers | `has('signs')` |
| `g:ale_sign_column_always` | always show the sign gutter | `0` |
| `g:ale_sign_error` | the text to use for errors in the gutter | `'>>'` |
| `g:ale_sign_offset` | an offset for sign ids | `1000000` |
| `g:ale_sign_warning` | the text to use for warnings in the gutter | `'--'` |
| `g:ale_statusline_format` | string format to use in statusline flag | `['%d error(s)', '%d warning(s)', 'OK']` |
| `g:ale_warn_about_trailing_whitespace` | enable trailing whitespace warnings for some linters | `1` |
### 2.ii Fixing
### Selecting Particular Linters
ALE can fix files with the `ALEFix` command. Functions need to be configured
either in each buffer with a `b:ale_fixers`, or globally with `g:ale_fixers`.
By default, all available tools for all supported languages will be run.
If you want to only select a subset of the tools, simply create a
`g:ale_linters` dictionary in your vimrc file mapping filetypes
to lists of linters to run.
The recommended way to configure fixers is to define a List in an ftplugin file.
```vim
" In ~/.vim/ftplugin/javascript.vim, or somewhere similar.
" Fix files with prettier, and then ESLint.
let b:ale_fixers = ['prettier', 'eslint']
" Equivalent to the above.
let b:ale_fixers = {'javascript': ['prettier', 'eslint']}
```
You can also configure your fixers from vimrc using `g:ale_fixers`, before or
after ALE has been loaded.
A `*` in place of the filetype will apply a List of fixers to all files which
do not match some filetype in the Dictionary.
Note that using a plain List for `g:ale_fixers` is not supported.
```vim
" In ~/.vim/vimrc, or somewhere similar.
let g:ale_fixers = {
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
\ 'javascript': ['eslint'],
\}
```
If you want to automatically fix files when you save them, you need to turn
a setting on in vimrc.
```vim
" Set this variable to 1 to fix files when you save them.
let g:ale_fix_on_save = 1
```
The `:ALEFixSuggest` command will suggest some supported tools for fixing code.
Both `g:ale_fixers` and `b:ale_fixers` can also accept functions, including
lambda functions, as fixers, for fixing files with custom tools.
See `:help ale-fix` for complete information on how to fix files with ALE.
<a name="usage-completion"></a>
### 2.iii Completion
ALE offers some support for completion via hijacking of omnicompletion while you
type. All of ALE's completion information must come from Language Server
Protocol linters, or from `tsserver` for TypeScript.
```vim
" Enable completion where available.
" This setting must be set before ALE is loaded.
let g:ale_completion_enabled = 1
```
See `:help ale-completion` for more information.
<a name="usage-go-to-definition"></a>
### 2.iv Go To Definition
ALE supports jumping to the definition of words under your cursor with the
`:ALEGoToDefinition` command using any enabled Language Server Protocol linters
and `tsserver`.
See `:help ale-go-to-definition` for more information.
<a name="usage-find-references"></a>
### 2.v Find References
ALE supports finding references for words under your cursor with the
`:ALEFindReferences` command using any enabled Language Server Protocol linters
and `tsserver`.
See `:help ale-find-references` for more information.
<a name="usage-hover"></a>
### 2.vi Hovering
ALE supports "hover" information for printing brief information about symbols at
the cursor taken from Language Server Protocol linters and `tsserver` with the
`ALEHover` command.
The information can be displayed in a `balloon` tooltip in Vim or GVim by
hovering your mouse over symbols. Mouse hovering is enabled by default in GVim,
and needs to be configured for Vim 8.1+ in terminals.
See `:help ale-hover` for more information.
<a name="usage-symbol-search"></a>
### 2.vii Symbol Search
ALE supports searching for workspace symbols via Language Server Protocol
linters with the `ALESymbolSearch` command.
Search queries can be performed to find functions, types, and more which are
similar to a given query string.
See `:help ale-symbol-search` for more information.
<a name="installation"></a>
## 3. Installation
To install this plugin, you should use one of the following methods.
For Windows users, replace usage of the Unix `~/.vim` directory with
`%USERPROFILE%\vimfiles`, or another directory if you have configured
Vim differently. On Windows, your `~/.vimrc` file will be similarly
stored in `%USERPROFILE%\_vimrc`.
<a name="standard-installation"></a>
### 3.i. Installation with Vim package management
In Vim 8 and NeoVim, you can install plugins easily without needing to use
any other tools. Simply clone the plugin into your `pack` directory.
#### Vim 8 on Unix
```bash
mkdir -p ~/.vim/pack/git-plugins/start
git clone https://github.com/w0rp/ale.git ~/.vim/pack/git-plugins/start/ale
```
#### NeoVim on Unix
```bash
mkdir -p ~/.local/share/nvim/site/pack/git-plugins/start
git clone https://github.com/w0rp/ale.git ~/.local/share/nvim/site/pack/git-plugins/start/ale
```
#### Vim 8 on Windows
```bash
# Run these commands in the "Git for Windows" Bash terminal
mkdir -p ~/vimfiles/pack/git-plugins/start
git clone https://github.com/w0rp/ale.git ~/vimfiles/pack/git-plugins/start/ale
```
#### Generating Vim help files
You can add the following line to your vimrc files to generate documentation
tags automatically, if you don't have something similar already, so you can use
the `:help` command to consult ALE's online documentation:
```vim
" Put these lines at the very end of your vimrc file.
" Load all plugins now.
" Plugins need to be added to runtimepath before helptags can be generated.
packloadall
" Load all of the helptags now, after plugins have been loaded.
" All messages and errors will be ignored.
silent! helptags ALL
```
<a name="installation-with-pathogen"></a>
### 3.ii. Installation with Pathogen
To install this module with [Pathogen](https://github.com/tpope/vim-pathogen),
you should clone this repository to your bundle directory, and ensure
you have the line `execute pathogen#infect()` in your `~/.vimrc` file.
You can run the following commands in your terminal to do so:
```bash
cd ~/.vim/bundle
git clone https://github.com/w0rp/ale.git
```
<a name="installation-with-vundle"></a>
### 3.iii. Installation with Vundle
You can install this plugin using [Vundle](https://github.com/VundleVim/Vundle.vim)
by using the path on GitHub for this repository.
```vim
Plugin 'w0rp/ale'
```
See the Vundle documentation for more information.
<a name="installation-with-vim-plug"></a>
### 3.iiii. Installation with Vim-Plug
You can install this plugin using [Vim-Plug](https://github.com/junegunn/vim-plug)
by adding the GitHub path for this repository to your `~/.vimrc`
and running `:PlugInstall`.
```vim
Plug 'w0rp/ale'
```
<a name="contributing"></a>
## 4. Contributing
If you would like to see support for more languages and tools, please
[create an issue](https://github.com/w0rp/ale/issues)
or [create a pull request](https://github.com/w0rp/ale/pulls).
If your tool can read from stdin or you have code to suggest which is good,
support can be happily added for it.
If you are interested in the general direction of the project, check out the
[wiki home page](https://github.com/w0rp/ale/wiki). The wiki includes a
Roadmap for the future, and more.
If you'd liked to discuss the project more directly, check out the `#vim-ale` channel
on Freenode. Web chat is available [here](https://webchat.freenode.net/?channels=vim-ale).
<a name="faq"></a>
## 5. FAQ
<a name="faq-disable-linters"></a>
### 5.i. How do I disable particular linters?
By default, all available tools for all supported languages will be run. If you
want to only select a subset of the tools, you can define `b:ale_linters` for a
single buffer, or `g:ale_linters` globally.
The recommended way to configure linters is to define a List in an ftplugin
file.
```vim
" In ~/.vim/ftplugin/javascript.vim, or somewhere similar.
" Enable ESLint only for JavaScript.
let b:ale_linters = ['eslint']
" Equivalent to the above.
let b:ale_linters = {'javascript': ['eslint']}
```
You can also declare which linters you want to run in your vimrc file, before or
after ALE has been loaded.
```vim
" In ~/.vim/vimrc, or somewhere similar.
let g:ale_linters = {
\ 'javascript': ['eslint'],
\}
@@ -117,19 +365,32 @@ be run for those languages, just as when the dictionary is not defined.
Running many linters should not typically obstruct editing in Vim,
as they will all be executed in separate processes simultaneously.
If you don't want ALE to run anything other than what you've explicitly asked
for, you can set `g:ale_linters_explicit` to `1`.
```vim
" Only run linters named in ale_linters settings.
let g:ale_linters_explicit = 1
```
This plugin will look for linters in the [`ale_linters`](ale_linters) directory.
Each directory within corresponds to a particular filetype in Vim, and each file
in each directory corresponds to the name of a particular linter.
### Always showing gutter
<a name="faq-keep-signs"></a>
You can keep the sign gutter open at all times by setting the `g:ale_sign_column_always` to 1
### 5.ii. How can I keep the sign gutter open?
You can keep the sign gutter open at all times by setting the
`g:ale_sign_column_always` to 1
```vim
let g:ale_sign_column_always = 1
```
### Customize signs
<a name="faq-change-signs"></a>
### 5.iii. How can I change the signs ALE uses?
Use these options to specify what text should be used for signs:
@@ -138,40 +399,111 @@ let g:ale_sign_error = '>>'
let g:ale_sign_warning = '--'
```
### Statusline
You can use `ALEGetStatusLine()` to integrate ALE into vim statusline.
To enable it, you should have in your `statusline` settings
ALE sets some background colors automatically for warnings and errors
in the sign gutter, with the names `ALEErrorSign` and `ALEWarningSign`.
These colors can be customised, or even removed completely:
```vim
%{ALEGetStatusLine()}
highlight clear ALEErrorSign
highlight clear ALEWarningSign
```
When errors are detected a string showing the number of errors will be shown.
You can customize the output format using the global list `g:ale_statusline_format` where:
<a name="faq-change-highlights"></a>
- The 1st element is for errors
- The 2nd element is for warnings
- The 3rd element is for when no errors are detected
### 5.iv. How can I change or disable the highlights ALE uses?
e.g
ALE's highlights problems with highlight groups which link to `SpellBad`,
`SpellCap`, `error`, and `todo` groups by default. The characters that are
highlighted depend on the linters being used, and the information provided to
ALE.
Highlighting can be disabled completely by setting `g:ale_set_highlights` to
`0`.
```vim
let g:ale_statusline_format = ['⨉ %d', '⚠ %d', '⬥ ok']
" Set this in your vimrc file to disabling highlighting
let g:ale_set_highlights = 0
```
![Statusline with issues](img/issues.png)
![Statusline with no issues](img/no_issues.png)
You can control all of the highlights ALE uses, say if you are using a different
color scheme which produces ugly highlights. For example:
```vim
highlight ALEWarning ctermbg=DarkMagenta
```
### Customize echoed message
See `:help ale-highlights` for more information.
<a name="faq-statusline"></a>
### 5.v. How can I show errors or warnings in my statusline?
[vim-airline](https://github.com/vim-airline/vim-airline) integrates with ALE
for displaying error information in the status bar. If you want to see the
status for ALE in a nice format, it is recommended to use vim-airline with ALE.
The airline extension can be enabled by adding the following to your vimrc:
```vim
" Set this. Airline will handle the rest.
let g:airline#extensions#ale#enabled = 1
```
If you don't want to use vim-airline, you can implement your own statusline
function without adding any other plugins. ALE provides some functions to
assist in this endeavour, including:
* `ale#statusline#Count`: Which returns the number of problems found by ALE
for a specified buffer.
* `ale#statusline#FirstProblem`: Which returns a dictionary containing the
full loclist details of the first problem of a specified type found by ALE
in a buffer. (e.g. The first style warning in the current buffer.)
This can be useful for displaying more detailed information such as the
line number of the first problem in a file.
Say you want to display all errors as one figure, and all non-errors as another
figure. You can do the following:
```vim
function! LinterStatus() abort
let l:counts = ale#statusline#Count(bufnr(''))
let l:all_errors = l:counts.error + l:counts.style_error
let l:all_non_errors = l:counts.total - l:all_errors
return l:counts.total == 0 ? 'OK' : printf(
\ '%dW %dE',
\ all_non_errors,
\ all_errors
\)
endfunction
set statusline=%{LinterStatus()}
```
See `:help ale#statusline#Count()` or `:help ale#statusline#FirstProblem()`
for more information.
<a name="faq-lightline"></a>
### 5.vi. How can I show errors or warnings in my lightline?
[lightline](https://github.com/itchyny/lightline.vim) does not have built-in
support for ALE, nevertheless there is a plugin that adds this functionality: [maximbaz/lightline-ale](https://github.com/maximbaz/lightline-ale).
For more information, check out the sources of that plugin, `:help ale#statusline#Count()` and [lightline documentation](https://github.com/itchyny/lightline.vim#advanced-configuration).
<a name="faq-echo-format"></a>
### 5.vii. How can I change the format for echo messages?
There are 3 global options that allow customizing the echoed message.
- `g:ale_echo_msg_format` where:
* `%s` is the error message itself
* `%linter%` is the linter name
* `%severity` is the severity type
* `%s` is the error message itself
* `%...code...%` is an optional error code, and most characters can be
written between the `%` characters.
* `%linter%` is the linter name
* `%severity%` is the severity type
- `g:ale_echo_msg_error_str` is the string used for error severity.
- `g:ale_echo_msg_warning_str` is the string used for warning severity.
@@ -187,58 +519,274 @@ Will give you:
![Echoed message](img/echo.png)
## Installation
See `:help g:ale_echo_msg_format` for more information.
To install this plugin, you should use one of the following methods.
For Windows users, replace usage of the Unix `~/.vim` directory with
`%USERPROFILE%\_vim`, or another directory if you have configured
Vim differently. On Windows, your `~/.vimrc` file will be similarly
stored in `%USERPROFILE%\_vimrc`.
<a name="faq-autocmd"></a>
### Installation with Pathogen
### 5.viii. How can I execute some code when ALE starts or stops linting?
To install this module with [Pathogen](https://github.com/tpope/vim-pathogen),
you should clone this repository to your bundle directory, and ensure
you have the line `execute pathogen#infect()` in your `~/.vimrc` file.
You can run the following commands in your terminal to do so:
```bash
cd ~/.vim/bundle
git clone https://github.com/w0rp/ale.git
```
### Installation with Vundle
You can install this plugin using [Vundle](https://github.com/VundleVim/Vundle.vim)
by using the path on GitHub for this repository.
ALE runs its own [autocmd](http://vimdoc.sourceforge.net/htmldoc/autocmd.html)
events when a lint or fix cycle are started and stopped. There is also an event
that runs when a linter job has been successfully started. These events can be
used to call arbitrary functions during these respective parts of the ALE's
operation.
```vim
Plugin 'w0rp/ale'
augroup YourGroup
autocmd!
autocmd User ALELintPre call YourFunction()
autocmd User ALELintPost call YourFunction()
autocmd User ALEJobStarted call YourFunction()
autocmd User ALEFixPre call YourFunction()
autocmd User ALEFixPost call YourFunction()
augroup END
```
See the Vundle documentation for more information.
<a name="faq-navigation"></a>
### Manual Installation
### 5.ix. How can I navigate between errors quickly?
For installation without a package manager, you can clone this git repository
into a bundle directory as with pathogen, and add the repository to your
runtime path yourself. First clone the repository.
```bash
cd ~/.vim/bundle
git clone https://github.com/w0rp/ale.git
```
Then, modify your `~/.vimrc` file to add this plugin to your runtime path.
ALE offers some commands with `<Plug>` keybinds for moving between warnings and
errors quickly. You can map the keys Ctrl+j and Ctrl+k to moving between errors
for example:
```vim
set nocompatible
filetype off
let &runtimepath.=',~/.vim/bundle/ale'
filetype plugin on
nmap <silent> <C-k> <Plug>(ale_previous_wrap)
nmap <silent> <C-j> <Plug>(ale_next_wrap)
```
Because the author of this plugin is a weird nerd, this is his preferred
installation method.
For more information, consult the online documentation with
`:help ale-navigation-commands`.
<a name="faq-lint-on-save"></a>
### 5.x. How can I run linters only when I save files?
ALE offers an option `g:ale_lint_on_save` for enabling running the linters
when files are saved. This option is enabled by default. If you only
wish to run linters when files are saved, you can turn the other
options off.
```vim
" Write this in your vimrc file
let g:ale_lint_on_text_changed = 'never'
" You can disable this option too
" if you don't want linters to run on opening a file
let g:ale_lint_on_enter = 0
```
If for whatever reason you don't wish to run linters again when you save
files, you can set `g:ale_lint_on_save` to `0`.
<a name="faq-quickfix"></a>
### 5.xi. How can I use the quickfix list instead of the loclist?
The quickfix list can be enabled by turning the `g:ale_set_quickfix`
option on. If you wish to also disable the loclist, you can disable
the `g:ale_set_loclist` option.
```vim
" Write this in your vimrc file
let g:ale_set_loclist = 0
let g:ale_set_quickfix = 1
```
If you wish to show Vim windows for the loclist or quickfix items
when a file contains warnings or errors, `g:ale_open_list` can be
set to `1`. `g:ale_keep_list_window_open` can be set to `1`
if you wish to keep the window open even after errors disappear.
```vim
let g:ale_open_list = 1
" Set this if you want to.
" This can be useful if you are combining ALE with
" some other plugin which sets quickfix errors, etc.
let g:ale_keep_list_window_open = 1
```
You can also set `let g:ale_list_vertical = 1` to open the windows vertically
instead of the default horizontally.
<a name="faq-jsx-stylelint-eslint"></a>
### 5.xii. How can I check JSX files with both stylelint and eslint?
If you configure ALE options correctly in your vimrc file, and install
the right tools, you can check JSX files with stylelint and eslint.
First, install eslint and install stylelint with
[stylelint-processor-styled-components](https://github.com/styled-components/stylelint-processor-styled-components).
Supposing you have installed both tools correctly, configure your .jsx files so
`jsx` is included in the filetype. You can use an `autocmd` for this.
```vim
augroup FiletypeGroup
autocmd!
au BufNewFile,BufRead *.jsx set filetype=javascript.jsx
augroup END
```
Supposing the filetype has been set correctly, you can set the following
options in a jsx.vim ftplugin file.
```vim
" In ~/.vim/ftplugin/jsx.vim, or somewhere similar.
let b:ale_linter_aliases = ['css', 'javascript']
let b:ale_linters = ['stylelint', 'eslint']
```
Or if you want, you can configure the linters from your vimrc file.
```vim
" In ~/.vim/vimrc, or somewhere similar.
let g:ale_linter_aliases = {'jsx': ['css', 'javascript']}
let g:ale_linters = {'jsx': ['stylelint', 'eslint']}
```
ALE will alias the `jsx` filetype so it uses the `css` filetype linters, and
use the original Array of selected linters for `jsx` from the `g:ale_linters`
object. All available linters will be used for the filetype `javascript`, and
no linter will be run twice for the same file.
<a name="faq-vue-eslint"></a>
### 5.xiii. How can I check Vue files with ESLint?
To check Vue files with ESLint, your ESLint project configuration file must be
configured to use the [Vue plugin](https://github.com/vuejs/eslint-plugin-vue).
After that, you need to configure ALE so it will run the JavaScript ESLint
linter on your files. The settings you need are similar to the settings needed
for checking JSX code with both stylelint and ESLint, in the previous section.
```vim
" In ~/.vim/ftplugin/vue.vim, or somewhere similar.
" Run both javascript and vue linters for vue files.
let b:ale_linter_aliases = ['javascript', 'vue']
" Select the eslint and vls linters.
let b:ale_linters = ['eslint', 'vls']
```
Run `:ALEInfo` to see which linters are available after telling ALE to run
JavaScript linters on Vue files. Not all linters support checking Vue files.
If you don't want to configure your linters in ftplugin files for some reason,
you can configure them from your vimrc file instead.
```vim
" In ~/.vim/vimrc, or somewhere similar.
let g:ale_linter_aliases = {'vue': ['vue', 'javascript']}
let g:ale_linters = {'vue': ['eslint', 'vls']}
```
<a name="faq-my-battery-is-sad"></a>
### 5.xiv. Will this plugin eat all of my laptop battery power?
ALE takes advantage of the power of various tools to check your code. This of
course means that CPU time will be used to continuously check your code. If you
are concerned about the CPU time ALE will spend, which will of course imply
some cost to battery life, you can adjust your settings to make your CPU do
less work.
First, consider increasing the delay before which ALE will run any linters
while you type. ALE uses a timeout which is cancelled and reset every time you
type, and this delay can be increased so linters are run less often. See
`:help g:ale_lint_delay` for more information.
If you don't wish to run linters while you type, you can disable that
behaviour. Set `g:ale_lint_on_text_changed` to `never` or `normal`. You won't
get as frequent error checking, but ALE shouldn't block your ability to edit a
document after you save a file, so the asynchronous nature of the plugin will
still be an advantage.
If you are still concerned, you can turn the automatic linting off altogether,
including the option `g:ale_lint_on_enter`, and you can run ALE manually with
`:ALELint`.
<a name="faq-c-configuration"></a>
### 5.xv. How can I configure my C or C++ project?
The structure of C and C++ projects varies wildly from project to project, with
many different build tools being used for building them, and many different
formats for project configuration files. ALE can run compilers easily, but
ALE cannot easily detect which compiler flags to use.
Some tools and build configurations can generate
[compile_commands.json](https://clang.llvm.org/docs/JSONCompilationDatabase.html)
files. The `cppcheck`, `clangcheck`, `clangtidy` and `cquery` linters can read
these files for automatically determining the appropriate compiler flags to
use.
For linting with compilers like `gcc` and `clang`, and with other tools, you
will need to tell ALE which compiler flags to use yourself. You can use
different options for different projects with the `g:ale_pattern_options`
setting. Consult the documentation for that setting for more information.
`b:ale_linters` can be used to select which tools you want to run, say if you
want to use only `gcc` for one project, and only `clang` for another.
You may also configure buffer-local settings for linters with project-specific
vimrc files. [local_vimrc](https://github.com/LucHermitte/local_vimrc) can be
used for executing local vimrc files which can be shared in your project.
<a name="faq-buffer-configuration"></a>
### 5.xvi. How can I configure ALE differently for different buffers?
ALE offers various ways to configure which linters or fixers are run, and
other settings. For the majority of ALE's settings, they can either be
configured globally with a `g:` variable prefix, or for a specific buffer
with a `b:` variable prefix. For example, you can configure a Python ftplugin
file like so.
```vim
" In ~/.vim/ftplugin/python.vim
" Check Python files with flake8 and pylint.
let b:ale_linters = ['flake8', 'pylint']
" Fix Python files with autopep8 and yapf.
let b:ale_fixers = ['autopep8', 'yapf']
" Disable warnings about trailing whitespace for Python files.
let b:ale_warn_about_trailing_whitespace = 0
```
For configuring files based on regular expression patterns matched against the
absolute path to a file, you can use `g:ale_pattern_options`.
```vim
" Do not lint or fix minified files.
let g:ale_pattern_options = {
\ '\.min\.js$': {'ale_linters': [], 'ale_fixers': []},
\ '\.min\.css$': {'ale_linters': [], 'ale_fixers': []},
\}
" If you configure g:ale_pattern_options outside of vimrc, you need this.
let g:ale_pattern_options_enabled = 1
```
Buffer-local variables for settings always override the global settings.
<a name="faq-list-window-height"></a>
### 5.xvii. How can I configure the height of the list in which ALE displays errors?
To set a default height for the error list, use the `g:ale_list_window_size` variable.
```vim
" Show 5 lines of errors (default: 10)
let g:ale_list_window_size = 5
```
<a name="faq-get-info"></a>
### 5.xviii. How can I see what ALE has configured for the current file?
Run the following to see what is currently configured:
```vim
:ALEInfo
```

54
ale_linters/ada/gcc.vim Normal file
View File

@@ -0,0 +1,54 @@
" Author: Martino Pilia <martino.pilia@gmail.com>
" Description: Lint Ada files with GCC
call ale#Set('ada_gcc_executable', 'gcc')
" -gnatwa: activate most optional warnings
" -gnatq: try semantic analysis even if syntax errors have been found
call ale#Set('ada_gcc_options', '-gnatwa -gnatq')
function! ale_linters#ada#gcc#GetCommand(buffer) abort
" Build a suitable output file name. The output file is specified because
" the .ali file may be created even if no code generation is attempted.
" The output file name must match the source file name (except for the
" extension), so here we cannot use the null file as output.
let l:tmp_dir = fnamemodify(ale#command#CreateDirectory(a:buffer), ':p')
let l:out_file = l:tmp_dir . fnamemodify(bufname(a:buffer), ':t:r') . '.o'
" -gnatc: Check syntax and semantics only (no code generation attempted)
return '%e -x ada -c -gnatc'
\ . ' -o ' . ale#Escape(l:out_file)
\ . ' -I ' . ale#Escape(fnamemodify(bufname(a:buffer), ':p:h'))
\ . ale#Pad(ale#Var(a:buffer, 'ada_gcc_options'))
\ . ' %t'
endfunction
" For the message format please refer to:
" https://gcc.gnu.org/onlinedocs/gnat_ugn/Output-and-Error-Message-Control.html
" https://gcc.gnu.org/onlinedocs/gnat_ugn/Warning-Message-Control.html
function! ale_linters#ada#gcc#Handle(buffer, lines) abort
" Error format: <filename>:<lnum>:<col>: <text>
" Warning format: <filename>:<lnum>:<col>: warning: <text>
let l:re = '\v(.+):([0-9]+):([0-9]+):\s+(warning:)?\s*(.+)\s*'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:re)
call add(l:output, {
\ 'bufnr': a:buffer,
\ 'lnum': str2nr(l:match[2]),
\ 'col': str2nr(l:match[3]),
\ 'type': l:match[4] is# 'warning:' ? 'W' : 'E',
\ 'text': l:match[5],
\})
endfor
return l:output
endfunction
call ale#linter#Define('ada', {
\ 'name': 'gcc',
\ 'output_stream': 'stderr',
\ 'executable': {b -> ale#Var(b, 'ada_gcc_executable')},
\ 'command': function('ale_linters#ada#gcc#GetCommand'),
\ 'callback': 'ale_linters#ada#gcc#Handle',
\})

View File

@@ -0,0 +1,56 @@
" Author: Bjorn Neergaard <bjorn@neersighted.com>
" Description: ansible-lint for ansible-yaml files
call ale#Set('ansible_ansible_lint_executable', 'ansible-lint')
function! ale_linters#ansible#ansible_lint#GetExecutable(buffer) abort
return ale#Var(a:buffer, 'ansible_ansible_lint_executable')
endfunction
function! ale_linters#ansible#ansible_lint#Handle(buffer, lines) abort
for l:line in a:lines[:10]
if match(l:line, '^Traceback') >= 0
return [{
\ 'lnum': 1,
\ 'text': 'An exception was thrown. See :ALEDetail',
\ 'detail': join(a:lines, "\n"),
\}]
endif
endfor
" Matches patterns line the following:
"
" test.yml:35: [EANSIBLE0002] Trailing whitespace
let l:pattern = '\v^([a-zA-Z]?:?[^:]+):(\d+):?(\d+)?: \[?([[:alnum:]]+)\]? (.*)$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
let l:code = l:match[4]
if l:code is# 'EANSIBLE0002'
\&& !ale#Var(a:buffer, 'warn_about_trailing_whitespace')
" Skip warnings for trailing whitespace if the option is off.
continue
endif
if ale#path#IsBufferPath(a:buffer, l:match[1])
call add(l:output, {
\ 'lnum': l:match[2] + 0,
\ 'col': l:match[3] + 0,
\ 'text': l:match[5],
\ 'code': l:code,
\ 'type': l:code[:0] is# 'E' ? 'E' : 'W',
\})
endif
endfor
return l:output
endfunction
call ale#linter#Define('ansible', {
\ 'name': 'ansible_lint',
\ 'aliases': ['ansible', 'ansible-lint'],
\ 'executable': function('ale_linters#ansible#ansible_lint#GetExecutable'),
\ 'command': '%e -p %t',
\ 'callback': 'ale_linters#ansible#ansible_lint#Handle',
\})

View File

@@ -0,0 +1,38 @@
" Author: nametake https://nametake.github.io
" Description: apiblueprint parser
function! ale_linters#apiblueprint#drafter#HandleErrors(buffer, lines) abort
" Matches patterns line the following:
"
" warning: (3) unable to parse response signature, expected 'response [<HTTP status code>] [(<media type>)]'; line 4, column 3k - line 4, column 22
" warning: (10) message-body asset is expected to be a pre-formatted code block, separate it by a newline and indent every of its line by 12 spaces or 3 tabs; line 30, column 5 - line 30, column 9; line 31, column 9 - line 31, column 14; line 32, column 9 - line 32, column 14
let l:pattern = '\(^.*\): (\d\+) \(.\{-\}\); line \(\d\+\), column \(\d\+\) - line \d\+, column \d\+\(.*; line \d\+, column \d\+ - line \(\d\+\), column \(\d\+\)\)\{-\}$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines[2:], l:pattern)
let l:item = {
\ 'type': l:match[1] is# 'warning' ? 'W' : 'E',
\ 'text': l:match[2],
\ 'lnum': l:match[3] + 0,
\ 'col': l:match[4] + 0,
\}
if l:match[5] isnot# ''
let l:item.end_lnum = l:match[6] + 0
let l:item.end_col = l:match[7] + 0
endif
call add(l:output, l:item)
endfor
return l:output
endfunction
call ale#linter#Define('apiblueprint', {
\ 'name': 'drafter',
\ 'output_stream': 'stderr',
\ 'executable': 'drafter',
\ 'command': 'drafter --use-line-num --validate',
\ 'callback': 'ale_linters#apiblueprint#drafter#HandleErrors',
\})

View File

@@ -0,0 +1,4 @@
" Author: Johannes Wienke <languitar@semipol.de>
" Description: alex for asciidoc files
call ale#handlers#alex#DefineLinter('asciidoc', '--text')

View File

@@ -0,0 +1,9 @@
" Author: Daniel M. Capella https://github.com/polyzen
" Description: proselint for AsciiDoc files
call ale#linter#Define('asciidoc', {
\ 'name': 'proselint',
\ 'executable': 'proselint',
\ 'command': 'proselint %t',
\ 'callback': 'ale#handlers#unix#HandleAsWarning',
\})

View File

@@ -0,0 +1,9 @@
" Author: rhysd https://rhysd.github.io
" Description: Redpen, a proofreading tool (http://redpen.cc)
call ale#linter#Define('asciidoc', {
\ 'name': 'redpen',
\ 'executable': 'redpen',
\ 'command': 'redpen -f asciidoc -r json %t',
\ 'callback': 'ale#handlers#redpen#HandleRedpenOutput',
\})

View File

@@ -0,0 +1,9 @@
" Author: TANIGUCHI Masaya <ta2gch@gmail.com>
" Description: textlint for AsciiDoc files
call ale#linter#Define('asciidoc', {
\ 'name': 'textlint',
\ 'executable': function('ale#handlers#textlint#GetExecutable'),
\ 'command': function('ale#handlers#textlint#GetCommand'),
\ 'callback': 'ale#handlers#textlint#HandleTextlintOutput',
\})

View File

@@ -0,0 +1,9 @@
" Author: Jeff Kreeftmeijer https://github.com/jeffkreeftmeijer
" Description: vale for AsciiDoc files
call ale#linter#Define('asciidoc', {
\ 'name': 'vale',
\ 'executable': 'vale',
\ 'command': 'vale --output=line %t',
\ 'callback': 'ale#handlers#unix#HandleAsWarning',
\})

View File

@@ -0,0 +1,4 @@
" Author: Sumner Evans <sumner.evans98@gmail.com>
" Description: write-good for AsciiDoc files
call ale#handlers#writegood#DefineLinter('asciidoc')

34
ale_linters/asm/gcc.vim Normal file
View File

@@ -0,0 +1,34 @@
" Author: Lucas Kolstad <lkolstad@uw.edu>
" Description: gcc linter for asm files
call ale#Set('asm_gcc_executable', 'gcc')
call ale#Set('asm_gcc_options', '-Wall')
function! ale_linters#asm#gcc#GetCommand(buffer) abort
return '%e -x assembler -fsyntax-only '
\ . '-iquote ' . ale#Escape(fnamemodify(bufname(a:buffer), ':p:h'))
\ . ' ' . ale#Var(a:buffer, 'asm_gcc_options') . ' -'
endfunction
function! ale_linters#asm#gcc#Handle(buffer, lines) abort
let l:pattern = '^.\+:\(\d\+\): \([^:]\+\): \(.\+\)$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:output, {
\ 'lnum': l:match[1] + 0,
\ 'type': l:match[2] =~? 'error' ? 'E' : 'W',
\ 'text': l:match[3],
\})
endfor
return l:output
endfunction
call ale#linter#Define('asm', {
\ 'name': 'gcc',
\ 'output_stream': 'stderr',
\ 'executable': {b -> ale#Var(b, 'asm_gcc_executable')},
\ 'command': function('ale_linters#asm#gcc#GetCommand'),
\ 'callback': 'ale_linters#asm#gcc#Handle',
\})

22
ale_linters/awk/gawk.vim Normal file
View File

@@ -0,0 +1,22 @@
" Author: kmarc <korondi.mark@gmail.com>
" Description: This file adds support for using GNU awk with sripts.
call ale#Set('awk_gawk_executable', 'gawk')
call ale#Set('awk_gawk_options', '')
function! ale_linters#awk#gawk#GetCommand(buffer) abort
" note the --source 'BEGIN ...' is to prevent
" gawk from attempting to execute the body of the script
" it is linting.
return '%e --source ' . ale#Escape('BEGIN { exit } END { exit 1 }')
\ . ale#Pad(ale#Var(a:buffer, 'awk_gawk_options'))
\ . ' -f %t --lint /dev/null'
endfunction
call ale#linter#Define('awk', {
\ 'name': 'gawk',
\ 'executable': {b -> ale#Var(b, 'awk_gawk_executable')},
\ 'command': function('ale_linters#awk#gawk#GetCommand'),
\ 'callback': 'ale#handlers#gawk#HandleGawkFormat',
\ 'output_stream': 'both'
\})

View File

@@ -0,0 +1,75 @@
" Author: Horacio Sanson - https://github.com/hsanson
" Description: Support for bibclean linter for BibTeX files.
call ale#Set('bib_bibclean_executable', 'bibclean')
function! ale_linters#bib#bibclean#GetCommand(buffer) abort
let l:executable = ale#Var(a:buffer, 'bib_bibclean_executable')
return ale#Escape(l:executable) . ' -file-position '
endfunction
function! ale_linters#bib#bibclean#get_type(str) abort
if a:str is# '??'
return 'E'
else
return 'W'
endif
endfunction
function! ale_linters#bib#bibclean#match_msg(line) abort
return matchlist(a:line, '^\(.*\) "stdin", line \(.*\): \(.*\)$')
endfunction
function! ale_linters#bib#bibclean#match_entry(line) abort
return matchlist(a:line, 'Entry input byte=.* line=\(.*\) column=\(.*\) output .*$')
endfunction
function! ale_linters#bib#bibclean#match_value(line) abort
return matchlist(a:line, 'Value input byte=.* line=\(.*\) column=\(.*\) output .*$')
endfunction
function! ale_linters#bib#bibclean#Handle(buffer, lines) abort
let l:output = []
let l:type = 'E'
let l:msg = ''
for l:line in a:lines
if empty(l:msg)
let l:mlist = ale_linters#bib#bibclean#match_msg(l:line)
if !empty(l:mlist)
let l:msg = l:mlist[3]
let l:type = ale_linters#bib#bibclean#get_type(l:mlist[1])
endif
else
if l:type is# 'E'
let l:mlist = ale_linters#bib#bibclean#match_entry(l:line)
else
let l:mlist = ale_linters#bib#bibclean#match_value(l:line)
endif
if !empty(l:mlist)
call add(l:output, {
\ 'lnum': l:mlist[1],
\ 'col': l:mlist[2],
\ 'text': l:msg,
\ 'type': l:type
\})
let l:msg = ''
endif
endif
endfor
return l:output
endfunction
call ale#linter#Define('bib', {
\ 'name': 'bibclean',
\ 'executable': {b -> ale#Var(b, 'bib_bibclean_executable')},
\ 'command': function('ale_linters#bib#bibclean#GetCommand'),
\ 'output_stream': 'stderr',
\ 'callback': 'ale_linters#bib#bibclean#Handle',
\})

14
ale_linters/c/ccls.vim Normal file
View File

@@ -0,0 +1,14 @@
" Author: Ye Jingchen <ye.jingchen@gmail.com>, Ben Falconer <ben@falconers.me.uk>, jtalowell <jtalowell@protonmail.com>
" Description: A language server for C
call ale#Set('c_ccls_executable', 'ccls')
call ale#Set('c_ccls_init_options', {})
call ale#linter#Define('c', {
\ 'name': 'ccls',
\ 'lsp': 'stdio',
\ 'executable': {b -> ale#Var(b, 'c_ccls_executable')},
\ 'command': '%e',
\ 'project_root': function('ale#handlers#ccls#GetProjectRoot'),
\ 'initialization_options': {b -> ale#Var(b, 'c_ccls_init_options')},
\})

24
ale_linters/c/clang.vim Normal file
View File

@@ -0,0 +1,24 @@
" Author: Masahiro H https://github.com/mshr-h
" Description: clang linter for c files
call ale#Set('c_clang_executable', 'clang')
call ale#Set('c_clang_options', '-std=c11 -Wall')
function! ale_linters#c#clang#GetCommand(buffer, output) abort
let l:cflags = ale#c#GetCFlags(a:buffer, a:output)
" -iquote with the directory the file is in makes #include work for
" headers in the same directory.
return '%e -S -x c -fsyntax-only'
\ . ' -iquote ' . ale#Escape(fnamemodify(bufname(a:buffer), ':p:h'))
\ . ale#Pad(l:cflags)
\ . ale#Pad(ale#Var(a:buffer, 'c_clang_options')) . ' -'
endfunction
call ale#linter#Define('c', {
\ 'name': 'clang',
\ 'output_stream': 'stderr',
\ 'executable': {b -> ale#Var(b, 'c_clang_executable')},
\ 'command': {b -> ale#c#RunMakeCommand(b, function('ale_linters#c#clang#GetCommand'))},
\ 'callback': 'ale#handlers#gcc#HandleGCCFormatWithIncludes',
\})

23
ale_linters/c/clangd.vim Normal file
View File

@@ -0,0 +1,23 @@
" Author: Andrey Melentyev <andrey.melentyev@protonmail.com>
" Description: Clangd language server
call ale#Set('c_clangd_executable', 'clangd')
call ale#Set('c_clangd_options', '')
function! ale_linters#c#clangd#GetProjectRoot(buffer) abort
let l:project_root = ale#path#FindNearestFile(a:buffer, 'compile_commands.json')
return !empty(l:project_root) ? fnamemodify(l:project_root, ':h') : ''
endfunction
function! ale_linters#c#clangd#GetCommand(buffer) abort
return '%e' . ale#Pad(ale#Var(a:buffer, 'c_clangd_options'))
endfunction
call ale#linter#Define('c', {
\ 'name': 'clangd',
\ 'lsp': 'stdio',
\ 'executable': {b -> ale#Var(b, 'c_clangd_executable')},
\ 'command': function('ale_linters#c#clangd#GetCommand'),
\ 'project_root': function('ale_linters#c#clangd#GetProjectRoot'),
\})

View File

@@ -0,0 +1,42 @@
" Author: vdeurzen <tim@kompiler.org>, w0rp <devw0rp@gmail.com>,
" gagbo <gagbobada@gmail.com>, Andrej Radovic <r.andrej@gmail.com>
" Description: clang-tidy linter for c files
call ale#Set('c_clangtidy_executable', 'clang-tidy')
" Set this option to check the checks clang-tidy will apply.
" The number of checks that can be applied to C files is limited in contrast to
" C++
"
" Consult the check list in clang-tidy's documentation:
" http://clang.llvm.org/extra/clang-tidy/checks/list.html
call ale#Set('c_clangtidy_checks', [])
" Set this option to manually set some options for clang-tidy.
" This will disable compile_commands.json detection.
call ale#Set('c_clangtidy_options', '')
call ale#Set('c_build_dir', '')
function! ale_linters#c#clangtidy#GetCommand(buffer) abort
let l:checks = join(ale#Var(a:buffer, 'c_clangtidy_checks'), ',')
let l:build_dir = ale#c#GetBuildDirectory(a:buffer)
" Get the extra options if we couldn't find a build directory.
let l:options = empty(l:build_dir)
\ ? ale#Var(a:buffer, 'c_clangtidy_options')
\ : ''
return '%e'
\ . (!empty(l:checks) ? ' -checks=' . ale#Escape(l:checks) : '')
\ . ' %s'
\ . (!empty(l:build_dir) ? ' -p ' . ale#Escape(l:build_dir) : '')
\ . (!empty(l:options) ? ' -- ' . l:options : '')
endfunction
call ale#linter#Define('c', {
\ 'name': 'clangtidy',
\ 'output_stream': 'stdout',
\ 'executable': {b -> ale#Var(b, 'c_clangtidy_executable')},
\ 'command': function('ale_linters#c#clangtidy#GetCommand'),
\ 'callback': 'ale#handlers#gcc#HandleGCCFormat',
\ 'lint_file': 1,
\})

View File

@@ -0,0 +1,34 @@
" Author: Bart Libert <bart.libert@gmail.com>
" Description: cppcheck linter for c files
call ale#Set('c_cppcheck_executable', 'cppcheck')
call ale#Set('c_cppcheck_options', '--enable=style')
function! ale_linters#c#cppcheck#GetCommand(buffer) abort
" Search upwards from the file for compile_commands.json.
"
" If we find it, we'll `cd` to where the compile_commands.json file is,
" then use the file to set up import paths, etc.
let l:compile_commmands_path = ale#path#FindNearestFile(a:buffer, 'compile_commands.json')
let l:cd_command = !empty(l:compile_commmands_path)
\ ? ale#path#CdString(fnamemodify(l:compile_commmands_path, ':h'))
\ : ''
let l:compile_commands_option = !empty(l:compile_commmands_path)
\ ? '--project=compile_commands.json '
\ : ''
return l:cd_command
\ . '%e -q --language=c '
\ . l:compile_commands_option
\ . ale#Var(a:buffer, 'c_cppcheck_options')
\ . ' %t'
endfunction
call ale#linter#Define('c', {
\ 'name': 'cppcheck',
\ 'output_stream': 'both',
\ 'executable': {b -> ale#Var(b, 'c_cppcheck_executable')},
\ 'command': function('ale_linters#c#cppcheck#GetCommand'),
\ 'callback': 'ale#handlers#cppcheck#HandleCppCheckFormat',
\})

28
ale_linters/c/cquery.vim Normal file
View File

@@ -0,0 +1,28 @@
" Author: Ben Falconer <ben@falconers.me.uk>, jtalowell <jtalowell@protonmail.com>
" Description: A language server for C
call ale#Set('c_cquery_executable', 'cquery')
call ale#Set('c_cquery_cache_directory', expand('~/.cache/cquery'))
function! ale_linters#c#cquery#GetProjectRoot(buffer) abort
let l:project_root = ale#path#FindNearestFile(a:buffer, 'compile_commands.json')
if empty(l:project_root)
let l:project_root = ale#path#FindNearestFile(a:buffer, '.cquery')
endif
return !empty(l:project_root) ? fnamemodify(l:project_root, ':h') : ''
endfunction
function! ale_linters#c#cquery#GetInitializationOptions(buffer) abort
return {'cacheDirectory': ale#Var(a:buffer, 'c_cquery_cache_directory')}
endfunction
call ale#linter#Define('c', {
\ 'name': 'cquery',
\ 'lsp': 'stdio',
\ 'executable': {b -> ale#Var(b, 'c_cquery_executable')},
\ 'command': '%e',
\ 'project_root': function('ale_linters#c#cquery#GetProjectRoot'),
\ 'initialization_options': function('ale_linters#c#cquery#GetInitializationOptions'),
\})

View File

@@ -0,0 +1,25 @@
" Author: Christian Gibbons <cgibbons@gmu.edu>
" Description: flawfinder linter for c files
call ale#Set('c_flawfinder_executable', 'flawfinder')
call ale#Set('c_flawfinder_options', '')
call ale#Set('c_flawfinder_minlevel', 1)
call ale#Set('c_flawfinder_error_severity', 6)
function! ale_linters#c#flawfinder#GetCommand(buffer) abort
" Set the minimum vulnerability level for flawfinder to bother with
let l:minlevel = ' --minlevel=' . ale#Var(a:buffer, 'c_flawfinder_minlevel')
return '%e -CDQS'
\ . ale#Pad(ale#Var(a:buffer, 'c_flawfinder_options'))
\ . l:minlevel
\ . ' %t'
endfunction
call ale#linter#Define('c', {
\ 'name': 'flawfinder',
\ 'output_stream': 'stdout',
\ 'executable': {b -> ale#Var(b, 'c_flawfinder_executable')},
\ 'command': function('ale_linters#c#flawfinder#GetCommand'),
\ 'callback': 'ale#handlers#flawfinder#HandleFlawfinderFormat',
\})

View File

@@ -1,23 +1,24 @@
" Author: w0rp <devw0rp@gmail.com>
" Description: gcc linter for c files
if exists('g:loaded_ale_linters_c_gcc')
finish
endif
call ale#Set('c_gcc_executable', 'gcc')
call ale#Set('c_gcc_options', '-std=c11 -Wall')
let g:loaded_ale_linters_c_gcc = 1
function! ale_linters#c#gcc#GetCommand(buffer, output) abort
let l:cflags = ale#c#GetCFlags(a:buffer, a:output)
" Set this option to change the GCC options for warnings for C.
if !exists('g:ale_c_gcc_options')
let g:ale_c_gcc_options = '-Wall'
endif
" -iquote with the directory the file is in makes #include work for
" headers in the same directory.
return '%e -S -x c -fsyntax-only'
\ . ' -iquote ' . ale#Escape(fnamemodify(bufname(a:buffer), ':p:h'))
\ . ale#Pad(l:cflags)
\ . ale#Pad(ale#Var(a:buffer, 'c_gcc_options')) . ' -'
endfunction
call ale#linter#Define('c', {
\ 'name': 'gcc',
\ 'output_stream': 'stderr',
\ 'executable': 'gcc',
\ 'command': 'gcc -S -x c -fsyntax-only '
\ . g:ale_c_gcc_options
\ . ' -',
\ 'callback': 'ale#handlers#HandleGCCFormat',
\ 'executable': {b -> ale#Var(b, 'c_gcc_executable')},
\ 'command': {b -> ale#c#RunMakeCommand(b, function('ale_linters#c#gcc#GetCommand'))},
\ 'callback': 'ale#handlers#gcc#HandleGCCFormatWithIncludes',
\})

View File

@@ -0,0 +1,41 @@
" Author: Edward Larkey <edwlarkey@mac.com>
" Author: Jose Junior <jose.junior@gmail.com>
" Author: w0rp <devw0rp@gmail.com>
" Description: This file adds the foodcritic linter for Chef files.
call ale#Set('chef_foodcritic_executable', 'foodcritic')
call ale#Set('chef_foodcritic_options', '')
function! ale_linters#chef#foodcritic#GetCommand(buffer) abort
let l:options = ale#Var(a:buffer, 'chef_foodcritic_options')
return '%e' . ale#Pad(escape(l:options, '~')) . ' %s'
endfunction
function! ale_linters#chef#foodcritic#Handle(buffer, lines) abort
" Matches patterns line the following:
"
" FC002: Avoid string interpolation where not required: httpd.rb:13
let l:pattern = '\v([^:]+): (.+): ([a-zA-Z]?:?[^:]+):(\d+)$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:output, {
\ 'code': l:match[1],
\ 'text': l:match[2],
\ 'filename': l:match[3],
\ 'lnum': l:match[4] + 0,
\ 'type': 'W',
\})
endfor
return l:output
endfunction
call ale#linter#Define('chef', {
\ 'name': 'foodcritic',
\ 'executable': {b -> ale#Var(b, 'chef_foodcritic_executable')},
\ 'command': function('ale_linters#chef#foodcritic#GetCommand'),
\ 'callback': 'ale_linters#chef#foodcritic#Handle',
\ 'lint_file': 1,
\})

View File

@@ -0,0 +1,34 @@
" Author: Nic West <nicwest@mailbox.org>
" Description: linter for clojure using joker https://github.com/candid82/joker
function! ale_linters#clojure#joker#HandleJokerFormat(buffer, lines) abort
" output format
" <filename>:<line>:<column>: <issue type>: <message>
let l:pattern = '\v^[a-zA-Z]?:?[^:]+:(\d+):(\d+):? ((Read error|Parse error|Parse warning|Exception): ?(.+))$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
let l:type = 'E'
if l:match[4] is? 'Parse warning'
let l:type = 'W'
endif
call add(l:output, {
\ 'lnum': l:match[1] + 0,
\ 'col': l:match[2] + 0,
\ 'text': l:match[3],
\ 'type': l:type,
\})
endfor
return l:output
endfunction
call ale#linter#Define('clojure', {
\ 'name': 'joker',
\ 'output_stream': 'stderr',
\ 'executable': 'joker',
\ 'command': 'joker --working-dir %s --lint %t',
\ 'callback': 'ale_linters#clojure#joker#HandleJokerFormat',
\})

View File

@@ -0,0 +1,35 @@
" Author: Yasuhiro Kiyota <yasuhiroki.duck@gmail.com>
" Description: Support cfn-python-lint for AWS Cloudformation template file
function! ale_linters#cloudformation#cfn_python_lint#Handle(buffer, lines) abort
" Matches patterns line the following:
"
" sample.template.yaml:96:7:96:15:E3012:Property Resources/Sample/Properties/FromPort should be of type Integer
let l:pattern = '\v^(.*):(\d+):(\d+):(\d+):(\d+):([[:alnum:]]+):(.*)$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
let l:code = l:match[6]
if ale#path#IsBufferPath(a:buffer, l:match[1])
call add(l:output, {
\ 'lnum': l:match[2],
\ 'col': l:match[3],
\ 'end_lnum': l:match[4],
\ 'end_col': l:match[5],
\ 'code': l:code,
\ 'type': l:code[:0] is# 'E' ? 'E' : 'W',
\ 'text': l:match[7]
\})
endif
endfor
return l:output
endfunction
call ale#linter#Define('cloudformation', {
\ 'name': 'cloudformation',
\ 'executable': 'cfn-lint',
\ 'command': 'cfn-lint --template %t --format parseable',
\ 'callback': 'ale_linters#cloudformation#cfn_python_lint#Handle',
\})

View File

@@ -0,0 +1,24 @@
" Author: Kenneth Benzie <k.benzie83@gmail.com>
" Description: cmakelint for cmake files
let g:ale_cmake_cmakelint_executable =
\ get(g:, 'ale_cmake_cmakelint_executable', 'cmakelint')
let g:ale_cmake_cmakelint_options =
\ get(g:, 'ale_cmake_cmakelint_options', '')
function! ale_linters#cmake#cmakelint#Executable(buffer) abort
return ale#Var(a:buffer, 'cmake_cmakelint_executable')
endfunction
function! ale_linters#cmake#cmakelint#Command(buffer) abort
return ale_linters#cmake#cmakelint#Executable(a:buffer)
\ . ' ' . ale#Var(a:buffer, 'cmake_cmakelint_options') . ' %t'
endfunction
call ale#linter#Define('cmake', {
\ 'name': 'cmakelint',
\ 'executable': function('ale_linters#cmake#cmakelint#Executable'),
\ 'command': function('ale_linters#cmake#cmakelint#Command'),
\ 'callback': 'ale#handlers#unix#HandleAsWarning',
\})

View File

@@ -1,17 +1,23 @@
" Author: KabbAmine - https://github.com/KabbAmine
" Description: Coffee for checking coffee files
if exists('g:loaded_ale_linters_coffee_coffee')
finish
endif
function! ale_linters#coffee#coffee#GetExecutable(buffer) abort
return ale#path#ResolveLocalPath(
\ a:buffer,
\ 'node_modules/.bin/coffee',
\ 'coffee'
\)
endfunction
let g:loaded_ale_linters_coffee_coffee = 1
function! ale_linters#coffee#coffee#GetCommand(buffer) abort
return ale_linters#coffee#coffee#GetExecutable(a:buffer)
\ . ' -cp -s'
endfunction
call ale#linter#Define('coffee', {
\ 'name': 'coffee',
\ 'executable': 'coffee',
\ 'command': 'coffee -cp -s',
\ 'executable': function('ale_linters#coffee#coffee#GetExecutable'),
\ 'command': function('ale_linters#coffee#coffee#GetCommand'),
\ 'output_stream': 'stderr',
\ 'callback': 'ale#handlers#HandleGCCFormat',
\ 'callback': 'ale#handlers#gcc#HandleGCCFormat',
\})

View File

@@ -1,43 +1,34 @@
" Author: Prashanth Chandra https://github.com/prashcr
" Description: coffeelint linter for coffeescript files
if exists('g:loaded_ale_linters_coffee_coffeelint')
finish
endif
function! ale_linters#coffee#coffeelint#GetExecutable(buffer) abort
return ale#path#ResolveLocalPath(
\ a:buffer,
\ 'node_modules/.bin/coffeelint',
\ 'coffeelint'
\)
endfunction
let g:loaded_ale_linters_coffee_coffeelint = 1
function! ale_linters#coffee#coffeelint#GetCommand(buffer) abort
return ale_linters#coffee#coffeelint#GetExecutable(a:buffer)
\ . ' --stdin --reporter csv'
endfunction
function! ale_linters#coffee#coffeelint#Handle(buffer, lines)
function! ale_linters#coffee#coffeelint#Handle(buffer, lines) abort
" Matches patterns like the following:
"
" path,lineNumber,lineNumberEnd,level,message
" stdin,14,,error,Throwing strings is forbidden
"
" Note that we currently ignore lineNumberEnd for multiline errors
let l:pattern = 'stdin,\(\d\+\),\(\d*\),\(.\+\),\(.\+\)'
let l:pattern = 'stdin,\(\d\+\),\(\d*\),\(.\{-1,}\),\(.\+\)'
let l:output = []
for l:line in a:lines
let l:match = matchlist(l:line, l:pattern)
if len(l:match) == 0
continue
endif
let l:line = l:match[1] + 0
let l:column = 1
let l:type = l:match[3] ==# 'error' ? 'E' : 'W'
let l:text = l:match[4]
" vcol is needed to indicate that the column is a character
for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:output, {
\ 'bufnr': a:buffer,
\ 'lnum': l:line,
\ 'vcol': 0,
\ 'col': l:column,
\ 'text': l:text,
\ 'type': l:type,
\ 'nr': -1,
\ 'lnum': str2nr(l:match[1]),
\ 'type': l:match[3] is# 'error' ? 'E' : 'W',
\ 'text': l:match[4],
\})
endfor
@@ -46,7 +37,7 @@ endfunction
call ale#linter#Define('coffee', {
\ 'name': 'coffeelint',
\ 'executable': 'coffeelint',
\ 'command': 'coffeelint --stdin --reporter csv',
\ 'executable': function('ale_linters#coffee#coffeelint#GetExecutable'),
\ 'command': function('ale_linters#coffee#coffeelint#GetCommand'),
\ 'callback': 'ale_linters#coffee#coffeelint#Handle',
\})

14
ale_linters/cpp/ccls.vim Normal file
View File

@@ -0,0 +1,14 @@
" Author: Ye Jingchen <ye.jingchen@gmail.com>, Ben Falconer <ben@falconers.me.uk>, jtalowell <jtalowell@protonmail.com>
" Description: A language server for C++
call ale#Set('cpp_ccls_executable', 'ccls')
call ale#Set('cpp_ccls_init_options', {})
call ale#linter#Define('cpp', {
\ 'name': 'ccls',
\ 'lsp': 'stdio',
\ 'executable': {b -> ale#Var(b, 'cpp_ccls_executable')},
\ 'command': '%e',
\ 'project_root': function('ale#handlers#ccls#GetProjectRoot'),
\ 'initialization_options': {b -> ale#Var(b, 'cpp_ccls_init_options')},
\})

24
ale_linters/cpp/clang.vim Normal file
View File

@@ -0,0 +1,24 @@
" Author: Tomota Nakamura <https://github.com/tomotanakamura>
" Description: clang linter for cpp files
call ale#Set('cpp_clang_executable', 'clang++')
call ale#Set('cpp_clang_options', '-std=c++14 -Wall')
function! ale_linters#cpp#clang#GetCommand(buffer, output) abort
let l:cflags = ale#c#GetCFlags(a:buffer, a:output)
" -iquote with the directory the file is in makes #include work for
" headers in the same directory.
return '%e -S -x c++ -fsyntax-only'
\ . ' -iquote ' . ale#Escape(fnamemodify(bufname(a:buffer), ':p:h'))
\ . ale#Pad(l:cflags)
\ . ale#Pad(ale#Var(a:buffer, 'cpp_clang_options')) . ' -'
endfunction
call ale#linter#Define('cpp', {
\ 'name': 'clang',
\ 'output_stream': 'stderr',
\ 'executable': {b -> ale#Var(b, 'cpp_clang_executable')},
\ 'command': {b -> ale#c#RunMakeCommand(b, function('ale_linters#cpp#clang#GetCommand'))},
\ 'callback': 'ale#handlers#gcc#HandleGCCFormatWithIncludes',
\})

View File

@@ -0,0 +1,34 @@
" Author: gagbo <gagbobada@gmail.com>
" Description: clang-check linter for cpp files
call ale#Set('cpp_clangcheck_executable', 'clang-check')
call ale#Set('cpp_clangcheck_options', '')
call ale#Set('c_build_dir', '')
function! ale_linters#cpp#clangcheck#GetCommand(buffer) abort
let l:user_options = ale#Var(a:buffer, 'cpp_clangcheck_options')
" Try to find compilation database to link automatically
let l:build_dir = ale#Var(a:buffer, 'c_build_dir')
if empty(l:build_dir)
let l:build_dir = ale#path#Dirname(ale#c#FindCompileCommands(a:buffer))
endif
" The extra arguments in the command are used to prevent .plist files from
" being generated. These are only added if no build directory can be
" detected.
return '%e -analyze %s'
\ . (empty(l:build_dir) ? ' -extra-arg -Xclang -extra-arg -analyzer-output=text' : '')
\ . ale#Pad(l:user_options)
\ . (!empty(l:build_dir) ? ' -p ' . ale#Escape(l:build_dir) : '')
endfunction
call ale#linter#Define('cpp', {
\ 'name': 'clangcheck',
\ 'output_stream': 'stderr',
\ 'executable': {b -> ale#Var(b, 'cpp_clangcheck_executable')},
\ 'command': function('ale_linters#cpp#clangcheck#GetCommand'),
\ 'callback': 'ale#handlers#gcc#HandleGCCFormat',
\ 'lint_file': 1,
\})

View File

@@ -0,0 +1,23 @@
" Author: Andrey Melentyev <andrey.melentyev@protonmail.com>
" Description: Clangd language server
call ale#Set('cpp_clangd_executable', 'clangd')
call ale#Set('cpp_clangd_options', '')
function! ale_linters#cpp#clangd#GetProjectRoot(buffer) abort
let l:project_root = ale#path#FindNearestFile(a:buffer, 'compile_commands.json')
return !empty(l:project_root) ? fnamemodify(l:project_root, ':h') : ''
endfunction
function! ale_linters#cpp#clangd#GetCommand(buffer) abort
return '%e' . ale#Pad(ale#Var(a:buffer, 'cpp_clangd_options'))
endfunction
call ale#linter#Define('cpp', {
\ 'name': 'clangd',
\ 'lsp': 'stdio',
\ 'executable': {b -> ale#Var(b, 'cpp_clangd_executable')},
\ 'command': function('ale_linters#cpp#clangd#GetCommand'),
\ 'project_root': function('ale_linters#cpp#clangd#GetProjectRoot'),
\})

View File

@@ -0,0 +1,36 @@
" Author: vdeurzen <tim@kompiler.org>, w0rp <devw0rp@gmail.com>,
" gagbo <gagbobada@gmail.com>
" Description: clang-tidy linter for cpp files
call ale#Set('cpp_clangtidy_executable', 'clang-tidy')
" Set this option to check the checks clang-tidy will apply.
call ale#Set('cpp_clangtidy_checks', [])
" Set this option to manually set some options for clang-tidy.
" This will disable compile_commands.json detection.
call ale#Set('cpp_clangtidy_options', '')
call ale#Set('c_build_dir', '')
function! ale_linters#cpp#clangtidy#GetCommand(buffer) abort
let l:checks = join(ale#Var(a:buffer, 'cpp_clangtidy_checks'), ',')
let l:build_dir = ale#c#GetBuildDirectory(a:buffer)
" Get the extra options if we couldn't find a build directory.
let l:options = empty(l:build_dir)
\ ? ale#Var(a:buffer, 'cpp_clangtidy_options')
\ : ''
return '%e'
\ . (!empty(l:checks) ? ' -checks=' . ale#Escape(l:checks) : '')
\ . ' %s'
\ . (!empty(l:build_dir) ? ' -p ' . ale#Escape(l:build_dir) : '')
\ . (!empty(l:options) ? ' -- ' . l:options : '')
endfunction
call ale#linter#Define('cpp', {
\ 'name': 'clangtidy',
\ 'output_stream': 'stdout',
\ 'executable': {b -> ale#Var(b, 'cpp_clangtidy_executable')},
\ 'command': function('ale_linters#cpp#clangtidy#GetCommand'),
\ 'callback': 'ale#handlers#gcc#HandleGCCFormat',
\ 'lint_file': 1,
\})

32
ale_linters/cpp/clazy.vim Normal file
View File

@@ -0,0 +1,32 @@
" Description: clazy linter for cpp files (clang-based and Qt-oriented)
call ale#Set('cpp_clazy_executable', 'clazy-standalone')
" Set this option to check the checks clazy will apply.
call ale#Set('cpp_clazy_checks', ['level1'])
" Set this option to manually set some options for clazy.
" This will disable compile_commands.json detection.
call ale#Set('cpp_clazy_options', '')
call ale#Set('c_build_dir', '')
function! ale_linters#cpp#clazy#GetCommand(buffer) abort
let l:checks = join(ale#Var(a:buffer, 'cpp_clazy_checks'), ',')
let l:build_dir = ale#c#GetBuildDirectory(a:buffer)
" Get the extra options if we couldn't find a build directory.
let l:options = ale#Var(a:buffer, 'cpp_clazy_options')
return '%e'
\ . (!empty(l:checks) ? ' -checks=' . ale#Escape(l:checks) : '')
\ . (!empty(l:build_dir) ? ' -p ' . ale#Escape(l:build_dir) : '')
\ . (!empty(l:options) ? ' ' . l:options : '')
\ . ' %s'
endfunction
call ale#linter#Define('cpp', {
\ 'name': 'clazy',
\ 'output_stream': 'stderr',
\ 'executable': {b -> ale#Var(b, 'cpp_clazy_executable')},
\ 'command': function('ale_linters#cpp#clazy#GetCommand'),
\ 'callback': 'ale#handlers#gcc#HandleGCCFormat',
\ 'lint_file': 1,
\})

View File

@@ -0,0 +1,34 @@
" Author: Bart Libert <bart.libert@gmail.com>
" Description: cppcheck linter for cpp files
call ale#Set('cpp_cppcheck_executable', 'cppcheck')
call ale#Set('cpp_cppcheck_options', '--enable=style')
function! ale_linters#cpp#cppcheck#GetCommand(buffer) abort
" Search upwards from the file for compile_commands.json.
"
" If we find it, we'll `cd` to where the compile_commands.json file is,
" then use the file to set up import paths, etc.
let l:compile_commmands_path = ale#path#FindNearestFile(a:buffer, 'compile_commands.json')
let l:cd_command = !empty(l:compile_commmands_path)
\ ? ale#path#CdString(fnamemodify(l:compile_commmands_path, ':h'))
\ : ''
let l:compile_commands_option = !empty(l:compile_commmands_path)
\ ? '--project=compile_commands.json '
\ : ''
return l:cd_command
\ . '%e -q --language=c++ '
\ . l:compile_commands_option
\ . ale#Var(a:buffer, 'cpp_cppcheck_options')
\ . ' %t'
endfunction
call ale#linter#Define('cpp', {
\ 'name': 'cppcheck',
\ 'output_stream': 'both',
\ 'executable': {b -> ale#Var(b, 'cpp_cppcheck_executable')},
\ 'command': function('ale_linters#cpp#cppcheck#GetCommand'),
\ 'callback': 'ale#handlers#cppcheck#HandleCppCheckFormat',
\})

View File

@@ -0,0 +1,20 @@
" Author: Dawid Kurek https://github.com/dawikur
" Description: cpplint for cpp files
call ale#Set('cpp_cpplint_executable', 'cpplint')
call ale#Set('cpp_cpplint_options', '')
function! ale_linters#cpp#cpplint#GetCommand(buffer) abort
let l:options = ale#Var(a:buffer, 'cpp_cpplint_options')
return '%e' . ale#Pad(l:options) . ' %s'
endfunction
call ale#linter#Define('cpp', {
\ 'name': 'cpplint',
\ 'output_stream': 'stderr',
\ 'executable': {b -> ale#Var(b, 'cpp_cpplint_executable')},
\ 'command': function('ale_linters#cpp#cpplint#GetCommand'),
\ 'callback': 'ale#handlers#cpplint#HandleCppLintFormat',
\ 'lint_file': 1,
\})

View File

@@ -0,0 +1,28 @@
" Author: Ben Falconer <ben@falconers.me.uk>
" Description: A language server for C++
call ale#Set('cpp_cquery_executable', 'cquery')
call ale#Set('cpp_cquery_cache_directory', expand('~/.cache/cquery'))
function! ale_linters#cpp#cquery#GetProjectRoot(buffer) abort
let l:project_root = ale#path#FindNearestFile(a:buffer, 'compile_commands.json')
if empty(l:project_root)
let l:project_root = ale#path#FindNearestFile(a:buffer, '.cquery')
endif
return !empty(l:project_root) ? fnamemodify(l:project_root, ':h') : ''
endfunction
function! ale_linters#cpp#cquery#GetInitializationOptions(buffer) abort
return {'cacheDirectory': ale#Var(a:buffer, 'cpp_cquery_cache_directory')}
endfunction
call ale#linter#Define('cpp', {
\ 'name': 'cquery',
\ 'lsp': 'stdio',
\ 'executable': {b -> ale#Var(b, 'cpp_cquery_executable')},
\ 'command': '%e',
\ 'project_root': function('ale_linters#cpp#cquery#GetProjectRoot'),
\ 'initialization_options': function('ale_linters#cpp#cquery#GetInitializationOptions'),
\})

View File

@@ -0,0 +1,25 @@
" Author: Christian Gibbons <cgibbons@gmu.edu>
" Description: flawfinder linter for c++ files
call ale#Set('cpp_flawfinder_executable', 'flawfinder')
call ale#Set('cpp_flawfinder_options', '')
call ale#Set('cpp_flawfinder_minlevel', 1)
call ale#Set('c_flawfinder_error_severity', 6)
function! ale_linters#cpp#flawfinder#GetCommand(buffer) abort
" Set the minimum vulnerability level for flawfinder to bother with
let l:minlevel = ' --minlevel=' . ale#Var(a:buffer, 'cpp_flawfinder_minlevel')
return '%e -CDQS'
\ . ale#Var(a:buffer, 'cpp_flawfinder_options')
\ . l:minlevel
\ . ' %t'
endfunction
call ale#linter#Define('cpp', {
\ 'name': 'flawfinder',
\ 'output_stream': 'stdout',
\ 'executable': {b -> ale#Var(b, 'cpp_flawfinder_executable')},
\ 'command': function('ale_linters#cpp#flawfinder#GetCommand'),
\ 'callback': 'ale#handlers#flawfinder#HandleFlawfinderFormat',
\})

View File

@@ -1,23 +1,25 @@
" Author: geam <mdelage@student.42.fr>
" Description: gcc linter for cpp files
"
call ale#Set('cpp_gcc_executable', 'gcc')
call ale#Set('cpp_gcc_options', '-std=c++14 -Wall')
if exists('g:loaded_ale_linters_cpp_gcc')
finish
endif
function! ale_linters#cpp#gcc#GetCommand(buffer, output) abort
let l:cflags = ale#c#GetCFlags(a:buffer, a:output)
let g:loaded_ale_linters_cpp_gcc = 1
" Set this option to change the GCC options for warnings for C.
if !exists('g:ale_cpp_gcc_options')
let g:ale_cpp_gcc_options = '-Wall'
endif
" -iquote with the directory the file is in makes #include work for
" headers in the same directory.
return '%e -S -x c++ -fsyntax-only'
\ . ' -iquote ' . ale#Escape(fnamemodify(bufname(a:buffer), ':p:h'))
\ . ale#Pad(l:cflags)
\ . ale#Pad(ale#Var(a:buffer, 'cpp_gcc_options')) . ' -'
endfunction
call ale#linter#Define('cpp', {
\ 'name': 'gcc',
\ 'aliases': ['g++'],
\ 'output_stream': 'stderr',
\ 'executable': 'gcc',
\ 'command': 'gcc -S -x c++ -fsyntax-only '
\ . g:ale_cpp_gcc_options
\ . ' -',
\ 'callback': 'ale#handlers#HandleGCCFormat',
\ 'executable': {b -> ale#Var(b, 'cpp_gcc_executable')},
\ 'command': {b -> ale#c#RunMakeCommand(b, function('ale_linters#cpp#gcc#GetCommand'))},
\ 'callback': 'ale#handlers#gcc#HandleGCCFormatWithIncludes',
\})

View File

@@ -0,0 +1,57 @@
" Author: Harrison Bachrach - https://github.com/HarrisonB
" Description: Ameba, a linter for crystal files
call ale#Set('crystal_ameba_executable', 'bin/ameba')
function! ale_linters#crystal#ameba#GetCommand(buffer) abort
let l:executable = ale#Var(a:buffer, 'crystal_ameba_executable')
return ale#Escape(l:executable)
\ . ' --format json '
\ . ale#Escape(expand('#' . a:buffer . ':p'))
endfunction
" Handle output from ameba
function! ale_linters#crystal#ameba#HandleAmebaOutput(buffer, lines) abort
if len(a:lines) == 0
return []
endif
let l:errors = ale#util#FuzzyJSONDecode(a:lines[0], {})
if !has_key(l:errors, 'summary')
\|| l:errors['summary']['issues_count'] == 0
\|| empty(l:errors['sources'])
return []
endif
let l:output = []
for l:error in l:errors['sources'][0]['issues']
let l:start_col = str2nr(l:error['location']['column'])
let l:end_col = str2nr(l:error['end_location']['column'])
if !l:end_col
let l:end_col = l:start_col + 1
endif
call add(l:output, {
\ 'lnum': str2nr(l:error['location']['line']),
\ 'col': l:start_col,
\ 'end_col': l:end_col,
\ 'code': l:error['rule_name'],
\ 'text': l:error['message'],
\ 'type': 'W',
\})
endfor
return l:output
endfunction
call ale#linter#Define('crystal', {
\ 'name': 'ameba',
\ 'executable': {b -> ale#Var(b, 'crystal_ameba_executable')},
\ 'command': function('ale_linters#crystal#ameba#GetCommand'),
\ 'callback': 'ale_linters#crystal#ameba#HandleAmebaOutput',
\ 'lint_file': 1,
\})

View File

@@ -0,0 +1,31 @@
" Author: Jordan Andree <https://github.com/jordanandree>, David Alexander <opensource@thelonelyghost.com>
" Description: This file adds support for checking Crystal with crystal build
function! ale_linters#crystal#crystal#Handle(buffer, lines) abort
let l:output = []
for l:error in ale#util#FuzzyJSONDecode(a:lines, [])
call add(l:output, {
\ 'lnum': l:error.line + 0,
\ 'col': l:error.column + 0,
\ 'text': l:error.message,
\})
endfor
return l:output
endfunction
function! ale_linters#crystal#crystal#GetCommand(buffer) abort
return 'crystal build -f json --no-codegen --no-color -o '
\ . ale#Escape(g:ale#util#nul_file)
\ . ' %s'
endfunction
call ale#linter#Define('crystal', {
\ 'name': 'crystal',
\ 'executable': 'crystal',
\ 'output_stream': 'both',
\ 'lint_file': 1,
\ 'command': function('ale_linters#crystal#crystal#GetCommand'),
\ 'callback': 'ale_linters#crystal#crystal#Handle',
\})

37
ale_linters/cs/mcs.vim Normal file
View File

@@ -0,0 +1,37 @@
let g:ale_cs_mcs_options = get(g:, 'ale_cs_mcs_options', '')
function! ale_linters#cs#mcs#GetCommand(buffer) abort
let l:options = ale#Var(a:buffer, 'cs_mcs_options')
return 'mcs -unsafe --parse'
\ . (!empty(l:options) ? ' ' . l:options : '')
\ . ' %t'
endfunction
function! ale_linters#cs#mcs#Handle(buffer, lines) abort
" Look for lines like the following.
"
" Tests.cs(12,29): error CSXXXX: ; expected
let l:pattern = '^\v(.+\.cs)\((\d+),(\d+)\)\: ([^ ]+) ([^ ]+): (.+)$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:output, {
\ 'lnum': l:match[2] + 0,
\ 'col': l:match[3] + 0,
\ 'type': l:match[4] is# 'error' ? 'E' : 'W',
\ 'code': l:match[5],
\ 'text': l:match[6],
\})
endfor
return l:output
endfunction
call ale#linter#Define('cs',{
\ 'name': 'mcs',
\ 'output_stream': 'stderr',
\ 'executable': 'mcs',
\ 'command': function('ale_linters#cs#mcs#GetCommand'),
\ 'callback': 'ale_linters#cs#mcs#Handle',
\})

81
ale_linters/cs/mcsc.vim Normal file
View File

@@ -0,0 +1,81 @@
call ale#Set('cs_mcsc_options', '')
call ale#Set('cs_mcsc_source', '')
call ale#Set('cs_mcsc_assembly_path', [])
call ale#Set('cs_mcsc_assemblies', [])
function! s:GetWorkingDirectory(buffer) abort
let l:working_directory = ale#Var(a:buffer, 'cs_mcsc_source')
if !empty(l:working_directory)
return l:working_directory
endif
return expand('#' . a:buffer . ':p:h')
endfunction
function! ale_linters#cs#mcsc#GetCommand(buffer) abort
" Pass assembly paths via the -lib: parameter.
let l:path_list = ale#Var(a:buffer, 'cs_mcsc_assembly_path')
let l:lib_option = !empty(l:path_list)
\ ? '-lib:' . join(map(copy(l:path_list), 'ale#Escape(v:val)'), ',')
\ : ''
" Pass paths to DLL files via the -r: parameter.
let l:assembly_list = ale#Var(a:buffer, 'cs_mcsc_assemblies')
let l:r_option = !empty(l:assembly_list)
\ ? '-r:' . join(map(copy(l:assembly_list), 'ale#Escape(v:val)'), ',')
\ : ''
" register temporary module target file with ale
" register temporary module target file with ALE.
let l:out = ale#command#CreateFile(a:buffer)
" The code is compiled as a module and the output is redirected to a
" temporary file.
return ale#path#CdString(s:GetWorkingDirectory(a:buffer))
\ . 'mcs -unsafe'
\ . ale#Pad(ale#Var(a:buffer, 'cs_mcsc_options'))
\ . ale#Pad(l:lib_option)
\ . ale#Pad(l:r_option)
\ . ' -out:' . l:out
\ . ' -t:module'
\ . ' -recurse:' . ale#Escape('*.cs')
endfunction
function! ale_linters#cs#mcsc#Handle(buffer, lines) abort
" Look for lines like the following.
"
" Tests.cs(12,29): error CSXXXX: ; expected
"
" NOTE: pattern also captures file name as linter compiles all
" files within the source tree rooted at the specified source
" path and not just the file loaded in the buffer
let l:pattern = '^\v(.+\.cs)\((\d+),(\d+)\)\: ([^ ]+) ([^ ]+): (.+)$'
let l:output = []
let l:dir = s:GetWorkingDirectory(a:buffer)
for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:output, {
\ 'filename': ale#path#GetAbsPath(l:dir, l:match[1]),
\ 'lnum': l:match[2] + 0,
\ 'col': l:match[3] + 0,
\ 'type': l:match[4] is# 'error' ? 'E' : 'W',
\ 'code': l:match[5],
\ 'text': l:match[6],
\})
endfor
return l:output
endfunction
call ale#linter#Define('cs',{
\ 'name': 'mcsc',
\ 'output_stream': 'stderr',
\ 'executable': 'mcs',
\ 'command': function('ale_linters#cs#mcsc#GetCommand'),
\ 'callback': 'ale_linters#cs#mcsc#Handle',
\ 'lint_file': 1
\})

View File

@@ -1,15 +1,18 @@
" Author: w0rp <devw0rp@gmail.com>
" Description: This file adds support for checking CSS code with csslint.
if exists('g:loaded_ale_linters_css_csslint')
finish
endif
function! ale_linters#css#csslint#GetCommand(buffer) abort
let l:csslintrc = ale#path#FindNearestFile(a:buffer, '.csslintrc')
let l:config_option = !empty(l:csslintrc)
\ ? '--config=' . ale#Escape(l:csslintrc)
\ : ''
let g:loaded_ale_linters_css_csslint = 1
return 'csslint --format=compact ' . l:config_option . ' %t'
endfunction
call ale#linter#Define('css', {
\ 'name': 'csslint',
\ 'executable': 'csslint',
\ 'command': g:ale#util#stdin_wrapper . ' .css csslint --format=compact',
\ 'callback': 'ale#handlers#HandleCSSLintFormat',
\ 'command': function('ale_linters#css#csslint#GetCommand'),
\ 'callback': 'ale#handlers#css#HandleCSSLintFormat',
\})

View File

@@ -0,0 +1,19 @@
" Author: diartyz <diartyz@gmail.com>
call ale#Set('css_stylelint_executable', 'stylelint')
call ale#Set('css_stylelint_options', '')
call ale#Set('css_stylelint_use_global', get(g:, 'ale_use_global_executables', 0))
function! ale_linters#css#stylelint#GetCommand(buffer) abort
return '%e ' . ale#Pad(ale#Var(a:buffer, 'css_stylelint_options'))
\ . ' --stdin-filename %s'
endfunction
call ale#linter#Define('css', {
\ 'name': 'stylelint',
\ 'executable': {b -> ale#node#FindExecutable(b, 'css_stylelint', [
\ 'node_modules/.bin/stylelint',
\ ])},
\ 'command': function('ale_linters#css#stylelint#GetCommand'),
\ 'callback': 'ale#handlers#css#HandleStyleLintFormat',
\})

View File

@@ -0,0 +1,46 @@
" Author: Eddie Lebow https://github.com/elebow
" Description: Cucumber, a BDD test tool
function! ale_linters#cucumber#cucumber#GetCommand(buffer) abort
let l:features_dir = ale#path#FindNearestDirectory(a:buffer, 'features')
if !empty(l:features_dir)
let l:features_arg = '-r ' . ale#Escape(l:features_dir)
else
let l:features_arg = ''
endif
return 'cucumber --dry-run --quiet --strict --format=json '
\ . l:features_arg . ' %t'
endfunction
function! ale_linters#cucumber#cucumber#Handle(buffer, lines) abort
try
let l:json = ale#util#FuzzyJSONDecode(a:lines, {})[0]
catch
return []
endtry
let l:output = []
for l:element in get(l:json, 'elements', [])
for l:step in l:element['steps']
if l:step['result']['status'] is# 'undefined'
call add(l:output, {
\ 'lnum': l:step['line'],
\ 'code': 'E',
\ 'text': 'Undefined step'
\})
endif
endfor
endfor
return l:output
endfunction
call ale#linter#Define('cucumber', {
\ 'name': 'cucumber',
\ 'executable': 'cucumber',
\ 'command': function('ale_linters#cucumber#cucumber#GetCommand'),
\ 'callback': 'ale_linters#cucumber#cucumber#Handle'
\})

49
ale_linters/cuda/nvcc.vim Normal file
View File

@@ -0,0 +1,49 @@
" Author: blahgeek <i@blahgeek.com>
" Description: NVCC linter for cuda files
call ale#Set('cuda_nvcc_executable', 'nvcc')
call ale#Set('cuda_nvcc_options', '-std=c++11')
function! ale_linters#cuda#nvcc#GetCommand(buffer) abort
" Unused: use ale#util#nul_file
" let l:output_file = ale#util#Tempname() . '.ii'
" call ale#command#ManageFile(a:buffer, l:output_file)
return '%e -cuda'
\ . ale#Pad(ale#c#IncludeOptions(ale#c#FindLocalHeaderPaths(a:buffer)))
\ . ale#Pad(ale#Var(a:buffer, 'cuda_nvcc_options'))
\ . ' %s -o ' . g:ale#util#nul_file
endfunction
function! ale_linters#cuda#nvcc#HandleNVCCFormat(buffer, lines) abort
" Look for lines like the following.
"
" test.cu(8): error: argument of type "void *" is incompatible with parameter of type "int *"
let l:pattern = '\v^([^:\(\)]+):?\(?(\d+)\)?:(\d+)?:?\s*\w*\s*(error|warning): (.+)$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
let l:item = {
\ 'lnum': str2nr(l:match[2]),
\ 'type': l:match[4] =~# 'error' ? 'E' : 'W',
\ 'text': l:match[5],
\ 'filename': fnamemodify(l:match[1], ':p'),
\}
if !empty(l:match[3])
let l:item.col = str2nr(l:match[3])
endif
call add(l:output, l:item)
endfor
return l:output
endfunction
call ale#linter#Define('cuda', {
\ 'name': 'nvcc',
\ 'output_stream': 'stderr',
\ 'executable': {b -> ale#Var(b, 'cuda_nvcc_executable')},
\ 'command': function('ale_linters#cuda#nvcc#GetCommand'),
\ 'callback': 'ale_linters#cuda#nvcc#HandleNVCCFormat',
\ 'lint_file': 1,
\})

View File

@@ -0,0 +1,26 @@
" Author: Francisco Lopes <francisco@oblita.com>
" Description: Linting for Neo4j's Cypher
function! ale_linters#cypher#cypher_lint#Handle(buffer, lines) abort
let l:pattern = '\v^([a-zA-Z]?:?[^:]+):(\d+):(\d+): (.*)$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:output, {
\ 'lnum': l:match[2] + 0,
\ 'col': l:match[3] + 0,
\ 'text': l:match[4],
\ 'type': 'E',
\})
endfor
return l:output
endfunction
call ale#linter#Define('cypher', {
\ 'name': 'cypher_lint',
\ 'executable': 'cypher-lint',
\ 'command': 'cypher-lint',
\ 'output_stream': 'stderr',
\ 'callback': 'ale_linters#cypher#cypher_lint#Handle',
\})

22
ale_linters/d/dls.vim Normal file
View File

@@ -0,0 +1,22 @@
" Author: aurieh <me@aurieh.me>
" Description: A Language Server implementation for D
call ale#Set('d_dls_executable', 'dls')
function! ale_linters#d#dls#GetExecutable(buffer) abort
return ale#Var(a:buffer, 'd_dls_executable')
endfunction
function! ale_linters#d#dls#FindProjectRoot(buffer) abort
" Note: this will return . if dub config is empty
" dls can run outside DUB projects just fine
return fnamemodify(ale#d#FindDUBConfig(a:buffer), ':h')
endfunction
call ale#linter#Define('d', {
\ 'name': 'dls',
\ 'lsp': 'stdio',
\ 'executable': function('ale_linters#d#dls#GetExecutable'),
\ 'command': function('ale_linters#d#dls#GetExecutable'),
\ 'project_root': function('ale_linters#d#dls#FindProjectRoot'),
\})

View File

@@ -1,60 +1,64 @@
" Author: w0rp <devw0rp@gmail.com>
" Description: "dmd for D files"
if exists('g:loaded_ale_linters_d_dmd')
finish
endif
function! ale_linters#d#dmd#GetDUBCommand(buffer) abort
" If we can't run dub, then skip this command.
if !executable('dub')
" Returning an empty string skips to the DMD command.
return ''
endif
let g:loaded_ale_linters_d_dmd = 1
let l:dub_file = ale#d#FindDUBConfig(a:buffer)
" A function for finding the dmd-wrapper script in the Vim runtime paths
function! s:FindWrapperScript()
for l:parent in split(&runtimepath, ',')
" Expand the path to deal with ~ issues.
let l:path = expand(l:parent . '/' . 'dmd-wrapper')
if empty(l:dub_file)
return ''
endif
if filereadable(l:path)
return l:path
" To support older dub versions, we just change the directory to
" the directory where we found the dub config, and then run `dub describe`
" from that directory.
return 'cd ' . ale#Escape(fnamemodify(l:dub_file, ':h'))
\ . ' && dub describe --import-paths'
endfunction
function! ale_linters#d#dmd#RunDUBCommand(buffer) abort
let l:command = ale_linters#d#dmd#GetDUBCommand(a:buffer)
if empty(l:command)
" If we can't run DUB, just run DMD.
return ale_linters#d#dmd#DMDCommand(a:buffer, [], {})
endif
return ale#command#Run(a:buffer, l:command, function('ale_linters#d#dmd#DMDCommand'))
endfunction
function! ale_linters#d#dmd#DMDCommand(buffer, dub_output, meta) abort
let l:import_list = []
" Build a list of import paths generated from DUB, if available.
for l:line in a:dub_output
if !empty(l:line)
" The arguments must be '-Ifilename', not '-I filename'
call add(l:import_list, '-I' . ale#Escape(l:line))
endif
endfor
return 'dmd '. join(l:import_list) . ' -o- -wi -vcolumns -c %t'
endfunction
function! ale_linters#d#dmd#GetCommand(buffer)
let l:wrapper_script = s:FindWrapperScript()
let l:command = l:wrapper_script . ' -o- -vcolumns -c'
return l:command
endfunction
function! ale_linters#d#dmd#Handle(buffer, lines)
function! ale_linters#d#dmd#Handle(buffer, lines) abort
" Matches patterns lines like the following:
"
" /tmp/tmp.qclsa7qLP7/file.d(1): Error: function declaration without return type. (Note that constructors are always named 'this')
" /tmp/tmp.G1L5xIizvB.d(8,8): Error: module weak_reference is in file 'dstruct/weak_reference.d' which cannot be read
let l:pattern = '^[^(]\+(\([0-9]\+\),\([0-9]\+\)): \([^:]\+\): \(.\+\)'
let l:pattern = '^[^(]\+(\([0-9]\+\)\,\?\([0-9]*\)): \([^:]\+\): \(.\+\)'
let l:output = []
for l:line in a:lines
let l:match = matchlist(l:line, l:pattern)
if len(l:match) == 0
break
endif
let l:line = l:match[1] + 0
let l:column = l:match[2] + 0
let l:type = l:match[3]
let l:text = l:match[4]
" vcol is Needed to indicate that the column is a character.
for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:output, {
\ 'bufnr': bufnr('%'),
\ 'lnum': l:line,
\ 'vcol': 0,
\ 'col': l:column,
\ 'text': l:text,
\ 'type': l:type ==# 'Warning' ? 'W' : 'E',
\ 'nr': -1,
\ 'lnum': l:match[1],
\ 'col': l:match[2],
\ 'type': l:match[3] is# 'Warning' ? 'W' : 'E',
\ 'text': l:match[4],
\})
endfor
@@ -63,8 +67,8 @@ endfunction
call ale#linter#Define('d', {
\ 'name': 'dmd',
\ 'output_stream': 'stderr',
\ 'executable': 'dmd',
\ 'command_callback': 'ale_linters#d#dmd#GetCommand',
\ 'command': function('ale_linters#d#dmd#RunDUBCommand'),
\ 'callback': 'ale_linters#d#dmd#Handle',
\ 'output_stream': 'stderr',
\})

View File

@@ -0,0 +1,26 @@
" Author: Taylor Blau <me@ttaylorr.com>
function! ale_linters#dafny#dafny#Handle(buffer, lines) abort
let l:pattern = '\v(.*)\((\d+),(\d+)\): (.*): (.*)'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:output, {
\ 'bufnr': a:buffer,
\ 'col': l:match[3] + 0,
\ 'lnum': l:match[2] + 0,
\ 'text': l:match[5],
\ 'type': l:match[4] =~# '^Error' ? 'E' : 'W'
\ })
endfor
return l:output
endfunction
call ale#linter#Define('dafny', {
\ 'name': 'dafny',
\ 'executable': 'dafny',
\ 'command': 'dafny %s /compile:0',
\ 'callback': 'ale_linters#dafny#dafny#Handle',
\ 'lint_file': 1,
\ })

View File

@@ -0,0 +1,36 @@
" Author: w0rp <devw0rp@gmail.com>
" Description: Check Dart files with dartanalyzer
call ale#Set('dart_dartanalyzer_executable', 'dartanalyzer')
function! ale_linters#dart#dartanalyzer#GetCommand(buffer) abort
let l:path = ale#path#FindNearestFile(a:buffer, '.packages')
return '%e'
\ . (!empty(l:path) ? ' --packages ' . ale#Escape(l:path) : '')
\ . ' %s'
endfunction
function! ale_linters#dart#dartanalyzer#Handle(buffer, lines) abort
let l:pattern = '\v^ ([a-z]+) . (.+) at (.+):(\d+):(\d+) . (.+)$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:output, {
\ 'type': l:match[1] is# 'error' ? 'E' : 'W',
\ 'text': l:match[6] . ': ' . l:match[2],
\ 'lnum': str2nr(l:match[4]),
\ 'col': str2nr(l:match[5]),
\})
endfor
return l:output
endfunction
call ale#linter#Define('dart', {
\ 'name': 'dartanalyzer',
\ 'executable': {b -> ale#Var(b, 'dart_dartanalyzer_executable')},
\ 'command': function('ale_linters#dart#dartanalyzer#GetCommand'),
\ 'callback': 'ale_linters#dart#dartanalyzer#Handle',
\ 'lint_file': 1,
\})

View File

@@ -0,0 +1,20 @@
" Author: aurieh <me@aurieh.me>
" Description: A language server for dart
call ale#Set('dart_language_server_executable', 'dart_language_server')
function! ale_linters#dart#language_server#GetProjectRoot(buffer) abort
" Note: pub only looks for pubspec.yaml, there's no point in adding
" support for pubspec.yml
let l:pubspec = ale#path#FindNearestFile(a:buffer, 'pubspec.yaml')
return !empty(l:pubspec) ? fnamemodify(l:pubspec, ':h:h') : ''
endfunction
call ale#linter#Define('dart', {
\ 'name': 'language_server',
\ 'lsp': 'stdio',
\ 'executable': {b -> ale#Var(b, 'dart_language_server_executable')},
\ 'command': '%e',
\ 'project_root': function('ale_linters#dart#language_server#GetProjectRoot'),
\})

View File

@@ -0,0 +1,61 @@
" Author: Alexander Olofsson <alexander.olofsson@liu.se>
call ale#Set('dockerfile_dockerfile_lint_executable', 'dockerfile_lint')
call ale#Set('dockerfile_dockerfile_lint_options', '')
function! ale_linters#dockerfile#dockerfile_lint#GetType(type) abort
if a:type is? 'error'
return 'E'
elseif a:type is? 'warn'
return 'W'
endif
return 'I'
endfunction
function! ale_linters#dockerfile#dockerfile_lint#Handle(buffer, lines) abort
try
let l:data = json_decode(join(a:lines, ''))
catch
return []
endtry
if empty(l:data)
" Should never happen, but it's better to be on the safe side
return []
endif
let l:messages = []
for l:type in ['error', 'warn', 'info']
for l:object in l:data[l:type]['data']
let l:line = get(l:object, 'line', -1)
let l:message = l:object['message']
if get(l:object, 'description', 'None') isnot# 'None'
let l:message = l:message . '. ' . l:object['description']
endif
call add(l:messages, {
\ 'lnum': l:line,
\ 'text': l:message,
\ 'type': ale_linters#dockerfile#dockerfile_lint#GetType(l:type),
\})
endfor
endfor
return l:messages
endfunction
function! ale_linters#dockerfile#dockerfile_lint#GetCommand(buffer) abort
return '%e' . ale#Pad(ale#Var(a:buffer, 'dockerfile_dockerfile_lint_options'))
\ . ' -p -j -f'
\ . ' %t'
endfunction
call ale#linter#Define('dockerfile', {
\ 'name': 'dockerfile_lint',
\ 'executable': {b -> ale#Var(b, 'dockerfile_dockerfile_lint_executable')},
\ 'command': function('ale_linters#dockerfile#dockerfile_lint#GetCommand'),
\ 'callback': 'ale_linters#dockerfile#dockerfile_lint#Handle',
\})

View File

@@ -0,0 +1,99 @@
" Author: hauleth - https://github.com/hauleth
" always, yes, never
call ale#Set('dockerfile_hadolint_use_docker', 'never')
call ale#Set('dockerfile_hadolint_docker_image', 'hadolint/hadolint')
function! ale_linters#dockerfile#hadolint#Handle(buffer, lines) abort
" Matches patterns line the following:
"
" /dev/stdin:19 DL3001 Pipe chain should start with a raw value.
" /dev/stdin:19:3 unexpected thing
let l:pattern = '\v^/dev/stdin:(\d+):?(\d+)? ((DL|SC)(\d+) )?(.+)$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
let l:lnum = 0
let l:colnum = 0
if l:match[1] isnot# ''
let l:lnum = l:match[1] + 0
endif
if l:match[2] isnot# ''
let l:colnum = l:match[2] + 0
endif
let l:type = 'W'
let l:text = l:match[6]
let l:detail = l:match[6]
let l:domain = 'https://github.com/hadolint/hadolint/wiki/'
if l:match[4] is# 'SC'
let l:domain = 'https://github.com/koalaman/shellcheck/wiki/'
endif
if l:match[5] isnot# ''
let l:code = l:match[4] . l:match[5]
let l:link = ' ( ' . l:domain . l:code . ' )'
let l:detail = l:code . l:link . "\n\n" . l:detail
else
let l:type = 'E'
endif
call add(l:output, {
\ 'lnum': l:lnum,
\ 'col': l:colnum,
\ 'type': l:type,
\ 'text': l:text,
\ 'detail': l:detail
\})
endfor
return l:output
endfunction
" This is a little different than the typical 'executable' callback. We want
" to afford the user the chance to say always use docker, never use docker,
" and use docker if the hadolint executable is not present on the system.
"
" In the case of neither docker nor hadolint executables being present, it
" really doesn't matter which we return -- either will have the effect of
" 'nope, can't use this linter!'.
function! ale_linters#dockerfile#hadolint#GetExecutable(buffer) abort
let l:use_docker = ale#Var(a:buffer, 'dockerfile_hadolint_use_docker')
" check for mandatory directives
if l:use_docker is# 'never'
return 'hadolint'
elseif l:use_docker is# 'always'
return 'docker'
endif
" if we reach here, we want to use 'hadolint' if present...
if executable('hadolint')
return 'hadolint'
endif
"... and 'docker' as a fallback.
return 'docker'
endfunction
function! ale_linters#dockerfile#hadolint#GetCommand(buffer) abort
let l:command = ale_linters#dockerfile#hadolint#GetExecutable(a:buffer)
if l:command is# 'docker'
return 'docker run --rm -i ' . ale#Var(a:buffer, 'dockerfile_hadolint_docker_image')
endif
return 'hadolint -'
endfunction
call ale#linter#Define('dockerfile', {
\ 'name': 'hadolint',
\ 'executable': function('ale_linters#dockerfile#hadolint#GetExecutable'),
\ 'command': function('ale_linters#dockerfile#hadolint#GetCommand'),
\ 'callback': 'ale_linters#dockerfile#hadolint#Handle',
\})

View File

@@ -1,51 +1,63 @@
" Author: hauleth - https://github.com/haulethe
" Author: hauleth - https://github.com/hauleth
if exists('g:loaded_ale_linters_elixir_credo')
finish
endif
function! ale_linters#elixir#credo#Handle(buffer, lines) abort
" Matches patterns line the following:
"
" lib/filename.ex:19:7: F: Pipe chain should start with a raw value.
let l:pattern = '\v:(\d+):?(\d+)?: (.): (.+)$'
let l:output = []
let g:loaded_ale_linters_elixir_credo = 1
for l:match in ale#util#GetMatches(a:lines, l:pattern)
let l:type = l:match[3]
let l:text = l:match[4]
function! ale_linters#elixir#credo#Handle(buffer, lines)
" Matches patterns line the following:
"
" stdin:19: F: Pipe chain should start with a raw value.
let l:pattern = '\v^stdin:(\d+):?(\d+)?: (.): (.+)$'
let l:output = []
" Refactoring opportunities
if l:type is# 'F'
let l:type = 'W'
" Consistency
elseif l:type is# 'C'
let l:type = 'W'
" Software Design
elseif l:type is# 'D'
let l:type = 'I'
" Code Readability
elseif l:type is# 'R'
let l:type = 'I'
endif
for l:line in a:lines
let l:match = matchlist(l:line, l:pattern)
call add(l:output, {
\ 'bufnr': a:buffer,
\ 'lnum': l:match[1] + 0,
\ 'col': l:match[2] + 0,
\ 'type': l:type,
\ 'text': l:text,
\})
endfor
if len(l:match) == 0
continue
return l:output
endfunction
function! ale_linters#elixir#credo#GetMode() abort
if get(g:, 'ale_elixir_credo_strict', 0)
return '--strict'
else
return 'suggest'
endif
endfunction
let l:type = l:match[3]
let l:text = l:match[4]
function! ale_linters#elixir#credo#GetCommand(buffer) abort
let l:project_root = ale#handlers#elixir#FindMixProjectRoot(a:buffer)
let l:mode = ale_linters#elixir#credo#GetMode()
if l:type ==# 'C'
let l:type = 'E'
elseif l:type ==# 'R'
let l:type = 'W'
endif
" vcol is Needed to indicate that the column is a character.
call add(l:output, {
\ 'bufnr': a:buffer,
\ 'lnum': l:match[1] + 0,
\ 'vcol': 0,
\ 'col': l:match[2] + 0,
\ 'type': l:type,
\ 'text': l:text,
\ 'nr': -1,
\})
endfor
return l:output
return ale#path#CdString(l:project_root)
\ . 'mix help credo && '
\ . 'mix credo ' . ale_linters#elixir#credo#GetMode()
\ . ' --format=flycheck --read-from-stdin %s'
endfunction
call ale#linter#Define('elixir', {
\ 'name': 'credo',
\ 'executable': 'mix',
\ 'command': 'mix credo suggest --format=flycheck --read-from-stdin',
\ 'callback': 'ale_linters#elixir#credo#Handle' })
\ 'name': 'credo',
\ 'executable': 'mix',
\ 'command': function('ale_linters#elixir#credo#GetCommand'),
\ 'callback': 'ale_linters#elixir#credo#Handle',
\})

View File

@@ -0,0 +1,41 @@
" Author: Fran C. - https://github.com/franciscoj
" Description: Add dialyzer support for elixir through dialyxir
" https://github.com/jeremyjh/dialyxir
function! ale_linters#elixir#dialyxir#Handle(buffer, lines) abort
" Matches patterns line the following:
"
" lib/filename.ex:19: Function fname/1 has no local return
let l:pattern = '\v(.+):(\d+): (.+)$'
let l:output = []
let l:type = 'W'
for l:match in ale#util#GetMatches(a:lines, l:pattern)
if bufname(a:buffer) == l:match[1]
call add(l:output, {
\ 'bufnr': a:buffer,
\ 'lnum': l:match[2] + 0,
\ 'col': 0,
\ 'type': l:type,
\ 'text': l:match[3],
\})
endif
endfor
return l:output
endfunction
function! ale_linters#elixir#dialyxir#GetCommand(buffer) abort
let l:project_root = ale#handlers#elixir#FindMixProjectRoot(a:buffer)
return ale#path#CdString(l:project_root)
\ . ' mix help dialyzer && mix dialyzer'
endfunction
call ale#linter#Define('elixir', {
\ 'name': 'dialyxir',
\ 'executable': 'mix',
\ 'command': function('ale_linters#elixir#dialyxir#GetCommand'),
\ 'callback': 'ale_linters#elixir#dialyxir#Handle',
\})

View File

@@ -0,0 +1,45 @@
" Author: archseer - https://github.com/archSeer
function! ale_linters#elixir#dogma#Handle(buffer, lines) abort
" Matches patterns line the following:
"
" lib/filename.ex:19:7: F: Pipe chain should start with a raw value.
let l:pattern = '\v:(\d+):?(\d+)?: (.): (.+)$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
let l:type = l:match[3]
let l:text = l:match[4]
if l:type is# 'C'
let l:type = 'E'
elseif l:type is# 'R'
let l:type = 'W'
endif
call add(l:output, {
\ 'bufnr': a:buffer,
\ 'lnum': l:match[1] + 0,
\ 'col': l:match[2] + 0,
\ 'type': l:type,
\ 'text': l:text,
\})
endfor
return l:output
endfunction
function! ale_linters#elixir#dogma#GetCommand(buffer) abort
let l:project_root = ale#handlers#elixir#FindMixProjectRoot(a:buffer)
return ale#path#CdString(l:project_root)
\ . ' mix help dogma && mix dogma %s --format=flycheck'
endfunction
call ale#linter#Define('elixir', {
\ 'name': 'dogma',
\ 'executable': 'mix',
\ 'command': function('ale_linters#elixir#dogma#GetCommand'),
\ 'lint_file': 1,
\ 'callback': 'ale_linters#elixir#dogma#Handle',
\})

View File

@@ -0,0 +1,21 @@
" Author: Jon Parise <jon@indelible.org>
" Description: ElixirLS integration (https://github.com/JakeBecker/elixir-ls)
call ale#Set('elixir_elixir_ls_release', 'elixir-ls')
call ale#Set('elixir_elixir_ls_config', {})
function! ale_linters#elixir#elixir_ls#GetExecutable(buffer) abort
let l:dir = ale#path#Simplify(ale#Var(a:buffer, 'elixir_elixir_ls_release'))
let l:cmd = has('win32') ? '\language_server.bat' : '/language_server.sh'
return l:dir . l:cmd
endfunction
call ale#linter#Define('elixir', {
\ 'name': 'elixir-ls',
\ 'lsp': 'stdio',
\ 'executable': function('ale_linters#elixir#elixir_ls#GetExecutable'),
\ 'command': function('ale_linters#elixir#elixir_ls#GetExecutable'),
\ 'project_root': function('ale#handlers#elixir#FindMixUmbrellaRoot'),
\ 'lsp_config': {b -> ale#Var(b, 'elixir_elixir_ls_config')},
\})

View File

@@ -0,0 +1,52 @@
" Author: evnu - https://github.com/evnu
" Author: colbydehart - https://github.com/colbydehart
" Description: Mix compile checking for Elixir files
function! ale_linters#elixir#mix#Handle(buffer, lines) abort
" Matches patterns like the following:
"
" Error format
" ** (CompileError) apps/sim/lib/sim/server.ex:87: undefined function update_in/4
"
" TODO: Warning format
" warning: variable "foobar" does not exist and is being expanded to "foobar()", please use parentheses to remove the ambiguity or change the variable name
let l:pattern = '\v\(([^\)]+Error)\) ([^:]+):([^:]+): (.+)$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
let l:type = 'E'
let l:text = l:match[4]
call add(l:output, {
\ 'bufnr': a:buffer,
\ 'lnum': l:match[3] + 0,
\ 'col': 0,
\ 'type': l:type,
\ 'text': l:text,
\})
endfor
return l:output
endfunction
function! ale_linters#elixir#mix#GetCommand(buffer) abort
let l:project_root = ale#handlers#elixir#FindMixProjectRoot(a:buffer)
let l:temp_dir = ale#command#CreateDirectory(a:buffer)
let l:mix_build_path = has('win32')
\ ? 'set MIX_BUILD_PATH=' . ale#Escape(l:temp_dir) . ' &&'
\ : 'MIX_BUILD_PATH=' . ale#Escape(l:temp_dir)
return ale#path#CdString(l:project_root)
\ . l:mix_build_path
\ . ' mix compile %s'
endfunction
call ale#linter#Define('elixir', {
\ 'name': 'mix',
\ 'executable': 'mix',
\ 'command': function('ale_linters#elixir#mix#GetCommand'),
\ 'callback': 'ale_linters#elixir#mix#Handle',
\ 'lint_file': 1,
\})

View File

@@ -0,0 +1,22 @@
" Author: antew - https://github.com/antew
" Description: LSP integration for elm, currently supports diagnostics (linting)
call ale#Set('elm_lsp_executable', 'elm-lsp')
call ale#Set('elm_lsp_use_global', get(g:, 'ale_use_global_executables', 0))
function! elm_lsp#GetRootDir(buffer) abort
let l:elm_json = ale#path#FindNearestFile(a:buffer, 'elm.json')
return !empty(l:elm_json) ? fnamemodify(l:elm_json, ':p:h') : ''
endfunction
call ale#linter#Define('elm', {
\ 'name': 'elm_lsp',
\ 'lsp': 'stdio',
\ 'executable': {b -> ale#node#FindExecutable(b, 'elm_lsp', [
\ 'node_modules/.bin/elm-lsp',
\ ])},
\ 'command': '%e --stdio',
\ 'project_root': function('elm_lsp#GetRootDir'),
\ 'language': 'elm'
\})

240
ale_linters/elm/make.vim Normal file
View File

@@ -0,0 +1,240 @@
" Author: buffalocoder - https://github.com/buffalocoder, soywod - https://github.com/soywod, hecrj - https://github.com/hecrj
" Description: Elm linting in Ale. Closely follows the Syntastic checker in https://github.com/ElmCast/elm-vim.
call ale#Set('elm_make_executable', 'elm')
call ale#Set('elm_make_use_global', get(g:, 'ale_use_global_executables', 0))
function! ale_linters#elm#make#Handle(buffer, lines) abort
let l:output = []
let l:unparsed_lines = []
for l:line in a:lines
if l:line[0] is# '{'
" Elm 0.19
call ale_linters#elm#make#HandleElm019Line(l:line, l:output)
elseif l:line[0] is# '['
" Elm 0.18
call ale_linters#elm#make#HandleElm018Line(l:line, l:output)
elseif l:line isnot# 'Successfully generated /dev/null'
call add(l:unparsed_lines, l:line)
endif
endfor
if len(l:unparsed_lines) > 0
call add(l:output, {
\ 'lnum': 1,
\ 'type': 'E',
\ 'text': l:unparsed_lines[0],
\ 'detail': join(l:unparsed_lines, "\n")
\})
endif
return l:output
endfunction
function! ale_linters#elm#make#HandleElm019Line(line, output) abort
let l:report = json_decode(a:line)
if l:report.type is? 'error'
" General problem
let l:details = ale_linters#elm#make#ParseMessage(l:report.message)
if empty(l:report.path)
let l:report.path = 'Elm'
endif
if ale_linters#elm#make#FileIsBuffer(l:report.path)
call add(a:output, {
\ 'lnum': 1,
\ 'type': 'E',
\ 'text': l:details,
\})
else
call add(a:output, {
\ 'lnum': 1,
\ 'type': 'E',
\ 'text': l:report.path .' - '. l:details,
\ 'detail': l:report.path ." ----------\n\n". l:details,
\})
endif
else
" Compilation errors
for l:error in l:report.errors
let l:file_is_buffer = ale_linters#elm#make#FileIsBuffer(l:error.path)
for l:problem in l:error.problems
let l:details = ale_linters#elm#make#ParseMessage(l:problem.message)
if l:file_is_buffer
" Buffer module has problems
call add(a:output, {
\ 'lnum': l:problem.region.start.line,
\ 'col': l:problem.region.start.column,
\ 'end_lnum': l:problem.region.end.line,
\ 'end_col': l:problem.region.end.column,
\ 'type': 'E',
\ 'text': l:details,
\})
else
" Imported module has problems
let l:location = l:error.path .':'. l:problem.region.start.line
call add(a:output, {
\ 'lnum': 1,
\ 'type': 'E',
\ 'text': l:location .' - '. l:details,
\ 'detail': l:location ." ----------\n\n". l:details,
\})
endif
endfor
endfor
endif
endfunction
function! ale_linters#elm#make#HandleElm018Line(line, output) abort
let l:errors = json_decode(a:line)
for l:error in l:errors
let l:file_is_buffer = ale_linters#elm#make#FileIsBuffer(l:error.file)
if l:file_is_buffer
" Current buffer has problems
call add(a:output, {
\ 'lnum': l:error.region.start.line,
\ 'col': l:error.region.start.column,
\ 'end_lnum': l:error.region.end.line,
\ 'end_col': l:error.region.end.column,
\ 'type': (l:error.type is? 'error') ? 'E' : 'W',
\ 'text': l:error.overview,
\ 'detail': l:error.overview . "\n\n" . l:error.details
\})
elseif l:error.type is? 'error'
" Imported module has errors
let l:location = l:error.file .':'. l:error.region.start.line
call add(a:output, {
\ 'lnum': 1,
\ 'type': 'E',
\ 'text': l:location .' - '. l:error.overview,
\ 'detail': l:location ." ----------\n\n". l:error.overview . "\n\n" . l:error.details
\})
endif
endfor
endfunction
function! ale_linters#elm#make#FileIsBuffer(path) abort
return ale#path#IsTempName(a:path)
endfunction
function! ale_linters#elm#make#ParseMessage(message) abort
return join(map(copy(a:message), 'ale_linters#elm#make#ParseMessageItem(v:val)'), '')
endfunction
function! ale_linters#elm#make#ParseMessageItem(item) abort
if type(a:item) is v:t_string
return a:item
else
return a:item.string
endif
endfunction
function! ale_linters#elm#make#GetPackageFile(buffer) abort
let l:elm_json = ale#path#FindNearestFile(a:buffer, 'elm.json')
if empty(l:elm_json)
" Fallback to Elm 0.18
let l:elm_json = ale#path#FindNearestFile(a:buffer, 'elm-package.json')
endif
return l:elm_json
endfunction
function! ale_linters#elm#make#IsVersionGte19(buffer) abort
let l:elm_json = ale_linters#elm#make#GetPackageFile(a:buffer)
if l:elm_json =~# '-package'
return 0
else
return 1
endif
endfunction
function! ale_linters#elm#make#GetRootDir(buffer) abort
let l:elm_json = ale_linters#elm#make#GetPackageFile(a:buffer)
if empty(l:elm_json)
return ''
else
return fnamemodify(l:elm_json, ':p:h')
endif
endfunction
function! ale_linters#elm#make#IsTest(buffer) abort
let l:root_dir = ale_linters#elm#make#GetRootDir(a:buffer)
if empty(l:root_dir)
return 0
endif
let l:tests_dir = join([l:root_dir, 'tests', ''], has('win32') ? '\' : '/')
let l:buffer_path = fnamemodify(bufname(a:buffer), ':p')
if stridx(l:buffer_path, l:tests_dir) == 0
return 1
else
return 0
endif
endfunction
" Return the command to execute the linter in the projects directory.
" If it doesn't, then this will fail when imports are needed.
function! ale_linters#elm#make#GetCommand(buffer) abort
let l:executable = ale_linters#elm#make#GetExecutable(a:buffer)
let l:root_dir = ale_linters#elm#make#GetRootDir(a:buffer)
let l:is_v19 = ale_linters#elm#make#IsVersionGte19(a:buffer)
let l:is_using_elm_test = l:executable =~# 'elm-test$'
if empty(l:root_dir)
let l:dir_set_cmd = ''
else
let l:dir_set_cmd = 'cd ' . ale#Escape(l:root_dir) . ' && '
endif
" elm-test needs to know the path of elm-make if elm isn't installed globally.
" https://github.com/rtfeldman/node-test-runner/blob/57728f10668f2d2ab3179e7e3208bcfa9a1f19aa/README.md#--compiler
if l:is_v19 && l:is_using_elm_test
let l:elm_make_executable = ale#node#FindExecutable(a:buffer, 'elm_make', ['node_modules/.bin/elm'])
let l:elm_test_compiler_flag = ' --compiler ' . l:elm_make_executable . ' '
else
let l:elm_test_compiler_flag = ' '
endif
" The elm compiler, at the time of this writing, uses '/dev/null' as
" a sort of flag to tell the compiler not to generate an output file,
" which is why this is hard coded here.
" Source: https://github.com/elm-lang/elm-compiler/blob/19d5a769b30ec0b2fc4475985abb4cd94cd1d6c3/builder/src/Generate/Output.hs#L253
return l:dir_set_cmd . '%e make --report=json --output=/dev/null' . l:elm_test_compiler_flag . '%t'
endfunction
function! ale_linters#elm#make#GetExecutable(buffer) abort
let l:is_test = ale_linters#elm#make#IsTest(a:buffer)
let l:is_v19 = ale_linters#elm#make#IsVersionGte19(a:buffer)
if l:is_test && l:is_v19
return ale#node#FindExecutable(
\ a:buffer,
\ 'elm_make',
\ ['node_modules/.bin/elm-test', 'node_modules/.bin/elm']
\)
else
return ale#node#FindExecutable(a:buffer, 'elm_make', ['node_modules/.bin/elm'])
endif
endfunction
call ale#linter#Define('elm', {
\ 'name': 'make',
\ 'executable': function('ale_linters#elm#make#GetExecutable'),
\ 'output_stream': 'both',
\ 'command': function('ale_linters#elm#make#GetCommand'),
\ 'callback': 'ale_linters#elm#make#Handle'
\})

View File

@@ -0,0 +1,96 @@
" Author: Magnus Ottenklinger - https://github.com/evnu
let g:ale_erlang_erlc_options = get(g:, 'ale_erlang_erlc_options', '')
function! ale_linters#erlang#erlc#GetCommand(buffer) abort
let l:output_file = ale#util#Tempname()
call ale#command#ManageFile(a:buffer, l:output_file)
return 'erlc -o ' . ale#Escape(l:output_file)
\ . ' ' . ale#Var(a:buffer, 'erlang_erlc_options')
\ . ' %t'
endfunction
function! ale_linters#erlang#erlc#Handle(buffer, lines) abort
" Matches patterns like the following:
"
" error.erl:4: variable 'B' is unbound
" error.erl:3: Warning: function main/0 is unused
" error.erl:4: Warning: variable 'A' is unused
let l:pattern = '\v^([a-zA-Z]?:?[^:]+):(\d+): (Warning: )?(.+)$'
" parse_transforms are a special case. The error message does not indicate a location:
" error.erl: undefined parse transform 'some_parse_transform'
let l:pattern_parse_transform = '\v(undefined parse transform .*)$'
let l:output = []
let l:pattern_no_module_definition = '\v(no module definition)$'
let l:pattern_unused = '\v(.* is unused)$'
let l:is_hrl = fnamemodify(bufname(a:buffer), ':e') is# 'hrl'
for l:line in a:lines
let l:match = matchlist(l:line, l:pattern)
" Determine if the output indicates an error. We distinguish between two cases:
"
" 1) normal errors match l:pattern
" 2) parse_transform errors match l:pattern_parse_transform
"
" If none of the patterns above match, the line can be ignored
if len(l:match) == 0 " not a 'normal' warning or error
let l:match_parse_transform = matchlist(l:line, l:pattern_parse_transform)
if len(l:match_parse_transform) == 0 " also not a parse_transform error
continue
endif
call add(l:output, {
\ 'bufnr': a:buffer,
\ 'lnum': 0,
\ 'col': 0,
\ 'type': 'E',
\ 'text': l:match_parse_transform[0],
\})
continue
endif
let l:line = l:match[2]
let l:warning_or_text = l:match[3]
let l:text = l:match[4]
" If this file is a header .hrl, ignore the following expected messages:
" - 'no module definition'
" - 'X is unused'
if l:is_hrl && (
\ match(l:text, l:pattern_no_module_definition) != -1
\ || match(l:text, l:pattern_unused) != -1
\)
continue
endif
if !empty(l:warning_or_text)
let l:type = 'W'
else
let l:type = 'E'
endif
call add(l:output, {
\ 'bufnr': a:buffer,
\ 'lnum': l:line,
\ 'col': 0,
\ 'type': l:type,
\ 'text': l:text,
\})
endfor
return l:output
endfunction
call ale#linter#Define('erlang', {
\ 'name': 'erlc',
\ 'executable': 'erlc',
\ 'command': function('ale_linters#erlang#erlc#GetCommand'),
\ 'callback': 'ale_linters#erlang#erlc#Handle',
\})

View File

@@ -0,0 +1,42 @@
" Author: Dmitri Vereshchagin <dmitri.vereshchagin@gmail.com>
" Description: SyntaxErl linter for Erlang files
call ale#Set('erlang_syntaxerl_executable', 'syntaxerl')
function! ale_linters#erlang#syntaxerl#RunHelpCommand(buffer) abort
let l:executable = ale#Var(a:buffer, 'erlang_syntaxerl_executable')
return ale#command#Run(
\ a:buffer,
\ ale#Escape(l:executable) . ' -h',
\ function('ale_linters#erlang#syntaxerl#GetCommand'),
\)
endfunction
function! ale_linters#erlang#syntaxerl#GetCommand(buffer, output, meta) abort
let l:use_b_option = match(a:output, '\C\V-b, --base\>') > -1
return '%e' . (l:use_b_option ? ' -b %s %t' : ' %t')
endfunction
function! ale_linters#erlang#syntaxerl#Handle(buffer, lines) abort
let l:pattern = '\v\C:(\d+):( warning:)? (.+)'
let l:loclist = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:loclist, {
\ 'lnum': l:match[1] + 0,
\ 'text': l:match[3],
\ 'type': empty(l:match[2]) ? 'E' : 'W',
\})
endfor
return l:loclist
endfunction
call ale#linter#Define('erlang', {
\ 'name': 'syntaxerl',
\ 'executable': {b -> ale#Var(b, 'erlang_syntaxerl_executable')},
\ 'command': {b -> ale_linters#erlang#syntaxerl#RunHelpCommand(b)},
\ 'callback': 'ale_linters#erlang#syntaxerl#Handle',
\})

25
ale_linters/eruby/erb.vim Normal file
View File

@@ -0,0 +1,25 @@
" Author: Matthias Guenther - https://wikimatze.de, Eddie Lebow https://github.com/elebow
" Description: ERB from the Ruby standard library, for eruby/erb files
function! ale_linters#eruby#erb#GetCommand(buffer) abort
let l:rails_root = ale#ruby#FindRailsRoot(a:buffer)
if empty(l:rails_root)
return 'erb -P -T - -x %t | ruby -c'
endif
" Rails-flavored eRuby does not comply with the standard as understood by
" ERB, so we'll have to do some substitution. This does not reduce the
" effectiveness of the linter—the translated code is still evaluated.
return 'ruby -r erb -e ' . ale#Escape('puts ERB.new($stdin.read.gsub(%{<%=},%{<%}), nil, %{-}).src') . '< %t | ruby -c'
endfunction
call ale#linter#Define('eruby', {
\ 'name': 'erb',
\ 'aliases': ['erubylint'],
\ 'executable': 'erb',
\ 'output_stream': 'stderr',
\ 'command': function('ale_linters#eruby#erb#GetCommand'),
\ 'callback': 'ale#handlers#ruby#HandleSyntaxErrors',
\})

View File

@@ -0,0 +1,32 @@
" Author: Eddie Lebow https://github.com/elebow
" Description: eruby checker using `erubi`
function! ale_linters#eruby#erubi#GetCommand(buffer, output, meta) abort
let l:rails_root = ale#ruby#FindRailsRoot(a:buffer)
if !empty(a:output)
" The empty command in CheckErubi returns nothing if erubi runs and
" emits an error if erubi is not present
return ''
endif
if empty(l:rails_root)
return 'ruby -r erubi/capture_end -e ' . ale#Escape('puts Erubi::CaptureEndEngine.new($stdin.read).src') . '< %t | ruby -c'
endif
" Rails-flavored eRuby does not comply with the standard as understood by
" Erubi, so we'll have to do some substitution. This does not reduce the
" effectiveness of the linter---the translated code is still evaluated.
return 'ruby -r erubi/capture_end -e ' . ale#Escape('puts Erubi::CaptureEndEngine.new($stdin.read.gsub(%{<%=},%{<%}), nil, %{-}).src') . '< %t | ruby -c'
endfunction
call ale#linter#Define('eruby', {
\ 'name': 'erubi',
\ 'executable': 'ruby',
\ 'command': {buffer -> ale#command#Run(
\ buffer,
\ 'ruby -r erubi/capture_end -e ' . ale#Escape('""'),
\ function('ale_linters#eruby#erubi#GetCommand'),
\ )},
\ 'callback': 'ale#handlers#ruby#HandleSyntaxErrors',
\})

View File

@@ -0,0 +1,23 @@
" Author: Jake Zimmerman <jake@zimmerman.io>, Eddie Lebow https://github.com/elebow
" Description: eruby checker using `erubis`, instead of `erb`
function! ale_linters#eruby#erubis#GetCommand(buffer) abort
let l:rails_root = ale#ruby#FindRailsRoot(a:buffer)
if empty(l:rails_root)
return 'erubis -x %t | ruby -c'
endif
" Rails-flavored eRuby does not comply with the standard as understood by
" Erubis, so we'll have to do some substitution. This does not reduce the
" effectiveness of the linter - the translated code is still evaluated.
return 'ruby -r erubis -e ' . ale#Escape('puts Erubis::Eruby.new($stdin.read.gsub(%{<%=},%{<%})).src') . '< %t | ruby -c'
endfunction
call ale#linter#Define('eruby', {
\ 'name': 'erubis',
\ 'executable': 'erubis',
\ 'output_stream': 'stderr',
\ 'command': function('ale_linters#eruby#erubis#GetCommand'),
\ 'callback': 'ale#handlers#ruby#HandleSyntaxErrors',
\})

View File

@@ -0,0 +1,62 @@
" Author: aclemons - https://github.com/aclemons
" based on the ale rubocop linter
" Description: Ruumba, RuboCop linting for ERB templates.
call ale#Set('eruby_ruumba_executable', 'ruumba')
call ale#Set('eruby_ruumba_options', '')
function! ale_linters#eruby#ruumba#GetCommand(buffer) abort
let l:executable = ale#Var(a:buffer, 'eruby_ruumba_executable')
return ale#handlers#ruby#EscapeExecutable(l:executable, 'ruumba')
\ . ' --format json --force-exclusion '
\ . ale#Var(a:buffer, 'eruby_ruumba_options')
\ . ' --stdin ' . ale#Escape(expand('#' . a:buffer . ':p'))
endfunction
function! ale_linters#eruby#ruumba#Handle(buffer, lines) abort
try
let l:errors = json_decode(a:lines[0])
catch
return []
endtry
if !has_key(l:errors, 'summary')
\|| l:errors['summary']['offense_count'] == 0
\|| empty(l:errors['files'])
return []
endif
let l:output = []
for l:error in l:errors['files'][0]['offenses']
let l:start_col = l:error['location']['column'] + 0
call add(l:output, {
\ 'lnum': l:error['location']['line'] + 0,
\ 'col': l:start_col,
\ 'end_col': l:start_col + l:error['location']['length'] - 1,
\ 'code': l:error['cop_name'],
\ 'text': l:error['message'],
\ 'type': ale_linters#eruby#ruumba#GetType(l:error['severity']),
\})
endfor
return l:output
endfunction
function! ale_linters#eruby#ruumba#GetType(severity) abort
if a:severity is? 'convention'
\|| a:severity is? 'warning'
\|| a:severity is? 'refactor'
return 'W'
endif
return 'E'
endfunction
call ale#linter#Define('eruby', {
\ 'name': 'ruumba',
\ 'executable': {b -> ale#Var(b, 'eruby_ruumba_executable')},
\ 'command': function('ale_linters#eruby#ruumba#GetCommand'),
\ 'callback': 'ale_linters#eruby#ruumba#Handle',
\})

67
ale_linters/fish/fish.vim Normal file
View File

@@ -0,0 +1,67 @@
" Author: Niraj Thapaliya - https://github.com/nthapaliya
" Description: Lints fish files using fish -n
function! ale_linters#fish#fish#Handle(buffer, lines) abort
" Matches patterns such as:
"
" home/.config/fish/functions/foo.fish (line 1): Missing end to balance this function definition
" function foo
" ^
"
" OR, patterns such as:
"
" Unsupported use of '||'. In fish, please use 'COMMAND; or COMMAND'.
" /tmp/vLz620o/258/test.fish (line 2): if set -q SSH_CLIENT || set -q SSH_TTY
" ^
"
" fish -n can return errors in either format.
let l:pattern = '^\(.* (line \(\d\+\)): \)\(.*\)$'
let l:column_pattern = '^ *\^'
let l:output = []
let l:column_offset = 0
let l:last_line_with_message = ''
for l:line in a:lines
" Look for error lines first.
let l:match = matchlist(l:line, l:pattern)
if !empty(l:match)
if !empty(l:last_line_with_message)
let l:text = l:last_line_with_message
else
let l:text = l:match[3]
endif
let l:column_offset = len(l:match[1])
let l:last_line_with_message = ''
call add(l:output, {
\ 'col': 0,
\ 'lnum': str2nr(l:match[2]),
\ 'text': l:text,
\})
else
" Look for column markers like ' ^' second.
" The column index will be set according to how long the line is.
let l:column_match = matchstr(l:line, l:column_pattern)
if !empty(l:column_match) && !empty(l:output)
let l:output[-1].col = len(l:column_match) - l:column_offset
let l:last_line_with_message = ''
else
let l:last_line_with_message = l:line
let l:column_offset = 0
endif
endif
endfor
return l:output
endfunction
call ale#linter#Define('fish', {
\ 'name': 'fish',
\ 'output_stream': 'stderr',
\ 'executable': 'fish',
\ 'command': 'fish -n %t',
\ 'callback': 'ale_linters#fish#fish#Handle',
\})

View File

@@ -1,24 +1,19 @@
" Author: w0rp <devw0rp@gmail.com>
" Description: gcc for Fortran files
if exists('g:loaded_ale_linters_fortran_gcc')
finish
endif
let g:loaded_ale_linters_fortran_gcc = 1
" This option can be set to 0 to use -ffixed-form
call ale#Set('fortran_gcc_use_free_form', 1)
call ale#Set('fortran_gcc_executable', 'gcc')
" Set this option to change the GCC options for warnings for Fortran.
if !exists('g:ale_fortran_gcc_options')
let g:ale_fortran_gcc_options = '-Wall'
endif
call ale#Set('fortran_gcc_options', '-Wall')
function! ale_linters#fortran#gcc#Handle(buffer, lines)
function! ale_linters#fortran#gcc#Handle(buffer, lines) abort
" We have to match a starting line and a later ending line together,
" like so.
"
" :21.34:
" Error: Expected comma in I/O list at (1)
let l:line_marker_pattern = '^:\(\d\+\)\.\(\d\+\):$'
let l:line_marker_pattern = ':\(\d\+\)[.:]\=\(\d\+\)\=:\=$'
let l:message_pattern = '^\(Error\|Warning\): \(.\+\)$'
let l:looking_for_message = 0
let l:last_loclist_obj = {}
@@ -41,15 +36,13 @@ function! ale_linters#fortran#gcc#Handle(buffer, lines)
" Now we have the text, we can set it and add the error.
let l:last_loclist_obj.text = l:match[2]
let l:last_loclist_obj.type = l:match[1] ==# 'Warning' ? 'W' : 'E'
let l:last_loclist_obj.type = l:match[1] is# 'Warning' ? 'W' : 'E'
call add(l:output, l:last_loclist_obj)
else
let l:last_loclist_obj = {
\ 'bufnr': a:buffer,
\ 'lnum': l:match[1] + 0,
\ 'vcol': 0,
\ 'col': l:match[2] + 0,
\ 'nr': -1,
\}
" Start looking for the message and error type.
@@ -60,12 +53,20 @@ function! ale_linters#fortran#gcc#Handle(buffer, lines)
return l:output
endfunction
function! ale_linters#fortran#gcc#GetCommand(buffer) abort
let l:layout_option = ale#Var(a:buffer, 'fortran_gcc_use_free_form')
\ ? '-ffree-form'
\ : '-ffixed-form'
return '%e -S -x f95 -fsyntax-only ' . l:layout_option
\ . ale#Pad(ale#Var(a:buffer, 'fortran_gcc_options'))
\ . ' -'
endfunction
call ale#linter#Define('fortran', {
\ 'name': 'gcc',
\ 'output_stream': 'stderr',
\ 'executable': 'gcc',
\ 'command': 'gcc -S -x f95 -fsyntax-only -ffree-form '
\ . g:ale_fortran_gcc_options
\ . ' -',
\ 'executable': {b -> ale#Var(b, 'fortran_gcc_executable')},
\ 'command': function('ale_linters#fortran#gcc#GetCommand'),
\ 'callback': 'ale_linters#fortran#gcc#Handle',
\})

View File

@@ -0,0 +1,19 @@
" Author: unpairedbracket ben.spiers22@gmail.com
" Description: A language server for fortran
call ale#Set('fortran_language_server_executable', 'fortls')
call ale#Set('fortran_language_server_use_global', get(g:, 'ale_use_global_executables', 0))
function! ale_linters#fortran#language_server#GetProjectRoot(buffer) abort
let l:fortls_file = ale#path#FindNearestFile(a:buffer, '.fortls')
return !empty(l:fortls_file) ? fnamemodify(l:fortls_file, ':h') : ''
endfunction
call ale#linter#Define('fortran', {
\ 'name': 'language_server',
\ 'lsp': 'stdio',
\ 'executable': {b -> ale#Var(b, 'fortran_language_server_executable')},
\ 'command': '%e',
\ 'project_root': function('ale_linters#fortran#language_server#GetProjectRoot'),
\})

View File

@@ -0,0 +1,9 @@
" Author: Jansen Mitchell https://github.com/JansenMitchell
" Description: proselint for Fountain files
call ale#linter#Define('fountain', {
\ 'name': 'proselint',
\ 'executable': 'proselint',
\ 'command': 'proselint %t',
\ 'callback': 'ale#handlers#unix#HandleAsWarning',
\})

View File

@@ -0,0 +1,33 @@
" Author: RyanSquared <vandor2012@gmail.com>
" Description: `fusion-lint` linter for FusionScript files
call ale#Set('fuse_fusionlint_executable', 'fusion-lint')
call ale#Set('fuse_fusionlint_options', '')
function! ale_linters#fuse#fusionlint#GetCommand(buffer) abort
return '%e' . ale#Pad(ale#Var(a:buffer, 'fuse_fusionlint_options'))
\ . ' --filename %s -i'
endfunction
function! ale_linters#fuse#fusionlint#Handle(buffer, lines) abort
let l:pattern = '^.*:\(\d\+\):\(\d\+\): (\([WE]\)\d\+) \(.\+\)$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:output, {
\ 'lnum': l:match[1] + 0,
\ 'col': l:match[2] + 0,
\ 'text': l:match[4],
\ 'type': l:match[3],
\})
endfor
return l:output
endfunction
call ale#linter#Define('fuse', {
\ 'name': 'fusionlint',
\ 'executable': {b -> ale#Var(b, 'fuse_fusionlint_executable')},
\ 'command': function('ale_linters#fuse#fusionlint#GetCommand'),
\ 'callback': 'ale_linters#fuse#fusionlint#Handle',
\})

View File

@@ -0,0 +1,51 @@
" Author: Nick Yamane <nick.diego@gmail.com>
" Description: gitlint for git commit message files
call ale#Set('gitcommit_gitlint_executable', 'gitlint')
call ale#Set('gitcommit_gitlint_options', '')
call ale#Set('gitcommit_gitlint_use_global', get(g:, 'ale_use_global_executables', 0))
function! ale_linters#gitcommit#gitlint#GetExecutable(buffer) abort
return ale#python#FindExecutable(a:buffer, 'gitcommit_gitlint', ['gitlint'])
endfunction
function! ale_linters#gitcommit#gitlint#GetCommand(buffer) abort
let l:options = ale#Var(a:buffer, 'gitcommit_gitlint_options')
return '%e' . ale#Pad(l:options) . ' lint'
endfunction
function! ale_linters#gitcommit#gitlint#Handle(buffer, lines) abort
" Matches patterns line the following:
let l:pattern = '\v^(\d+): (\w+) (.*)$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
let l:code = l:match[2]
if !ale#Var(a:buffer, 'warn_about_trailing_whitespace')
if l:code is# 'T2' || l:code is# 'B2'
continue
endif
endif
let l:item = {
\ 'lnum': l:match[1] + 0,
\ 'text': l:match[3],
\ 'code': l:code,
\ 'type': 'E',
\}
call add(l:output, l:item)
endfor
return l:output
endfunction
call ale#linter#Define('gitcommit', {
\ 'name': 'gitlint',
\ 'output_stream': 'stderr',
\ 'executable': function('ale_linters#gitcommit#gitlint#GetExecutable'),
\ 'command': function('ale_linters#gitcommit#gitlint#GetCommand'),
\ 'callback': 'ale_linters#gitcommit#gitlint#Handle',
\})

View File

@@ -0,0 +1,40 @@
" Author: Sven-Hendrik Haase <svenstaro@gmail.com>
" Description: glslang-based linter for glsl files
"
" TODO: Once https://github.com/KhronosGroup/glslang/pull/1047 is accepted,
" we can use stdin.
call ale#Set('glsl_glslang_executable', 'glslangValidator')
call ale#Set('glsl_glslang_options', '')
function! ale_linters#glsl#glslang#GetCommand(buffer) abort
return '%e'
\ . ale#Pad(ale#Var(a:buffer, 'glsl_glslang_options'))
\ . ' -C %t'
endfunction
function! ale_linters#glsl#glslang#Handle(buffer, lines) abort
" Matches patterns like the following:
"
" ERROR: 0:5: 'foo' : undeclared identifier
let l:pattern = '^\(.\+\): \(\d\+\):\(\d\+\): \(.\+\)'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:output, {
\ 'lnum': str2nr(l:match[3]),
\ 'col': str2nr(l:match[2]),
\ 'text': l:match[4],
\ 'type': l:match[1] is# 'ERROR' ? 'E' : 'W',
\})
endfor
return l:output
endfunction
call ale#linter#Define('glsl', {
\ 'name': 'glslang',
\ 'executable': {b -> ale#Var(b, 'glsl_glslang_executable')},
\ 'command': function('ale_linters#glsl#glslang#GetCommand'),
\ 'callback': 'ale_linters#glsl#glslang#Handle',
\})

View File

@@ -0,0 +1,30 @@
" Author: Sven-Hendrik Haase <svenstaro@gmail.com>
" Description: A language server for glsl
call ale#Set('glsl_glslls_executable', 'glslls')
call ale#Set('glsl_glslls_logfile', '')
function! ale_linters#glsl#glslls#GetCommand(buffer) abort
let l:logfile = ale#Var(a:buffer, 'glsl_glslls_logfile')
let l:logfile_args = ''
if l:logfile isnot# ''
let l:logfile_args = ' --verbose -l ' . l:logfile
endif
return '%e' . l:logfile_args . ' --stdin'
endfunction
function! ale_linters#glsl#glslls#GetProjectRoot(buffer) abort
let l:project_root = ale#c#FindProjectRoot(a:buffer)
return !empty(l:project_root) ? fnamemodify(l:project_root, ':h:h') : ''
endfunction
call ale#linter#Define('glsl', {
\ 'name': 'glslls',
\ 'lsp': 'stdio',
\ 'executable': {b -> ale#Var(b, 'glsl_glslls_executable')},
\ 'command': function('ale_linters#glsl#glslls#GetCommand'),
\ 'project_root': function('ale_linters#glsl#glslls#GetProjectRoot'),
\})

29
ale_linters/go/bingo.vim Normal file
View File

@@ -0,0 +1,29 @@
" Author: Jerko Steiner <https://github.com/jeremija>
" Description: https://github.com/saibing/bingo
call ale#Set('go_bingo_executable', 'bingo')
call ale#Set('go_bingo_options', '--mode stdio')
function! ale_linters#go#bingo#GetCommand(buffer) abort
return '%e' . ale#Pad(ale#Var(a:buffer, 'go_bingo_options'))
endfunction
function! ale_linters#go#bingo#FindProjectRoot(buffer) abort
let l:project_root = ale#path#FindNearestFile(a:buffer, 'go.mod')
let l:mods = ':h'
if empty(l:project_root)
let l:project_root = ale#path#FindNearestDirectory(a:buffer, '.git')
let l:mods = ':h:h'
endif
return !empty(l:project_root) ? fnamemodify(l:project_root, l:mods) : ''
endfunction
call ale#linter#Define('go', {
\ 'name': 'bingo',
\ 'lsp': 'stdio',
\ 'executable': {b -> ale#Var(b, 'go_bingo_executable')},
\ 'command': function('ale_linters#go#bingo#GetCommand'),
\ 'project_root': function('ale_linters#go#bingo#FindProjectRoot'),
\})

View File

@@ -0,0 +1,56 @@
" Author: Joshua Rubin <joshua@rubixconsulting.com>, Ben Reedy <https://github.com/breed808>,
" Jeff Willette <jrwillette88@gmail.com>
" Description: go build for Go files
" inspired by work from dzhou121 <dzhou121@gmail.com>
call ale#Set('go_go_executable', 'go')
call ale#Set('go_gobuild_options', '')
function! ale_linters#go#gobuild#GetCommand(buffer) abort
let l:options = ale#Var(a:buffer, 'go_gobuild_options')
" Run go test in local directory with relative path
return ale#path#BufferCdString(a:buffer)
\ . ale#Var(a:buffer, 'go_go_executable') . ' test'
\ . (!empty(l:options) ? ' ' . l:options : '')
\ . ' -c -o /dev/null ./'
endfunction
function! ale_linters#go#gobuild#GetMatches(lines) abort
" Matches patterns like the following:
"
" file.go:27: missing argument for Printf("%s"): format reads arg 2, have only 1 args
" file.go:53:10: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary)
" file.go:5:2: expected declaration, found 'STRING' "log"
" go test returns relative paths so use tail of filename as part of pattern matcher
let l:pattern = '\v^([a-zA-Z]?:?[^:]+):(\d+):?(\d+)?:? (.+)$'
return ale#util#GetMatches(a:lines, l:pattern)
endfunction
function! ale_linters#go#gobuild#Handler(buffer, lines) abort
let l:dir = expand('#' . a:buffer . ':p:h')
let l:output = []
for l:match in ale_linters#go#gobuild#GetMatches(a:lines)
call add(l:output, {
\ 'filename': ale#path#GetAbsPath(l:dir, l:match[1]),
\ 'lnum': l:match[2] + 0,
\ 'col': l:match[3] + 0,
\ 'text': l:match[4],
\ 'type': 'E',
\})
endfor
return l:output
endfunction
call ale#linter#Define('go', {
\ 'name': 'gobuild',
\ 'aliases': ['go build'],
\ 'executable': {b -> ale#Var(b, 'go_go_executable')},
\ 'command': function('ale_linters#go#gobuild#GetCommand'),
\ 'output_stream': 'stderr',
\ 'callback': 'ale_linters#go#gobuild#Handler',
\ 'lint_file': 1,
\})

View File

@@ -1,17 +1,10 @@
" Author: neersighted <bjorn@neersighted.com>
" Description: gofmt for Go files
if exists('g:loaded_ale_linters_go_gofmt')
finish
endif
let g:loaded_ale_linters_go_gofmt = 1
call ale#linter#Define('go', {
\ 'name': 'gofmt',
\ 'output_stream': 'stderr',
\ 'executable': 'gofmt',
\ 'command': g:ale#util#stdin_wrapper . ' .go gofmt -e',
\ 'callback': 'ale#handlers#HandleUnixFormatAsError',
\ 'command': 'gofmt -e %t',
\ 'callback': 'ale#handlers#unix#HandleAsError',
\})

View File

@@ -0,0 +1,56 @@
" Author: Sascha Grunert <mail@saschagrunert.de>
" Description: Adds support of golangci-lint
call ale#Set('go_golangci_lint_options', '--enable-all')
call ale#Set('go_golangci_lint_executable', 'golangci-lint')
call ale#Set('go_golangci_lint_package', 0)
function! ale_linters#go#golangci_lint#GetCommand(buffer) abort
let l:filename = expand('#' . a:buffer . ':t')
let l:options = ale#Var(a:buffer, 'go_golangci_lint_options')
let l:lint_package = ale#Var(a:buffer, 'go_golangci_lint_package')
if l:lint_package
return ale#path#BufferCdString(a:buffer)
\ . '%e run '
\ . l:options
endif
return ale#path#BufferCdString(a:buffer)
\ . '%e run '
\ . ale#Escape(l:filename)
\ . ' ' . l:options
endfunction
function! ale_linters#go#golangci_lint#GetMatches(lines) abort
let l:pattern = '\v^([a-zA-Z]?:?[^:]+):(\d+):?(\d+)?:?:?:?\s\*?(.+)$'
return ale#util#GetMatches(a:lines, l:pattern)
endfunction
function! ale_linters#go#golangci_lint#Handler(buffer, lines) abort
let l:dir = expand('#' . a:buffer . ':p:h')
let l:output = []
for l:match in ale_linters#go#golangci_lint#GetMatches(a:lines)
" l:match[1] will already be an absolute path, output from
" golangci_lint
call add(l:output, {
\ 'filename': ale#path#GetAbsPath(l:dir, l:match[1]),
\ 'lnum': l:match[2] + 0,
\ 'col': l:match[3] + 0,
\ 'type': 'E',
\ 'text': l:match[4],
\})
endfor
return l:output
endfunction
call ale#linter#Define('go', {
\ 'name': 'golangci-lint',
\ 'executable': {b -> ale#Var(b, 'go_golangci_lint_executable')},
\ 'command': function('ale_linters#go#golangci_lint#GetCommand'),
\ 'callback': 'ale_linters#go#golangci_lint#Handler',
\ 'lint_file': 1,
\})

View File

@@ -1,15 +1,21 @@
" Author: neersighted <bjorn@neersighted.com>
" Description: golint for Go files
if exists('g:loaded_ale_linters_go_golint')
finish
endif
call ale#Set('go_golint_executable', 'golint')
call ale#Set('go_golint_options', '')
let g:loaded_ale_linters_go_golint = 1
function! ale_linters#go#golint#GetCommand(buffer) abort
let l:options = ale#Var(a:buffer, 'go_golint_options')
return '%e'
\ . (!empty(l:options) ? ' ' . l:options : '')
\ . ' %t'
endfunction
call ale#linter#Define('go', {
\ 'name': 'golint',
\ 'executable': 'golint',
\ 'command': g:ale#util#stdin_wrapper . ' .go golint',
\ 'callback': 'ale#handlers#HandleUnixFormatAsWarning',
\ 'output_stream': 'both',
\ 'executable': {b -> ale#Var(b, 'go_golint_executable')},
\ 'command': function('ale_linters#go#golint#GetCommand'),
\ 'callback': 'ale#handlers#unix#HandleAsWarning',
\})

View File

@@ -0,0 +1,57 @@
" Author: Ben Reedy <https://github.com/breed808>, Jeff Willette <jrwillette88@gmail.com>
" Description: Adds support for the gometalinter suite for Go files
call ale#Set('go_gometalinter_options', '')
call ale#Set('go_gometalinter_executable', 'gometalinter')
call ale#Set('go_gometalinter_lint_package', 0)
function! ale_linters#go#gometalinter#GetCommand(buffer) abort
let l:filename = expand('#' . a:buffer . ':t')
let l:options = ale#Var(a:buffer, 'go_gometalinter_options')
let l:lint_package = ale#Var(a:buffer, 'go_gometalinter_lint_package')
" BufferCdString is used so that we can be sure the paths output from gometalinter can
" be calculated to absolute paths in the Handler
if l:lint_package
return ale#path#BufferCdString(a:buffer)
\ . '%e'
\ . (!empty(l:options) ? ' ' . l:options : '') . ' .'
endif
return ale#path#BufferCdString(a:buffer)
\ . '%e'
\ . ' --include=' . ale#Escape(ale#util#EscapePCRE(l:filename))
\ . (!empty(l:options) ? ' ' . l:options : '') . ' .'
endfunction
function! ale_linters#go#gometalinter#GetMatches(lines) abort
let l:pattern = '\v^([a-zA-Z]?:?[^:]+):(\d+):?(\d+)?:?:?(warning|error):?\s\*?(.+)$'
return ale#util#GetMatches(a:lines, l:pattern)
endfunction
function! ale_linters#go#gometalinter#Handler(buffer, lines) abort
let l:dir = expand('#' . a:buffer . ':p:h')
let l:output = []
for l:match in ale_linters#go#gometalinter#GetMatches(a:lines)
" l:match[1] will already be an absolute path, output from gometalinter
call add(l:output, {
\ 'filename': ale#path#GetAbsPath(l:dir, l:match[1]),
\ 'lnum': l:match[2] + 0,
\ 'col': l:match[3] + 0,
\ 'type': tolower(l:match[4]) is# 'warning' ? 'W' : 'E',
\ 'text': l:match[5],
\})
endfor
return l:output
endfunction
call ale#linter#Define('go', {
\ 'name': 'gometalinter',
\ 'executable': {b -> ale#Var(b, 'go_gometalinter_executable')},
\ 'command': function('ale_linters#go#gometalinter#GetCommand'),
\ 'callback': 'ale_linters#go#gometalinter#Handler',
\ 'lint_file': 1,
\})

View File

@@ -0,0 +1,15 @@
" Author: Ben Reedy <https://github.com/breed808>
" Description: gosimple for Go files
function! ale_linters#go#gosimple#GetCommand(buffer) abort
return ale#path#BufferCdString(a:buffer) . ' gosimple .'
endfunction
call ale#linter#Define('go', {
\ 'name': 'gosimple',
\ 'executable': 'gosimple',
\ 'command': function('ale_linters#go#gosimple#GetCommand'),
\ 'callback': 'ale#handlers#go#Handler',
\ 'output_stream': 'both',
\ 'lint_file': 1,
\})

19
ale_linters/go/gotype.vim Normal file
View File

@@ -0,0 +1,19 @@
" Author: Jelte Fennema <github-public@jeltef.nl>
" Description: gotype for Go files
function! ale_linters#go#gotype#GetCommand(buffer) abort
if expand('#' . a:buffer . ':p') =~# '_test\.go$'
return ''
endif
return ale#path#BufferCdString(a:buffer) . ' gotype -e .'
endfunction
call ale#linter#Define('go', {
\ 'name': 'gotype',
\ 'output_stream': 'stderr',
\ 'executable': 'gotype',
\ 'command': function('ale_linters#go#gotype#GetCommand'),
\ 'callback': 'ale#handlers#go#Handler',
\ 'lint_file': 1,
\})

View File

@@ -1,17 +1,27 @@
" Author: neersighted <bjorn@neersighted.com>
" Description: go vet for Go files
"
" Author: John Eikenberry <jae@zhar.net>
" Description: updated to work with go1.10
if exists('g:loaded_ale_linters_go_govet')
finish
endif
call ale#Set('go_go_executable', 'go')
call ale#Set('go_govet_options', '')
let g:loaded_ale_linters_go_govet = 1
function! ale_linters#go#govet#GetCommand(buffer) abort
let l:options = ale#Var(a:buffer, 'go_govet_options')
return ale#path#BufferCdString(a:buffer) . ' '
\ . ale#Var(a:buffer, 'go_go_executable') . ' vet '
\ . (!empty(l:options) ? ' ' . l:options : '')
\ . ' .'
endfunction
call ale#linter#Define('go', {
\ 'name': 'go vet',
\ 'name': 'govet',
\ 'aliases': ['go vet'],
\ 'output_stream': 'stderr',
\ 'executable': 'go',
\ 'command': g:ale#util#stdin_wrapper . ' .go go vet',
\ 'callback': 'ale#handlers#HandleUnixFormatAsError',
\ 'executable': {b -> ale#Var(b, 'go_go_executable')},
\ 'command': function('ale_linters#go#govet#GetCommand'),
\ 'callback': 'ale#handlers#go#Handler',
\ 'lint_file': 1,
\})

Some files were not shown because too many files have changed in this diff Show More