1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
|
Before:
runtime ale_linters/prolog/swipl.vim
After:
call ale#linter#Reset()
Execute (The swipl handler should handle oneline warning / error):
call ale#test#SetFilename('test.pl')
AssertEqual
\ [
\ {
\ 'lnum': 5,
\ 'col': 1,
\ 'text': 'Syntax error: Operator expected',
\ 'type': 'E',
\ },
\ ],
\ ale_linters#prolog#swipl#Handle(bufnr(''), [
\ 'ERROR: /path/to/test.pl:5:1: Syntax error: Operator expected',
\ ])
Execute (The swipl handler should handle a warning / error of two lines):
call ale#test#SetFilename('test.pl')
AssertEqual
\ [
\ {
\ 'lnum': 9,
\ 'col': 0,
\ 'text': 'Singleton variables: [M]',
\ 'type': 'W',
\ },
\ ],
\ ale_linters#prolog#swipl#Handle(bufnr(''), [
\ 'Warning: /path/to/test.pl:9:',
\ ' Singleton variables: [M]',
\ ])
Execute (The swipl handler should handle a warning / error of two lines in the new format):
call ale#test#SetFilename('test.pl')
AssertEqual
\ [
\ {
\ 'lnum': 9,
\ 'col': 0,
\ 'text': 'Singleton variables: [M]',
\ 'type': 'W',
\ },
\ ],
\ ale_linters#prolog#swipl#Handle(bufnr(''), [
\ 'Warning: /path/to/test.pl:9:',
\ 'Warning: Singleton variables: [M]',
\ ])
Execute (The swipl handler should join three or more lines with '. '):
call ale#test#SetFilename('test.pl')
AssertEqual
\ [
\ {
\ 'lnum': 10,
\ 'col': 0,
\ 'text': 'Clauses of fib/2 are not together in the source-file. Earlier definition at /path/to/test.pl:7. Current predicate: f/0. Use :- discontiguous fib/2. to suppress this message',
\ 'type': 'W',
\ },
\ ],
\ ale_linters#prolog#swipl#Handle(bufnr(''), [
\ 'Warning: /path/to/test.pl:10:',
\ ' Clauses of fib/2 are not together in the source-file',
\ ' Earlier definition at /path/to/test.pl:7',
\ ' Current predicate: f/0',
\ ' Use :- discontiguous fib/2. to suppress this message',
\ ])
Execute (The swipl handler should ignore warnings / errors 'No permission to call sandboxed ...'):
call ale#test#SetFilename('test.pl')
AssertEqual
\ [],
\ ale_linters#prolog#swipl#Handle(bufnr(''), [
\ 'ERROR: /path/to/test.pl:11:',
\ ' No permission to call sandboxed `''$set_predicate_attribute''(_G3416:_G3417,_G3413,_G3414)''',
\ ' Reachable from:',
\ ' system:''$set_pattr''(A,B,C,D)',
\ ' system:''$set_pattr''(vimscript:A,B,C)',
\ ' vimscript: (multifile A)',
\ 'ERROR: /path/to/test.pl:12:',
\ ' No permission to call sandboxed `''$set_predicate_attribute''(_G205:_G206,_G202,_G203)''',
\ ' Reachable from:',
\ ' system:''$set_pattr''(A,B,C,D)',
\ ' system:''$set_pattr''(vimscript:A,B,C)',
\ ' vimscript: (multifile A)',
\ 'ERROR: /path/to/test.pl:13:',
\ ' No permission to call sandboxed `''$set_predicate_attribute''(_G1808:_G1809,_G1805,_G1806)''',
\ ' Reachable from:',
\ ' system:''$set_pattr''(A,B,C,D)',
\ ' system:''$set_pattr''(vimscript:A,B,C)',
\ ' vimscript: (multifile A)',
\ ])
Execute (The swipl handler should join three or more lines with '. ' on latest swipl):
call ale#test#SetFilename('test.pl')
AssertEqual
\ [
\ {
\ 'lnum': 10,
\ 'col': 0,
\ 'text': 'Clauses of fib/2 are not together in the source-file. Earlier definition at /path/to/test.pl:7. Current predicate: f/0. Use :- discontiguous fib/2. to suppress this message',
\ 'type': 'W',
\ },
\ ],
\ ale_linters#prolog#swipl#Handle(bufnr(''), [
\ 'Warning: /path/to/test.pl:10:',
\ 'Warning: Clauses of fib/2 are not together in the source-file',
\ 'Warning: Earlier definition at /path/to/test.pl:7',
\ 'Warning: Current predicate: f/0',
\ 'Warning: Use :- discontiguous fib/2. to suppress this message',
\ ])
Execute (The swipl handler should ignore warnings / errors 'No permission to call sandboxed with latest swpl...'):
call ale#test#SetFilename('test.pl')
AssertEqual
\ [],
\ ale_linters#prolog#swipl#Handle(bufnr(''), [
\ 'ERROR: /path/to/test.pl:11:',
\ 'ERROR: No permission to call sandboxed `''$set_predicate_attribute''(_G3416:_G3417,_G3413,_G3414)''',
\ 'ERROR: Reachable from:',
\ 'ERROR: system:''$set_pattr''(A,B,C,D)',
\ 'ERROR: system:''$set_pattr''(vimscript:A,B,C)',
\ 'ERROR: vimscript: (multifile A)',
\ 'ERROR: /path/to/test.pl:12:',
\ 'ERROR: No permission to call sandboxed `''$set_predicate_attribute''(_G205:_G206,_G202,_G203)''',
\ 'ERROR: Reachable from:',
\ 'ERROR: system:''$set_pattr''(A,B,C,D)',
\ 'ERROR: system:''$set_pattr''(vimscript:A,B,C)',
\ 'ERROR: vimscript: (multifile A)',
\ 'ERROR: /path/to/test.pl:13:',
\ 'ERROR: No permission to call sandboxed `''$set_predicate_attribute''(_G1808:_G1809,_G1805,_G1806)''',
\ 'ERROR: Reachable from:',
\ 'ERROR: system:''$set_pattr''(A,B,C,D)',
\ 'ERROR: system:''$set_pattr''(vimscript:A,B,C)',
\ 'ERROR: vimscript: (multifile A)',
\ ])
Execute (The swipl handler should handle a warning / error with no line number):
call ale#test#SetFilename('test.pl')
AssertEqual
\ [
\ {
\ 'lnum': 1,
\ 'col': 0,
\ 'text': 'Exported procedure module_name:pred/0 is not defined',
\ 'type': 'E',
\ },
\ ],
\ ale_linters#prolog#swipl#Handle(bufnr(''), [
\ 'ERROR: Exported procedure module_name:pred/0 is not defined',
\ ])
|