Skip to content

Commit 2260f0c

Browse files
committed
use custom parser for gts/gjs
bonus: * enables type aware lints * prettier eslint plugin (with template tag prettier plugin) will just work for gts/gjs * can detect unused block params in templates * can detect undef vars in PathExpression * can add eslint directive comments in mustache or html disadvantage: * prettier will not work without template tag prettier plugin for gts/gjs files
1 parent 1b172a6 commit 2260f0c

File tree

16 files changed

+983
-1072
lines changed

16 files changed

+983
-1072
lines changed

README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,33 @@ module.exports = {
4242
};
4343
```
4444

45+
## Gts/Gjs eslint setup
46+
47+
```js
48+
// .eslintrc.js
49+
module.exports = {
50+
plugins: ['ember'],
51+
extends: [
52+
'eslint:recommended',
53+
'plugin:ember/recommended', // or other configuration
54+
],
55+
overrides: [
56+
{
57+
files: ['**/*.gts'],
58+
parser: 'eslint-plugin-ember/gts-parser',
59+
},
60+
{
61+
files: ['**/*.gjs'],
62+
parser: 'eslint-plugin-ember/gjs-parser',
63+
}
64+
],
65+
rules: {
66+
// override / enable optional rules
67+
'ember/no-replace-test-comments': 'error'
68+
}
69+
};
70+
```
71+
4572
## 🧰 Configurations
4673

4774
| | Name | Description |

lib/config/recommended.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
const rules = require('../recommended-rules');
2-
const util = require('ember-template-imports/src/util');
32

43
module.exports = {
54
root: true,
@@ -29,11 +28,14 @@ module.exports = {
2928
* on -- and isn't relevant to user-land code.
3029
*/
3130
{
32-
files: ['**/*.gjs', '**/*.gts'],
33-
processor: 'ember/<template>',
34-
globals: {
35-
[util.TEMPLATE_TAG_PLACEHOLDER]: 'readonly',
36-
},
31+
files: ['**/*.gts'],
32+
parser: 'eslint-plugin-ember/gts-parser',
33+
processor: 'ember/<noop>',
34+
},
35+
{
36+
files: ['**/*.gjs'],
37+
parser: 'eslint-plugin-ember/gts-parser',
38+
processor: 'ember/<noop>',
3739
},
3840
],
3941
};

lib/index.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
'use strict';
22

33
const requireIndex = require('requireindex');
4-
5-
const gjs = require('./preprocessors/glimmer');
4+
const noop = require('./preprocessors/noop');
65

76
module.exports = {
87
rules: requireIndex(`${__dirname}/rules`),
@@ -12,8 +11,6 @@ module.exports = {
1211
},
1312
processors: {
1413
// https://eslint.org/docs/developer-guide/working-with-plugins#file-extension-named-processor
15-
'.gjs': gjs,
16-
'.gts': gjs,
17-
'<template>': gjs,
14+
'<noop>': noop,
1815
},
1916
};

0 commit comments

Comments
 (0)