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
Vidar Holen
33c78b7c95
Track variables created through coproc.
2015-01-27 10:11:17 -08:00
Vidar Holen
a485482979
Add support for coproc
2015-01-26 22:21:04 -08:00
Vidar Holen
a8ff7a02fd
Fix $10 warning triggering for $?!, and also warn about $arr[index].
2014-11-22 10:09:19 -08:00
Vidar Holen
d9dd58bec8
Warn about 'for $var in values'.
2014-11-09 16:22:01 -08:00
Vidar Holen
af1bb93aba
Better warnings for repeated ;;s
2014-11-09 14:33:36 -08:00
Vidar Holen
e909c8ac42
More lenient line feed handling in test expressions.
2014-11-08 15:35:06 -08:00
Vidar Holen
9dadce96c0
Improve messages for missing 'then' statements.
2014-10-12 16:17:03 -07:00
Vidar Holen
a69e27b774
Warn about swapped !# in the shebang.
2014-10-11 12:35:45 -07:00
Vidar Holen
2f3533fff6
Improve warnings for $ in (()). Also improves array subscripts.
2014-08-16 17:08:57 -07:00
Vidar Holen
8494509150
Warn about missing shebangs.
2014-08-09 17:32:42 -07:00
Vidar Holen
8ba1f2fdf2
Better handling of directories and inaccessible files.
2014-08-08 09:36:17 -07:00
Vidar Holen
b000b05507
Parse empty and comment-only backtick expansions.
2014-07-26 12:07:59 -07:00
Vidar Holen
b9784cbcc0
Parse let arguments as arithmetic expressions.
2014-06-22 13:23:44 -07:00
Vidar Holen
1a3f6aadaf
Support indices in array declarations
2014-06-22 10:35:45 -07:00
Vidar Holen
0fd351404f
Allow escape sequences in here documents.
2014-06-16 14:18:29 -07:00
Vidar Holen
c11c0196d5
Fixed broken parsing of <( in arithmetics
2014-06-10 00:42:07 -07:00
Vidar Holen
fc421adb45
Reworked arithmetics to allow composite terms
2014-06-07 22:09:34 -07:00
Vidar Holen
3dd592a02a
Support ;& and ;;& in case statements
2014-06-07 12:23:42 -07:00
Rodrigo Setti
5dac723593
Collection of HLint fixes
...
http://community.haskell.org/~ndm/hlint/
2014-05-31 22:20:49 +00:00
Rodrigo Setti
0a9ed917e7
Test Suite in Cabal (cabal test)
...
Please run using "cabal test --show-details=streaming", there's a known
issue about this that was fixed in the latest version of cabal:
https://github.com/haskell/cabal/issues/1810
2014-05-31 01:30:23 +00:00
Vidar Holen
fdce0116da
Fix parsing {} in regex
2014-05-13 19:20:34 -07:00
Vidar Holen
c4181d45d2
Warn about suspicious IFS, such as IFS="\n"
2014-05-10 15:37:02 -07:00
Vidar Holen
680f838c63
Warn about literal, unquoted {/}
2014-05-10 14:07:53 -07:00
Vidar Holen
fd909eeca0
Fix parsing of &;; in case statements
2014-05-10 11:29:30 -07:00
Vidar Holen
c566efd442
Warn about UTF-8 BOMs in scripts.
2014-05-03 10:37:12 -07:00
Vidar Holen
47c220d59c
Removed noisy SC1000 about unescaped $s
2014-05-03 10:19:01 -07:00
Vidar Holen
033ce6d941
Allow zsh =(..) process substitution
2014-05-02 20:36:38 -07:00
Vidar Holen
0a263579e0
Support for zsh short form for loops and anonymous functions
2014-04-13 13:37:37 -07:00
Vidar Holen
67f4a0d6eb
Accept and warn about capitalization in keywords.
2014-03-15 16:08:33 -07:00
Vidar Holen
632c1614a1
Added support for |&
2014-03-01 10:05:43 -08:00
Vidar Holen
d07294810b
Allow \n before and after ||/&& in [[ ]]
2014-02-28 18:46:10 -08:00
Vidar Holen
661091a9da
Added better message for SC1007, for 'var= value'
2014-02-12 18:26:41 -08:00
Vidar Holen
2ec60c2627
Added double prime to list of unicode quotes.
2014-02-08 14:15:04 -08:00
Vidar Holen
8b4909b238
Improve warnings for missing quotes.
2014-02-08 14:10:45 -08:00
Vidar Holen
968e34e002
Parse forward ticks (acute accents) just like backticks and warn.
2014-02-08 09:50:20 -08:00
Vidar Holen
c5141b77bf
Fixed parser not accepting `` in arithmetic contex
2014-02-03 16:45:48 -08:00
Vidar Holen
075d58ee90
Replaced parser error for 'function' with shell-aware check.
2014-02-02 13:39:44 -08:00
Vidar Holen
76a39f254b
Refactoring, 25% speedup.
...
* Checks now use Writer monad instead of State
* Parser no longer emits notes unrelated to parsing.
* All checks are now passed a parameter value, containing shell type,
map from notes to parents and such. This eliminates recalculation
and removes the need for a special group of parent examining checks.
2014-02-02 04:59:17 -08:00
Vidar Holen
e8634a3c27
Removed duplicate check for [[ a == b + 1 ]]
2014-02-01 20:45:44 -08:00
Vidar Holen
9ae776530b
Check for [[ i + 1 = 2 ]]
2014-01-27 22:47:48 -08:00
Vidar Holen
4262c4b1bf
Allow {} in arithmetic for loops
2014-01-26 12:44:51 -08:00
Vidar Holen
74ea5eaeec
Parse but warn about "else if"
2014-01-25 14:12:31 -08:00
Vidar Holen
43ed5e748d
Allow '# shellcheck disable=SC1234' to ignore by code.
2014-01-16 23:08:56 -08:00
Vidar Holen
5b4729d940
Parser: allow subshell function definitions
2013-12-30 09:50:14 -08:00
Vidar Holen
8c00850134
Minor performance tweaks (~10% improvement)
2013-12-15 18:43:34 -08:00
Vidar Holen
95ebe1cd07
Fixed parser error for '..; done| ..'
2013-12-15 14:39:47 -08:00
Vidar Holen
da51b14789
Parser: accept here doc token strings more liberally
2013-12-14 15:20:15 -08:00
Vidar Holen
7be8485b8b
Fixed parsing of 'time' in front of compound commands
2013-12-14 14:44:47 -08:00
Vidar Holen
a4d36ba0d2
Warn about while read f; do ssh "$f"; done
2013-11-29 23:05:41 -08:00
Vidar Holen
d4bc0f6e10
Don't require separator before do in 'for i do ..'
2013-11-29 16:22:37 -08:00
Vidar Holen
1011ae7b3c
Fixed incorrect parsing of [ foo -a -f bar ]
2013-11-24 18:49:49 -08:00
Vidar Holen
a793e09bab
Added hint to suggest missing ;; in case
2013-11-17 14:41:55 -08:00
Vidar Holen
d8b5d6393a
\" should not be treated specially in `backticks`
2013-11-12 18:27:18 -08:00
Vidar Holen
e5e08df1d9
Numbered messages
2013-11-10 10:55:46 -08:00
Vidar Holen
83c3dd3418
Accept ./? in function names
2013-11-03 13:58:06 -08:00
Vidar Holen
71bc26aefa
Fixed parsing of | outside of groups in =~ regex
2013-11-03 13:13:24 -08:00
Vidar Holen
6d0bfcf37a
Fixed parser accepting spaces after here doc token
2013-10-27 16:02:27 -07:00
Vidar Holen
e0bbb89d00
Fixed parser bug where }> wasn't recognized as Rbrace
2013-10-27 15:36:47 -07:00
Vidar Holen
b1af7bb8f2
Fixed parser error for 'for ((;;)) ; do'
2013-10-11 20:03:55 -07:00
Vidar Holen
b439f02b8e
Improved assignment parsing: track indices and += vs =
2013-10-06 14:44:43 -07:00
Vidar Holen
710a28c572
Revert "Fixed parsing for 'eval var=(values)'", because it fails for 'eval $x=foo'
...
This reverts commit 34e69556b1
.
2013-09-29 21:35:20 -07:00
Vidar Holen
702d57b655
Warn about unicode quotes
2013-09-29 21:22:42 -07:00
Vidar Holen
34e69556b1
Fixed parsing for 'eval var=(values)'
2013-09-29 21:00:29 -07:00
Vidar Holen
5a959bc340
Fix parser errors for unclosed $( in here docs
2013-09-21 16:27:17 -07:00
Vidar Holen
7630136d6c
Move command and variable lists to ShellCheck.Data.
2013-09-12 18:50:33 -07:00
Vidar Holen
dacb8c597f
Fixed a series of extglob parsing oddities and edge cases
2013-09-04 13:02:30 -07:00
Vidar Holen
bb49cf8e65
Parse the contents of unquoted here documents
2013-08-31 17:03:15 -07:00