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
This commit is contained in:
Takuya Fujiwara
2018-10-27 01:29:17 +09:00
committed by w0rp
parent 3d74a4f8a6
commit 34318aedf4
5 changed files with 255 additions and 0 deletions

View File

@@ -226,6 +226,8 @@ CONTENTS *ale-contents*
write-good..........................|ale-pod-write-good|
pony..................................|ale-pony-options|
ponyc...............................|ale-pony-ponyc|
prolog................................|ale-prolog-options|
swipl...............................|ale-prolog-swipl|
proto.................................|ale-proto-options|
protoc-gen-lint.....................|ale-proto-protoc-gen-lint|
pug...................................|ale-pug-options|
@@ -453,6 +455,7 @@ Notes:
* PO: `alex`!!, `msgfmt`, `proselint`, `write-good`
* Pod: `alex`!!, `proselint`, `write-good`
* Pony: `ponyc`
* Prolog: `swipl`
* proto: `protoc-gen-lint`
* Pug: `pug-lint`
* Puppet: `languageserver`, `puppet`, `puppet-lint`