Commit graph

215 commits

Author SHA1 Message Date
Vidar Holen
43c26061b9 Improve parsing for ambiguous $((foo) ) and ((foo) ). 2016-06-26 22:13:48 -07:00
Vidar Holen
eb2472ada8 Merge branch 'master' of github.com:koalaman/shellcheck 2016-06-26 14:40:43 -07:00
Vidar Holen
3e5ecaa262 Parse indices of associative arrays properly 2016-06-26 14:39:49 -07:00
Russell Harmon
7f5f5b7fb5 Make SC1035 emit a proper end column
Example JSON output:
```
$ shellcheck -s bash -f json /dev/stdin <<< "[[0 -eq 1 ]]"
[{"file":"/tmp/zshNCNwPz","line":1,"column":1,"endColumn":3,"level":"error","code":1035,"message":"You need a space after the [[ and before the ]]."}]
```
2016-06-18 14:59:47 -07:00
Russell Harmon
856d57f7d8 PositionedComment and ParseNote contains end cols.
This change makes PositionedComment and ParseNote contain end columns.
It additionally modifies the JSON formatter to show the end column in an
"endColumn" property. No modifications to the messages shown by any
other formatter have been made.

Currently, all checks set the end column to the start column. It should
now be possible however to start setting the end column in the parser.
Additional work is needed to set the end column during AST analysis.
2016-06-18 14:58:00 -07:00
Vidar Holen
40136fe249 Fix parsing of [[ a =~ {$var} ]] 2016-05-08 12:19:25 -07:00
Vidar Holen
86999ded1f Improve 'let' parsing, trigger unused var for ((a=1)) 2016-04-30 13:45:39 -07:00
Vidar Holen
2f0ae44de4 Fix parsing of here documents 2016-04-16 19:14:02 -07:00
Vidar Holen
f835c2d4c1 Fix handling of spaces in shebangs. 2016-04-16 09:42:07 -07:00
Vidar Holen
2957fb64c9 Allow parsing 'time ( foo )' 2016-03-19 16:13:54 -07:00
Vidar Holen
944313c6ba Directives after the shebang now apply to the entire script.
Also adds support for the shell= directive.
2016-03-08 20:16:16 -08:00
Vidar Holen
8a3bd25f7c Improve error for missing final ) in $((foo) 2016-02-07 14:16:40 -08:00
Vidar Holen
825c1b5d22 Support parsing $((( as $( ((, with warning. 2016-02-06 22:19:29 -08:00
Vidar Holen
92473b512a Add warning for trailing spaces after \ breaks. 2016-02-01 20:20:34 -08:00
Vidar Holen
528381796e Allow escaped characters in [..] globs 2015-12-13 10:19:48 -08:00
Vidar Holen
c7964a7a78 Warn about missing space in 'function foo{'. 2015-12-05 16:09:44 -08:00
Vidar Holen
1a5296659b Properly handle escaped double quotes in quoted backtick expressions. 2015-11-01 12:30:33 -08:00
Vidar Holen
ffb9578a98 Support parsing quoted test operators, and also warn about unicode dashes. 2015-10-17 16:33:21 -07:00
Vidar Holen
630f20e888 Count ~/ as dynamic for resolving source paths. 2015-10-17 10:50:07 -07:00
Vidar Holen
d01b59a827 Don't warn about empty assignments when at end of command. 2015-10-13 12:16:39 -07:00
Vidar Holen
55692926b9 Don't consider {} and {a} brace expansions. 2015-10-03 21:12:28 -07:00
Vidar Holen
0f00de80fd Support {n}>&1 named file descriptors. 2015-09-05 09:48:34 -07:00
Vidar Holen
c808c9b6fe End here doc tokens on < and >. 2015-09-03 20:58:21 -07:00
Vidar Holen
bf9297e2a5 Parse ksh ${ ..; } expansions. 2015-09-03 20:26:02 -07:00
Vidar Holen
7f547cc0ec Warn when using unescaped parens in eval. 2015-09-02 21:11:39 -07:00
Vidar Holen
01c27dc96a Parse double arithmetic negation, i.e. (( !!a )); 2015-09-02 19:31:22 -07:00
Matteo Beniamino
f054e2e2cc Added FlexibleContexts extension in Parser.hs to fix compilation. 2015-08-23 10:55:18 +02:00
Vidar Holen
090e09e4ca Support nested trinary expressions. 2015-08-22 14:20:20 -07:00
Vidar Holen
d0029ae1d4 Ignore === in assignments, and add a special warning 1097 for ==. 2015-08-22 12:20:03 -07:00
Vidar Holen
eea7bc326e Improved parsing error expected messages. 2015-08-22 11:06:49 -07:00
Vidar Holen
73cd2cdd6f Also warn about missing 'then' before 'else' 2015-08-19 20:27:14 -07:00
Vidar Holen
a01862bc12 Adds a #shellcheck source=file directive to override source statements. 2015-08-19 19:09:55 -07:00
Vidar Holen
f31c8bd3a3 Preliminary support for sourced files. 2015-08-16 17:18:51 -07:00
Vidar Holen
f85441add9 Removed unused pragma. 2015-08-15 13:25:34 -07:00
Vidar Holen
67cfcfd206 Separated formatters into multiple files. 2015-08-15 12:51:13 -07:00
Vidar Holen
72eeafe002 Some cleanup to make room for future improvements. 2015-08-15 09:34:19 -07:00
Vidar Holen
cbda90eeb5 Warn about zero-width spaces. 2015-07-25 13:59:00 -07:00
Vidar Holen
0522a5f0bd Allow escaped linefeeds to break lines in $(()) 2015-07-15 09:01:29 -07:00
Vidar Holen
3d83b87c9a Added copyright notice to individual source files. 2015-06-30 19:21:12 -07:00
Vidar Holen
349dfdab35 Relicense from AGPL v3 to GPL v3. 2015-06-20 09:52:07 -07:00
Vidar Holen
ca37794b7c Allow empty scripts, $()s and <()s. Also improves related error messages. 2015-06-14 14:30:11 -07:00
Vidar Holen
6076f0b1da Parse variables and subexpressions in brace expansions 2015-05-10 12:49:50 -07:00
Vidar Holen
93debd3556 Add expect to list of known non-shells 2015-04-02 19:22:47 -07:00
Vidar Holen
47b971c582 Declared FlexibleContexts for GHC 7.10 2015-03-31 21:59:03 -07:00
Vidar Holen
ed56a837c3 Killed Zsh support 2015-03-20 10:03:56 -07:00
Vidar Holen
0a80188363 Fix parsing of ((a?b:c)) 2015-03-08 18:11:23 -07:00
Vidar Holen
0e1a64b6ba Warn about export/declare/local masking return values. 2015-03-08 14:17:43 -07:00
Vidar Holen
0a2cf208c8 Fixed quoted ~ warning to only trigger for ~/ 2015-03-07 23:48:01 -08:00
Vidar Holen
0d74140650 Multiple wrong assignment warning fixes 2015-03-07 20:15:04 -08:00
Vidar Holen
955ad60823 Fixed parser errors not being excluded by -e 2015-03-01 13:44:57 -08:00