11import globals from 'globals' ;
22import stylistic from '@stylistic/eslint-plugin' ;
33import json from '@eslint/json' ;
4+ import css from '@eslint/css' ;
45
56const rules = {
67 '@stylistic/comma-dangle' : [
@@ -733,6 +734,7 @@ const config = {
733734 } ,
734735 linterOptions : {
735736 reportUnusedDisableDirectives : 'error' ,
737+ reportUnusedInlineConfigs : 'error' ,
736738 } ,
737739 plugins : {
738740 '@stylistic' : stylistic ,
@@ -746,6 +748,8 @@ const config = {
746748const jsonRules = {
747749 'json/no-duplicate-keys' : 'error' ,
748750 'json/no-empty-keys' : 'error' ,
751+ 'json/no-unsafe-values' : 'error' ,
752+ 'json/no-unnormalized-keys' : 'error' ,
749753} ;
750754
751755const jsonConfig = {
@@ -765,9 +769,13 @@ const jsoncConfig = {
765769 } ,
766770 files : [
767771 '**/*.jsonc' ,
772+ '**/tsconfig.json' ,
768773 '.vscode/*.json' ,
769774 ] ,
770775 language : 'json/jsonc' ,
776+ languageOptions : {
777+ allowTrailingCommas : true ,
778+ } ,
771779 rules : jsonRules ,
772780} ;
773781
@@ -782,9 +790,32 @@ const json5Config = {
782790 rules : jsonRules ,
783791} ;
784792
793+ const cssRules = {
794+ 'css/no-duplicate-imports' : 'error' ,
795+ 'css/no-empty-blocks' : 'error' ,
796+ 'css/no-invalid-at-rules' : 'error' ,
797+ 'cs//no-invalid-at-rules' : 'error' ,
798+ 'css/no-invalid-properties' : 'error' ,
799+ } ;
800+
801+ // eslint-disable-next-line no-unused-vars
802+ const cssConfig = {
803+ plugins : {
804+ css,
805+ } ,
806+ files : [
807+ '**/*.css' ,
808+ ] ,
809+ language : 'css/css' ,
810+ rules : cssRules ,
811+ } ;
812+
785813export default [
786814 config ,
787- jsonConfig ,
788815 jsoncConfig ,
789816 json5Config ,
817+ jsonConfig , // Placed last so non-standard JSONs match first.
818+
819+ // Disabled for now until it becomes more stable.
820+ // cssConfig,
790821] ;
0 commit comments