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`
This commit is contained in:
Fred Emmott
2018-07-27 13:50:59 -07:00
parent 5f024eda09
commit 238201805d
10 changed files with 126 additions and 61 deletions

42
doc/ale-hack.txt Normal file
View File

@@ -0,0 +1,42 @@
===============================================================================
ALE Hack Integration *ale-hack-options*
===============================================================================
hack *ale-hack-hack*
g:ale_hack_hhclient_executable *g:ale_hack_hhclient_executable*
*b:ale_hack_hhclient_executable*
Type: |String|
Default: `'hh_client'`
This variable can be set to use a specific executable to interact with the
Hack typechecker.
===============================================================================
hackfmt *ale-hack-hackfmt*
g:ale_hack_hackfmt_options *g:ale_hack_hackfmt_options*
*b:ale_hack_hackfmt_options*
Type: |String|
Default: `''`
This variable can be set to pass additional options to the hackfmt fixer.
===============================================================================
hhast *ale-hack-hhast*
g:ale_hack_hhast_executable *g:ale_hack_hhast_executable*
*b:ale_hack_hhast_executable*
Type: |String|
Default: `'vendor/bin/hhast-lint'`
This variable can be set to use a specific executable to interact with the
Hack typechecker.
===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:

View File

@@ -1,24 +1,6 @@
===============================================================================
ALE PHP Integration *ale-php-options*
===============================================================================
hack *ale-php-hack*
There are no options for this linter.
===============================================================================
hackfmt *ale-php-hackfmt*
g:ale_php_hackfmt_options *g:ale_php_hackfmt_options*
*b:ale_php_hackfmt_options*
Type: |String|
Default: `''`
This variable can be set to pass additional options to the hackfmt fixer.
===============================================================================
langserver *ale-php-langserver*

View File

@@ -96,6 +96,10 @@ CONTENTS *ale-contents*
eslint..............................|ale-graphql-eslint|
gqlint..............................|ale-graphql-gqlint|
prettier............................|ale-graphql-prettier|
hack..................................|ale-hack-options|
hack................................|ale-hack-hack|
hackfmt.............................|ale-hack-hackfmt|
hhast...............................|ale-hack-hhast|
handlebars............................|ale-handlebars-options|
ember-template-lint.................|ale-handlebars-embertemplatelint|
haskell...............................|ale-haskell-options|
@@ -171,8 +175,6 @@ CONTENTS *ale-contents*
perlcritic..........................|ale-perl-perlcritic|
perltidy............................|ale-perl-perltidy|
php...................................|ale-php-options|
hack................................|ale-php-hack|
hackfmt.............................|ale-php-hackfmt|
langserver..........................|ale-php-langserver|
phan................................|ale-php-phan|
phpcbf..............................|ale-php-phpcbf|
@@ -367,6 +369,7 @@ Notes:
* GLSL: glslang, `glslls`
* Go: `gofmt`, `goimports`, `go vet`!!, `golint`, `gotype`!!, `gometalinter`!!, `go build`!!, `gosimple`!!, `staticcheck`!!
* GraphQL: `eslint`, `gqlint`, `prettier`
* Hack: `hack`, `hackfmt`, `hhast`
* Haml: `haml-lint`
* Handlebars: `ember-template-lint`
* Haskell: `brittany`, `ghc`, `cabal-ghc`, `stack-ghc`, `stack-build`!!, `ghc-mod`, `stack-ghc-mod`, `hlint`, `hdevtools`, `hfmt`
@@ -393,7 +396,7 @@ Notes:
* Objective-C++: `clang`
* OCaml: `merlin` (see |ale-ocaml-merlin|), `ols`
* Perl: `perl -c`, `perl-critic`, `perltidy`
* PHP: `hack`, `hackfmt`, `langserver`, `phan`, `php -l`, `phpcs`, `phpmd`, `phpstan`, `phpcbf`, `php-cs-fixer`
* PHP: `langserver`, `phan`, `php -l`, `phpcs`, `phpmd`, `phpstan`, `phpcbf`, `php-cs-fixer`
* PO: `alex`!!, `msgfmt`, `proselint`, `write-good`
* Pod: `alex`!!, `proselint`, `write-good`
* Pony: `ponyc`