forked from mirrors/gecko-dev
This adds a linter for Fluent files based upon the existing test for bad strings in browser_misused_characters_in_strings.js. It also adds a check for identifiers that only permits lowercase letters, numbers and the hyphen character (in ascii). Since a large number of existing identifiers use uppercase letters, an exclusions file is used to disable the identifier check on a file by file basis. Differential Revision: https://phabricator.services.mozilla.com/D104414
43 lines
1.3 KiB
ReStructuredText
43 lines
1.3 KiB
ReStructuredText
Fluent Lint
|
|
===========
|
|
|
|
Fluent lint is a linter for Fluent files. Currently, it checks for invalid strings in messages
|
|
and enforces the preferred style for identifiers.
|
|
|
|
|
|
Run Locally
|
|
-----------
|
|
|
|
The mozlint integration of fluent-lint can be run using mach:
|
|
|
|
.. parsed-literal::
|
|
|
|
$ mach lint --linter fluent-lint <file paths>
|
|
|
|
Alternatively, omit the ``--linter fluent-lint`` and run all configured linters, which will include
|
|
fluent-lint.
|
|
|
|
|
|
Run on Taskcluster
|
|
------------------
|
|
|
|
The fluent-lint job shows up as text(fluent) in the linting job. It should run automatically if
|
|
changes are made to fluent (ftl) files.
|
|
|
|
|
|
Configuration
|
|
-------------
|
|
|
|
The main configuration file is found in ``tools/lint/fluent-lint/exclusions.yml``. This provides
|
|
a way of excluding identifiers or files from checking. In general, exclusions are only to be
|
|
used for identifiers that are generated programmatically, but unfortunately, there are other
|
|
exclusions that are required for historical reasons. In almost all cases, it should *not* be
|
|
necessary to add new exclusions to this file.
|
|
|
|
|
|
Sources
|
|
-------
|
|
|
|
* `Configuration (YAML) <https://searchfox.org/mozilla-central/source/tools/lint/fluent-lint.yml>`_
|
|
* `Source <https://searchfox.org/mozilla-central/source/tools/lint/fluent-lint/__init__.py>`_
|
|
* `Test <https://searchfox.org/mozilla-central/source/tools/lint/test/test_fluent_lint.py>`_
|