eslint-plugin-html icon indicating copy to clipboard operation
eslint-plugin-html copied to clipboard

Dealing with Twig includes in Javascript segments

Open coatpont opened this issue 11 months ago • 1 comments

Description

In the codebase I'm looking at, we have plenty of Twig code blocks using the {% twigcode %} with the Javascript code (if statements, includes of other files...), essentially dynamically generating some of the JavaScript content, and linting on those fails with the following error:

Parsing error: Unexpected token

e.g.

           $('.select2').select2({'width':'100%'});

            {% include('tools/toolsmodal.js.twig') %}

            function submit(that, e, options) {
                e.preventDefault();

Suggestions on how to handle this setup?

Setup configuration

  • ESLint version: 7.25
  • eslint-plugin-html version: 8.1.2
  • NodeJS version: 23.4
  • Operating System name and version: MacOS 16
  • ESLint configuration (.eslintrc/eslint.config.js):

module.exports = { parser: '@babel/eslint-parser', parserOptions: { requireConfigFile: false, }, extends: ['plugin:prettier/recommended', 'eslint:recommended', 'plugin:import/recommended', 'plugin:cypress/recommended'], settings: { 'import/resolver': 'webpack', }, plugins: ['babel', 'cypress', 'html'], globals: { global: true, $: true, trans: true, enoriaLocale: true, swal: true, }, env: { amd: true, browser: true, es6: true, node: true, }, ignorePatterns: ['**/js/views//.js'], rules: { 'max-len': [ 'error', { code: 250, ignoreUrls: true, ignoreComments: false, ignoreRegExpLiterals: true, ignoreStrings: false, ignoreTemplateLiterals: false, }, ], 'no-console': 'error', }, };

Aditional context

coatpont avatar Jan 10 '25 08:01 coatpont

I see workarounds are documented here: https://github.com/BenoitZugmeyer/eslint-plugin-html?tab=readme-ov-file#linting-templates-or-php - then I'm turning the issue into a feature request ;-) .

coatpont avatar Jan 10 '25 10:01 coatpont