Commit graph

58 commits

Author SHA1 Message Date
Cyril Roelandt
f34c089685 PHP linter: make the path to the executable configurable
Fixes #1388
2018-11-01 18:52:28 +01:00
Matthew Brown
0ed07a9ef5
Update Psalm plugin to use LSP mode 2018-10-19 15:51:16 -04:00
Richard Marmorstein
947360f714 Add psalm linter for PHP (#1893) 2018-09-27 16:48:47 +01:00
matthias
f82ab76833 Added and fixed tests 2018-08-18 20:59:35 +02:00
matthias
02fdfcda58 Added phpcs options support as described in #257 2018-08-16 16:44:41 +02:00
w0rp
217284360d
Simplify the code for most linters and tests with closures 2018-08-02 23:44:12 +01: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
9ddf1b6a05
Make the language option for LSP linters optional 2018-07-04 13:12:58 +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
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
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
719b790574
Close #542 - Add an option for disabling running locally installed executables by default 2018-04-09 19:11:20 +01:00
Stephen Rathbone
78d1f5f5df Fix PHP linter to support PHP 7.2 lint output 2017-12-13 21:23:18 +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
Derrick Nelson
a786e01127 Prevent logging of errors in the php linter. 2017-10-31 20:02:59 -04: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
aca66a54a5 Include sniff code in message 2017-10-26 12:22:08 -04: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
Diego Oliveira
5b986ce5d3 Fix the regex of phpmd 2017-10-22 14:56:09 -02:00
Ruslan Osmanov
a640d3b022 Added g:ale_php_phpstan_configuration option 2017-09-30 23:36:10 +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
a535d07f28 Ban use of ==# or ==? in the codebase, and prefer is# or is? instead 2017-08-08 08:39:13 +01:00
w0rp
39ebb431b6 Document the PHP langserver integration 2017-08-07 13:08:51 +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
84af543907 Fix some bugs so the PHP language server will show errors at least once 2017-07-30 14:42:00 +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
Ardis
7d174b0056 Added phpstan linter for php. (#772)
* Added phpstan linter for php.
2017-07-16 15:04:25 +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
Adriaan Zonnenberg
05970e1b28 Add end columns on php linter #538 2017-05-17 21:28:29 +02:00
Pawel Bogut
d7bdaeeab0 Read errors from stdout only (and make sure they are displayed) 2017-05-08 21:17: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
e97dada261 #427 Implement buffer variable overrides for all linter options 2017-04-16 01:24:08 +01: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
Adriaan Zonnenberg
7dbf32d0d7 PHP: Fix double errors and support fatal errors 2017-04-12 23:59:12 +02: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
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
b2fe1b2567 Copy all loclist items returned from handlers, and set up defaults for convenience 2017-02-26 14:51:22 +00:00
Adriaan Zonnenberg
cca0222cf1 PHP: Make parser work with more error messages 2017-02-18 00:51:33 +01: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
ecbb276805 Replace every stdin-wrapper script with the new %t formatting support 2017-02-11 19:40:57 +00:00
medains
ff096124c6 Linter addition of PHP Mess Detector 2017-02-01 16:28:51 +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
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
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
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