Commit Graph

213 Commits (a825645cbed8d9ff5d5a81928a3c7136ec3f3179)
 

Author SHA1 Message Date
Adrien Vergé 92ff315fb4 Tests: Set proper LC_ALL when decoding UTF-8 is needed
Make sure the default localization conditions on the "test system"
support UTF-8 encoding.
Adrien Vergé f4cebdc054 Tests: Run with LC_ALL=C for uniform tests
Use default (C) locale in all tests to make sure the localization
conditions are the same wherever tests are run.
Adrien Vergé d174f9e3e3 yamllint version 1.3.1
Adrien Vergé c8ba8f7e99 linter: Fix UnicodeError when parsing comments
And add tests when reading non-ASCII strings and comments (both from
Python strings and from files).

Fixes: 
Adrien Vergé 63dd8313f8 yamllint version 1.3.0
Adrien Vergé 7be5867675 linter: Remove dead code
There is *always* a `Line` element at the end of file, even if the
newline character (`\n`) is missing.
Adrien Vergé 6061a2c4cc Rules: common: Remove dead code
Adrien Vergé 09118e417c Doc: Add license information on README page
Adrien Vergé 71b90ae208 Doc: Add new features in README
Adrien Vergé 8844855353 Doc: Remove old Debian install commands from README
Adrien Vergé 0eb310e102 Allow disabling yamllint checks using comments
Implement problem report disabling with comments in YAML source, for
instance:

    # The following mapping contains the same key twice,
    # but I know what I'm doing:
    key: value 1
    key: value 2  # yamllint disable-line rule:key-duplicates

or:

    # yamllint disable rule:colons
    - Lorem       : ipsum
      dolor       : sit amet,
      consectetur : adipiscing elit
    # yamllint enable rule:colons

Closes: 
Adrien Vergé cdd094220c parser: Add tests for `Comment.is_inline()`
Adrien Vergé 7a7d98c96a parser: Iterate over lines + tokens + comments
Instead of iterating over lines and tokens (and find comments between
tokens in the comment rules), add a new `Comment` type and set rules
with `type = 'comment'`.
Adrien Vergé 9f99f25db5 linter: Assert that `_run()` is called with a buffer
Adrien Vergé 8c839a20c2 Config: Detect user config using `os.path.expanduser()`
Instead of `$HOME`, since the former works when `$HOME` is not set.

[1]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=828033#10
Adrien Vergé 8e6e851c5b yamllint version 1.2.2
Adrien Vergé edd4cca02f Merge pull request from michelebariani/master
Patch allow-non-breakable-words on '-'
Michele Bariani 867970258e Patch allow-non-breakable-words on '-'
Adrien Vergé d0cb5998c4 Merge pull request from jwilk/spelling
Fix typos
Jakub Wilk a5c97220e7 Fix typos
Adrien Vergé 598e5e4370 Doc: Fix typo on configuration page intro
Adrien Vergé 03076ee214 Doc: Add a pointer to rules on configuration page intro
Adrien Vergé eabd349902 Config: Allow a user-global configuration file
Instead of just looking for `.yamllint` in the current working
directory, also look for `~/.config/yamllint/config` (using
`$XDG_CONFIG_HOME` or `$HOME`, see [1] and [2] for information).

[1]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.6.html
[2]: https://wiki.archlinux.org/index.php/XDG_Base_Directory_support

Closes: 
Adrien Vergé 1f1757ced4 yamllint version 1.2.1
Adrien Vergé 59d5bffbec Tests: cli: Detect and handle the `-d ''` case
Adrien Vergé 53da21934d Tests: Add many `cli.run` test cases
Adrien Vergé 0c36d0175c cli: Print EnvironmentErrors on stderr
Errors such as "no such file or directory" should not be printed on
standard output.
Adrien Vergé 20545febe5 CI: Lint project's *.yaml files as well as *.yml
Adrien Vergé 88ebcbbb93 Tests: Test cli.find_files_recursively
Adrien Vergé 08615ec4f8 Tests: config: Check the non-valid-yaml-config case
Adrien Vergé 29aceb430a Tests: indentation: Increase coverage
Adrien Vergé 159e29ea6a Rules: indentation: Remove non-existing case
A BlockMappingStartToken should always be followed by a KeyToken, on the
same line.
Adrien Vergé f9198b7a9b Rules: indentation: Fix B_SEQ instead of B_ENT
For example in this case, the scalar's parent is a B_ENT (only its
grandparent is a B_SEQ):

    - >
        multi
        line
Adrien Vergé 44236077dd Merge pull request from adrienverge/indentation-imbricated-flows
Indentation: imbricated flows
Adrien Vergé 76f47e91ca Rules: indentation: Handle imbricated flows correctly
The following source -- although not loadable by pyyaml -- is valid
YAML:

    {{key}}: value

This was processed badly by yamllint. The same for `[[value]]`,
`{{{{{moustaches}}}}}` or:

    {[val,
      {{key: val,
        key2}}]}

This patch corrects it and add corresponding test cases.

Related-to: 
Adrien Vergé f98bed1085 Rules: indentation: Do not crash on unexpected token
Previously, when the indentation rule blocked on an unexpected token,
the program crashed with something like:

    File "/usr/lib/python3/dist-packages/yamllint/rules/indentation.py",
    line 434, in check
      assert context['stack'][-1].type == KEY
    AssertionError

Instead, we prefer report the error as a regular `LintProblem` and
continue processing.

Fixes: 
Adrien Vergé a483524b63 Doc: Update installing section
Packages are now also available in Debian and Ubuntu.
Adrien Vergé 3a017a5a22 Doc: Update Neovim integration documentation
Since it has been merged into Neomake:
https://github.com/benekastah/neomake/commit/45dfc5
https://github.com/benekastah/neomake/pull/289
Adrien Vergé bab8137e2b Update .gitignore
Adrien Vergé 41733fc7a5 Use '.yaml' extension as default, not '.yml'
As someone said [1] on the internet:

    Say ".yaml" not ".yml".
    This is not MS-DOS, and YML is a Yahoo XML dialect.

Similarly, we use '.json', not '.jsn'.

[1]: https://github.com/ceph/s3-tests/commit/e17c56a
Adrien Vergé 688858e639 Doc: Reference Fedora and Ubuntu packages
Adrien Vergé dca3a54e63 yamllint version 1.2.0
Adrien Vergé 2dcfbd7e0d Conf: relaxed: Remove unneeded lines
Adrien Vergé 73d7a608e8 Conf: relaxed: Re-enable hyphens (in warning)
Adrien Vergé 1c0f164fbf Conf: relaxed: Set indentation's indent-sequences=consistent
Adrien Vergé 46e9108419 Rules: indentation: Add 'consistent' option for 'indent-sequences'
Using `indent-sequences: consistent` allows block sequences to be
indented or not to be, as long as it remains the same within the file.
Adrien Vergé 2f9e3cc71b Conf: relaxed: Set indentation to warning level
Adrien Vergé b13a03815a Conf: default: Use `spaces: consistent` for indentation
Adrien Vergé 9a7eec34b1 Rules: indentation: Fix `spaces: consitent` with broken flows
Adrien Vergé 5b62548ece Tests: indentation: Use 'spaces: consistent' by default