Vidar Holen
38bb156a1c
Warn about $_ in POSIX sh ( fixes #1647 )
2019-07-21 21:22:16 -07:00
Vidar Holen
023ae5dfda
Don't warn about printf '%()T' without corresponding argument
2019-07-20 15:10:41 -07:00
Vidar Holen
788cf17076
Fix bad advice for SC2251 ( fixes #1588 )
2019-07-04 19:10:14 -07:00
Vidar Holen
78b8e76066
Also mention globbing in SC2206 ( fixes #1626 )
2019-07-04 17:43:18 -07:00
Vidar Holen
914974bd4f
Don't consider `.*` a glob-like regex ( fixes #1214 )
2019-07-04 17:41:23 -07:00
Vidar Holen
c0d3a98fcd
Add warning for chmod -r ( fixes #1321 )
2019-07-04 16:54:42 -07:00
Vidar Holen
380221a02c
Recognize `read -ra foo` as arrays ( fixes #1636 )
2019-07-03 20:40:41 -07:00
Vidar Holen
ba2c20a08a
Improve message for SC1067
2019-07-03 20:02:14 -07:00
Vidar Holen
be1f1c1ab7
Don't count 'readonly x' as a reference to x ( fixes #1573 )
2019-07-02 20:58:08 -07:00
Vidar Holen
bee4303c32
Add an empty Custom.hs to simplify site-specific patching
2019-07-02 20:07:05 -07:00
Vidar Holen
ef764b60ca
Fix botched variable usage
2019-07-01 23:47:13 -07:00
Vidar Holen
3e3e4fd0cd
Avoid defining flags for non-literal parameters
2019-07-01 23:22:09 -07:00
Vidar Holen
561075ea79
Merge branch 'shflags' of https://github.com/yetamrra/shellcheck into yetamrra-shflags
2019-07-01 20:00:28 -07:00
Vidar Holen
9702f1ff9c
Handle diffs for files without trailing linefeed
2019-06-30 20:19:10 -07:00
Vidar Holen
544047c5af
Warn about ending double quotes just to make $ literal
2019-06-30 18:43:42 -07:00
Vidar Holen
321afa427e
Remove unused parse-time AST warnings
2019-06-30 17:38:17 -07:00
Vidar Holen
c381c5746f
Remove unnecessary lookahead in readDollarLonely
2019-06-30 17:28:15 -07:00
Vidar Holen
eeb7ea01c9
Allow SC2103 to be silenced ( fixes #1591 )
2019-06-30 16:36:45 -07:00
Vidar Holen
3116ed3ae5
Filter warnings by annotations in unit tests
2019-06-30 16:36:03 -07:00
Benjamin Gordon
f6ba500d6b
Add support for basic shflags semantics
...
The shflags command-line flags library creates variables at runtime
with a few well-defined functions. This causes shellcheck to spit out
lots of warnings about unassigned variables, as well as miss warnings
about unused flag variables.
We can address this with two parts:
1. Pretend that the shflags global variables are predefined like other
shell variables so that shellcheck doesn't expect users to set them.
2. Treat DEFINE_string, DEFINE_int, etc. as new commands that create
variables, similar to the existing read, local, mapfile, etc.
Part 1 can theoretically be addresssed without this by following sourced
files, but that doesn't help if people are otherwise not following
external sources.
The new behavior is on by default, similar to automatic bats test
behavior.
Addresses #1597
2019-06-25 12:14:54 -06:00
Vidar Holen
c5aa171a5f
Use mappend over <> for compatibility
2019-06-24 09:02:35 -07:00
Vidar Holen
b1aeee564c
Add a Diff output format
2019-06-23 20:02:01 -07:00
Vidar Holen
e099625e7d
Remove unused ioref
2019-06-23 15:50:48 -07:00
Vidar Holen
5242e384a1
Fix error spans for shebang warnings ( fixes #1620 )
2019-06-23 13:49:08 -07:00
Vidar Holen
7e77bfae49
Improve message for SC2055
2019-06-23 13:48:43 -07:00
Vidar Holen
9059024de6
Merge pull request #1592 from hugopeixoto/fix/SC2016-false-positive
...
SC2016: Don't trigger when using empty backticks
2019-06-19 19:55:34 -07:00
Vidar Holen
61d2112e71
Add missing JSON1.hs
2019-06-02 13:00:38 -07:00
Vidar Holen
9f0ef5983a
Optionally check for unassigned uppercase variables
2019-06-02 10:29:04 -07:00
Vidar Holen
1297ef46d7
Add JSON1 as a separate format, wrap result in an object
2019-06-02 10:28:37 -07:00
Vidar Holen
f4be53eb19
Warn about [ -v var ] for POSIX sh
2019-06-02 10:28:20 -07:00
Vidar Holen
3e7c2bfec0
Warn about [ $a != x ] || [ $a != y ]
2019-06-02 09:26:54 -07:00
Hugo Peixoto
07ffcb626e
SC2016: Don't trigger when using empty backticks
...
When using '``' or '```', it should not suggest using double quotes.
2019-05-27 11:03:24 +01:00
Vidar Holen
95b1185882
Inform about ineffectual ! on commands ( fixes #1531 )
2019-05-22 17:14:28 -07:00
Vidar Holen
8efbecd64a
Don't suggest removing braces from $((${x+1})) ( fixes #1533 )
2019-05-19 15:29:47 -07:00
Vidar Holen
52a9d90e1a
Merge pull request #1580 from virgilwashere/copyright
...
Update Copyright to year 2019; README linting
2019-05-19 12:03:15 -07:00
Vidar Holen
861b63aa77
Specify 'variable' in require-braces
2019-05-14 18:48:41 -07:00
Benjamin Gordon
64c9c83cc8
SC2250: New optional check for braces around variable references
...
Always using braces makes it harder to accidentally change a variable by
pasting other text next to it, but the warning is off by default because
it's definitely a style preference. Omit special and positional
variables from the check because appending additional characters to them
already doesn't change parsing.
2019-05-14 11:01:38 -06:00
Benjamin Gordon
aa3b709b5d
Track whether braces were present in T_DollarBraced
...
References of the form $var and ${var} both map to the same structure in
the AST, which prevents any later analysis functions from distinguishing
them. In preparation for adding checks that need this info, add a Bool
to T_DollarBraced that tracks whether the braces were seen at parsing
time and update all references so that this change is a no-op.
2019-05-14 11:01:38 -06:00
Benjamin Gordon
0358090b3c
Refactor definition of special variables.
...
This ensures that the parser and other places that refer to special
variables can use the same list.
2019-05-14 08:57:56 -06:00
Virgil
ea05271fa3
📝 Update Copyright to year 2019 and Markdown linting
...
- [x] 📝 Update Copyright to year 2019
- [x] 📝 MD009/no-trailing-spaces: Trailing spaces [Expected: 0 or 2; Actual: 1]
- [x] 📝 MD034/no-bare-urls: Bare URL used
- [ ] 📝 ~MD004/ul-style: Unordered list style [Expected: dash; Actual: asterisk]~
- [ ] ~add missing TOC entries~
2019-05-14 20:12:34 +10:00
Vidar Holen
50116e8aee
Don't suggest [[..]] for sh in SC2081 ( fixes #1562 )
2019-05-13 20:45:53 -07:00
Benjamin Gordon
50af8aba29
Add json1 format that ignores tabs
...
The new json1 format works just like json except that it treats tabs as
single characters instead of 8-character tabstops.
The main use case is to allow editors to pass -fjson1 so that they can
consume the json output in a character-oriented way without breaking
backwards compatibility.
Also addresses #1048 .
2019-05-13 10:55:16 -06:00
Vidar Holen
5fb1da6814
Replace verbose checks with optional checks
2019-05-12 19:14:04 -07:00
Vidar Holen
58205a3573
Emit resolved rather than apparent filename for 'source' ( fixes #1579 )
2019-05-12 15:55:37 -07:00
Vidar Holen
d9e419d60f
Add support for source-path directives ( fixes #1577 )
2019-05-09 19:54:41 -07:00
Vidar Holen
a3cd5979a2
Update message for SC2171
2019-05-04 12:54:59 -07:00
Vidar Holen
37b24cc129
Don't warn about "a"b"c" in =~ regex ( fixes #1565 )
2019-05-04 12:18:45 -07:00
Vidar Holen
e2e65e1350
Warn about arithmetic base conversation in sh ( fixes #1547 )
2019-04-29 18:02:44 -07:00
Vidar Holen
9470b9dc31
Don't mention arrays in SC2089 in sh/dash ( fixes #1014 )
2019-04-27 16:22:01 -07:00
Vidar Holen
bf1003eae3
Auto-disable SC2119 when disabling SC2120 ( fixes #703 )
2019-04-27 15:20:07 -07:00