From 7c2f5e83ab99a388fd95b8030c98a9e9ceab3205 Mon Sep 17 00:00:00 2001 From: Horacio Sanson Date: Fri, 4 Oct 2019 21:54:33 +0900 Subject: [PATCH] Fix sign parser to be language independent. --- autoload/ale/sign.vim | 12 +++++++----- test/sign/test_sign_parsing.vader | 19 +++++++++++++++---- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/autoload/ale/sign.vim b/autoload/ale/sign.vim index 79352f47..7430c7f2 100644 --- a/autoload/ale/sign.vim +++ b/autoload/ale/sign.vim @@ -178,11 +178,12 @@ function! ale#sign#ParsePattern() abort if has('nvim-0.4.0') || (v:version >= 801 && has('patch614')) " Matches output like : " line=4 id=1 group=ale name=ALEErrorSign - " строка=1 id=1000001 group=ale имя=ALEErrorSign - " 行=1 識別子=1000001 group=ale 名前=ALEWarningSign - " línea=12 id=1000001 group=ale nombre=ALEWarningSign - " riga=1 id=1000001 group=ale nome=ALEWarningSign - let l:pattern = '\v^.*\=(\d+).*\=(\d+).*group\=ale.*\=(ALE[a-zA-Z]+Sign)' + " строка=1 id=1000001 группа=ale имя=ALEErrorSign + " 行=1 識別子=1000001 グループ=ale 名前=ALEWarningSign + " línea=12 id=1000001 grupo=ale nombre=ALEWarningSign + " riga=1 id=1000001 gruppo=ale nome=ALEWarningSign + " Zeile=235 id=1000001 Gruppe=ale Name=ALEErrorSign + let l:pattern = '\v^.*\=(\d+).*\=(\d+).*\=ale>.*\=(ALE[a-zA-Z]+Sign)' else " Matches output like : " line=4 id=1 name=ALEErrorSign @@ -190,6 +191,7 @@ function! ale#sign#ParsePattern() abort " 行=1 識別子=1000001 名前=ALEWarningSign " línea=12 id=1000001 nombre=ALEWarningSign " riga=1 id=1000001 nome=ALEWarningSign + " Zeile=235 id=1000001 Name=ALEErrorSign let l:pattern = '\v^.*\=(\d+).*\=(\d+).*\=(ALE[a-zA-Z]+Sign)' endif diff --git a/test/sign/test_sign_parsing.vader b/test/sign/test_sign_parsing.vader index de2a3e8c..8fb7f8e0 100644 --- a/test/sign/test_sign_parsing.vader +++ b/test/sign/test_sign_parsing.vader @@ -19,7 +19,7 @@ Execute (Parsing Russian signs should work): if has('nvim-0.4.0') || (v:version >= 801 && has('patch614')) AssertEqual \ [0, [[1, 1000001, 'ALEErrorSign']]], - \ ale#sign#ParseSigns([' строка=1 id=1000001 group=ale имя=ALEErrorSign']) + \ ale#sign#ParseSigns([' строка=1 id=1000001 группа=ale имя=ALEErrorSign']) else AssertEqual \ [0, [[1, 1000001, 'ALEErrorSign']]], @@ -30,7 +30,7 @@ Execute (Parsing Japanese signs should work): if has('nvim-0.4.0') || (v:version >= 801 && has('patch614')) AssertEqual \ [0, [[1, 1000001, 'ALEWarningSign']]], - \ ale#sign#ParseSigns([' 行=1 識別子=1000001 group=ale 名前=ALEWarningSign']) + \ ale#sign#ParseSigns([' 行=1 識別子=1000001 グループ=ale 名前=ALEWarningSign']) else AssertEqual \ [0, [[1, 1000001, 'ALEWarningSign']]], @@ -41,7 +41,7 @@ Execute (Parsing Spanish signs should work): if has('nvim-0.4.0') || (v:version >= 801 && has('patch614')) AssertEqual \ [0, [[12, 1000001, 'ALEWarningSign']]], - \ ale#sign#ParseSigns([' línea=12 id=1000001 group=ale nombre=ALEWarningSign']) + \ ale#sign#ParseSigns([' línea=12 id=1000001 grupo=ale nombre=ALEWarningSign']) else AssertEqual \ [0, [[12, 1000001, 'ALEWarningSign']]], @@ -52,13 +52,24 @@ Execute (Parsing Italian signs should work): if has('nvim-0.4.0') || (v:version >= 801 && has('patch614')) AssertEqual \ [0, [[1, 1000001, 'ALEWarningSign']]], - \ ale#sign#ParseSigns([' riga=1 id=1000001, group=ale nome=ALEWarningSign']) + \ ale#sign#ParseSigns([' riga=1 id=1000001, gruppo=ale nome=ALEWarningSign']) else AssertEqual \ [0, [[1, 1000001, 'ALEWarningSign']]], \ ale#sign#ParseSigns([' riga=1 id=1000001, nome=ALEWarningSign']) endif +Execute (Parsing German signs should work): + if has('nvim-0.4.0') || (v:version >= 801 && has('patch614')) + AssertEqual + \ [0, [[235, 1000001, 'ALEErrorSign']]], + \ ale#sign#ParseSigns([' Zeile=235 id=1000001 Gruppe=ale Name=ALEErrorSign']) + else + AssertEqual + \ [0, [[235, 1000001, 'ALEErrorSign']]], + \ ale#sign#ParseSigns([' Zeile=235 id=1000001 Name=ALEErrorSign']) + endif + Execute (The sign parser should indicate if the dummy sign is set): if has('nvim-0.4.0') || (v:version >= 801 && has('patch614')) AssertEqual