phetsims / chipper

Tools for developing and building PhET interactive simulations.
MIT License
11 stars 14 forks source link

Make type checking lint rules faster #1238

Closed jessegreenberg closed 2 years ago

jessegreenberg commented 2 years ago

From https://github.com/phetsims/chipper/issues/1114. Lint rules that use type checking are too slow. They will be slower because they use the type checker but currently they are just way too slow to use.

Maybe we can make it faster by having eslint use the same tsc cache as WebStorm. The config file tsconfig.eslint.json is really inefficient. I think it makes eslint recompile every file in the project every time the linter is run. Maybe we can make that better.

jessegreenberg commented 2 years ago

In https://github.com/phetsims/chipper/issues/1114#issuecomment-1068448206 @samreid said

Specifying this in package.json for center-and-spread

 "eslintConfig": {
    "extends": "../chipper/eslint/sim_eslintrc.js",
    "parserOptions": {
      "project": [
        "./tsconfig.json"
      ]
    }
  }

Changes the time of time grunt lint --disable-eslint-cache from 12 seconds to 2 seconds. With caching and no code changes it is 0.6sec whether you use the full tsconfig or the sim-specific one.

I just confirmed that works great for me too. Without that patch, running time grunt lint --disable-eslint-cache takes 27 seconds. With the patch it takes ~5 seconds.

This works in sim repos but doesn't work in common code repos like scenery utterance-queue and sun, I am seeing lots of

C:\Users\Jesse\Documents\Development\phetsims\sun\js\sunStrings.ts
  0:0  error  Parsing error: "parserOptions.project" has been set for @typescript-eslint/parser.
The file does not match your project config: js\sunStrings.ts.
The file must be included in at least one of the projects provided
jessegreenberg commented 2 years ago

Changing parserOptions.project to "project": "./tsconfig-module.json" makes some of the errors go away but not all of them in common code repos.

For example in utterance-queue I am seeing

C:\Users\Jesse\Documents\Development\phetsims\utterance-queue\js\ResponsePacket.ts
  0:0  error  Parsing error: "parserOptions.project" has been set for @typescript-eslint/parser.
The file does not match your project config: js\ResponsePacket.ts.
The file must be included in at least one of the projects provided

Adding "js/ResponsePacket.ts", explicitly to the include of the tsconfig-module.json does not fix it.

samreid commented 2 years ago

According to https://github.com/typescript-eslint/typescript-eslint/issues/2094, typescript-eslint does not support project references, but they are experimenting with adding that as a feature. The workaround described in https://github.com/typescript-eslint/typescript-eslint/issues/2094#issuecomment-765142357 indicates to list all projects explicitly, which I tried to do like so:

      parserOptions: {
        sourceType: 'module',

        // Provide a tsconfig so that we can use rules that require type information. tsconfig.eslint.json
        // gives eslint project information without needing to modify our actual tsconfig setup.
        // NOTE: Providing this slows down eslint substantially, see https://github.com/phetsims/chipper/issues/1114#issuecomment-1065927717
        project: [ '../*/tsconfig.json' ]
      },

Linting sims seemed to work OK and I was more confident it could read all source files for type checking. If I recall correctly, it took 20-30 seconds in checking a new repo, and was much faster for re-runs.

When I tried to apply this to lint-everything, I ran into out of memory errors. Following the guide at https://futurestud.io/tutorials/node-js-increase-the-memory-limit-for-your-process I increased the allowed heap and ran

node -max-old-space-size=12192 /usr/local/bin/grunt lint-everything

It is still running to this day.

jessegreenberg commented 2 years ago

A temporary flag to tap into this in added in https://github.com/typescript-eslint/typescript-eslint/issues/2094#issuecomment-709498190 and reports suggest is it working well. It was added to the "canary" build, but if I understand correctly the canary build is just the one right before main so this flag could be in the main build by now.

Turning it on should just require setting parserOptions.EXPERIMENTAL_useSourceOfProjectReferenceRedirect = true.

jessegreenberg commented 2 years ago

Adding this to sun/package.json does seem to be working well:

    "overrides": [
      {
        "files": [
          "**/*.ts"
        ],
        "parserOptions": {
          "project": [
            "./tsconfig.json",
            "./tsconfig-module.json"
          ],
          "EXPERIMENTAL_useSourceOfProjectReferenceRedirect": true
        }
      }
    ]
jessegreenberg commented 2 years ago

Some notes after playing with this for a while: 1) EXPERIMENTAL_useSourceOfProjectReferenceRedirect is working well, I am not seeing any errors yet. 2) I added parserOptions.project.EXPERIMENTAL_useSourceOfProjectReferenceRedirect to chipper's .eslintrc.js and it works well there too. 3) I wrote a grunt task to modify package.json for all repos, if we want to proceed with this:

```js // Copyright 2022, University of Colorado Boulder /** * Modifies package.json for ALL repos under the project directory that have a package.json with overrides * for eslintConfig. It adds a reference to the tsconfig.json files so that the repo can run typescript-eslint * rules that leverage type information. */ const _ = require( 'lodash' ); // eslint-disable-line const grunt = require( 'grunt' ); const fs = require( 'fs' ); /** * Checks out master for all repositories in the git root directory. * @public */ module.exports = function() { const gitRoots = grunt.file.expand( { cwd: '..' }, '*' ); for ( let i = 0; i < gitRoots.length; i++ ) { const filename = gitRoots[ i ]; // Don't change to const without rewrapping usages in the closure if ( filename !== 'babel' && grunt.file.isDir( `../${filename}` ) && grunt.file.exists( `../${filename}/package.json` ) ) { const rawData = fs.readFileSync( `../${filename}/package.json` ); const jsonData = JSON.parse( rawData ); if ( jsonData.eslintConfig ) { if ( jsonData.eslintConfig.overrides ) { console.log( 'found package.json with eslintconfig.overrides in ' + filename ); } else { const eslintConfigOverrides = [ { files: [ '**/*.ts' ], parserOptions: { project: [ `../${filename}/tsconfig.json`, `../${filename}/tsconfig-module.json` ] } } ]; // modify object in memory jsonData.eslintConfig.overrides = eslintConfigOverrides; // stringify in human readable format const stringified = JSON.stringify( jsonData, null, 2 ); fs.writeFileSync( `../${filename}/package.json`, stringified ); } } } } }; ```
  1. With this change, time grunt lint --disable-eslint-cache in center-and-variability takes ~8.5 seconds for me. Running with no code changes and cache also takes ~8.5 seconds. For some reason its is better in joist, the same test in takes 11 seconds without cache, 2 seconds with cache.
  2. I enabled @typescript-eslint/restrict-plus-operands and went to one of the found problems in scenery. Fixing then restoring the error felt snappy in the IDE for the single file even though running time grunt lint in scenery takes 15 seconds for me.
  3. When I ran grunt lint-everything I still hit the out of memory problem. Maybe the issue is with our lint-everything grunt task? It seems to get stuck in https://eslint.org/docs/developer-guide/nodejs-api#-eslintlintfilespatterns so maybe we can implement it without using that function to control the flow/memory ourselves. That could also slow down grunt task lint-everything, Im not sure.

EDIT: Oh and here is my chipper patch as well as my change to center-and-variability to test in a single repo.

CHipper patch:

```patch Index: eslint/.eslintrc.js IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/eslint/.eslintrc.js b/eslint/.eslintrc.js --- a/eslint/.eslintrc.js (revision 61879822b0e749dce4849d2ee6324b1144b73166) +++ b/eslint/.eslintrc.js (date 1652131330699) @@ -25,12 +25,16 @@ ], parser: '@typescript-eslint/parser', parserOptions: { - sourceType: 'module' + sourceType: 'module', // Provide a tsconfig so that we can use rules that require type information. tsconfig.eslint.json // gives eslint project information without needing to modify our actual tsconfig setup. // NOTE: Providing this slows down eslint substantially, see https://github.com/phetsims/chipper/issues/1114#issuecomment-1065927717 - // ,project: [ '../chipper/eslint/tsconfig.eslint.json' ] + // project: [ '../chipper/eslint/tsconfig.eslint.json' ], + project: [ '../chipper/tsconfig.json' ], + + // Enable experimental project references feature of typescript-eslint. + EXPERIMENTAL_useSourceOfProjectReferenceRedirect: true }, plugins: [ '@typescript-eslint' @@ -78,13 +82,13 @@ // '@typescript-eslint/no-empty-function': 'error', // 41 errors '@typescript-eslint/no-extra-semi': 'error', // '@typescript-eslint/no-unused-vars': 'error', //TODO https://github.com/phetsims/chipper/issues/1230 - '@typescript-eslint/no-loss-of-precision': 'error' + '@typescript-eslint/no-loss-of-precision': 'error', /////////////////////////////////////////////////////////////////////// // // Typescript rules that require type information (may be slow) // These require parserOptions.project. - // '@typescript-eslint/no-unnecessary-type-assertion':'error', + // '@typescript-eslint/no-unnecessary-type-assertion': 'error' // '@typescript-eslint/no-unsafe-member-access':'error', // '@typescript-eslint/restrict-plus-operands':'error', // '@typescript-eslint/prefer-readonly': 'error' // readonly when possible @@ -100,7 +104,7 @@ // '@typescript-eslint/no-unsafe-call': 'error', // '@typescript-eslint/no-unsafe-member-access': 'error', // '@typescript-eslint/no-unsafe-return': 'error', - // '@typescript-eslint/restrict-plus-operands': 'error', + '@typescript-eslint/restrict-plus-operands': 'error', // '@typescript-eslint/restrict-template-expressions': 'error', // '@typescript-eslint/unbound-method': 'error', ```

Center and variability patch:

```patch Index: package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/package.json b/package.json --- a/package.json (revision f9176187ad52720c03ddc06c2e656979b7cb56f3) +++ b/package.json (date 1652131124861) @@ -29,6 +29,19 @@ } }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../center-and-variability/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file ```
jessegreenberg commented 2 years ago

Now that we don't use project references we should try this again and see if this is faster. https://github.com/phetsims/chipper/issues/1238#issuecomment-1121601054 probably isn't relevant anymore because of this.

zepumph commented 2 years ago
samreid commented 2 years ago

Increasing priority, since I hope to look into this during this week.

jessegreenberg commented 2 years ago

It is much faster! Well done @samreid. Timing results below. However, there is still a problem with grunt lint-everything, it takes a very long time.

I changed parserOptions.project to './tsconfig.json' in chipper and it seems to work for all repos. Timing grunt lint with and without cache:

IF memory isn't a problem at 10-30 seconds per repo maybe grunt lint-everything would now take 30-90 minutes for 184 repos?

UPDATE: grunt lint-everything --disable-cache finished! TOtal time: 30m31.578s. IT didn't run out of memory.

However, I see many errors like

C:\Users\Jesse\Documents\Development\phetsims\forces-and-motion-basics\images\brickTile_png.ts
  0:0  error  Parsing error: "parserOptions.project" has been set for @typescript-eslint/parser.
The file does not match your project config: ..\forces-and-motion-basics\images\brickTile_png.ts.
The file must be included in at least one of the projects provided

EDIT: It is resolved if parserOptions.project is project: [ './tsconfig.json' ] instead of pointing to chipper's. That makes sense, but it means that grunt lint-everything will not work because it will look for the file relative to perennial where the command is forwarded. Maybe we just need to add a paraserOptions.project to all package.jsons.

jessegreenberg commented 2 years ago

I added

        "parserOptions": {
          "project": [
            "../ohms-law/tsconfig.json"
          ]
        }

to all package.jsons and ran lint-everything again. After 1min 48 seconds I got an out of memory error. It seems to me that https://github.com/phetsims/chipper/issues/1238#issuecomment-1121601054 still applies. We may be able to use a different implementation of the grunt lint-everything task.

But the best case scenario would be a ~30 minute run time for the command when there is no cache. That doesn't seem worth pursuing.

jessegreenberg commented 2 years ago

@samreid and I met to try more things: 1) We modified a tsconfig file in a sim and verified that running grunt lint-everything used the sim's tsconfig and not chipper's when parserOptions.project is [ './tsconfig.json' ] in chipper. 2) We changed chipper's parserOptions.project to point to '../chipper/tsconfig/all/tsconfig.json'. We found we had to add all sims to that file in order for it to work. Currently it just lists TypeScript sims. It works! But we think lint-everything will take ~30 minutes.

Alternatively could we add this to each repo's package.json so that tsc doesn't get slower?

  "eslintConfig": {
    "extends": "../chipper/eslint/sim_eslintrc.js",
    "overrides": [
      {
        "files": [
          "**/*.ts"
        ],
        "parserOptions": {
          "project": [
            "../acid-base-solutions/tsconfig.json"
          ]
        }
      }
    ]
  }

That wont make lint-everything any faster.

jessegreenberg commented 2 years ago

Alternatively could we add this to each repo's package.json so that tsc doesn't get slower?

I did this with just the a-b sims in active-repos and ran out of memory before 2 minutes. Otherwise that works, there were no other problems running lint.

EDIT: I tried this change to lint-everything task and still ran out of memory around build-a-molecule

```patch Index: js/grunt/Gruntfile.js IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/js/grunt/Gruntfile.js b/js/grunt/Gruntfile.js --- a/js/grunt/Gruntfile.js (revision 01b78de7541b9622ce7e2fbeb9544f78a46c14a3) +++ b/js/grunt/Gruntfile.js (date 1653003330654) @@ -516,10 +516,14 @@ // Don't always require this, as we may have an older chipper checked out. Also make sure it is the promise-based lint. const lint = require( '../../../chipper/js/grunt/lint' ); if ( lint.chipperAPIVersion === 'promises1' ) { - await lint( activeRepos.map( repo => `../${repo}` ), { - cache: cache, - fix: fix, - format: format + const lintables = activeRepos.map( repo => `../${repo}` ); + lintables.forEach( async lintable => { + console.log( 'linting ', lintable ); + await lint( [ lintable ], { + cache: cache, + fix: fix, + format: format + } ); } ); } } ) ); ```
samreid commented 2 years ago

I tried https://typescript-eslint.io/docs/linting/monorepo/

        tsconfigRootDir: __dirname,
        project: [ '../../*/tsconfig.json' ]

But it failed after about 4 minutes with an out of memory error.

jessegreenberg commented 2 years ago

I tried 1) setting parserOptions.project to [ '../chipper/tsconfig/all/tsconfig.json' ] 2) Add all active repos to all/tsconfig.json 3) Changing `lint-everything to lint each active repo one at a time (mostly to see how far it gets in the command)

Running tsc in chipper/tsconfig/all now takes ~20-40 seconds. Running grunt lint in a single repo takes ~2 minutes without cache, 2 seconds with cache. Running lint-everything worked without memory problems and took ~30 minutes to finish the first time. I ran it again and it was able to use the cache, it took ~6 seconds!

samreid commented 2 years ago

Good experiments! I also ran a few tests. I wanted to see the performance characteristic of running the idiomatic way described on https://eslint.org/docs/user-guide/command-line-interface which is to run:

npx eslint js/** --rulesdir ../chipper/eslint/rules/

Which I think only works because I have a node_modules as a sibling of my checkout repos.

I also tried with and without --cache. And I tried with the current all/tsconfig and compared to the approach listed in https://github.com/phetsims/chipper/issues/1238#issuecomment-1132283387 where each sim package.json specifies its own tsconfig.

For these tests, I enabled '@typescript-eslint/no-unnecessary-type-assertion' and tested in Gravity and Orbits.

Using tsconfig/all and no cache: 11.6s Using tsconfig/all and cache (2nd run): 0.96s

Using

  "eslintConfig": {
    "extends": "../chipper/eslint/sim_eslintrc.js",
    "overrides": [
      {
        "files": [
          "**/*.ts"
        ],
        "parserOptions": {
          "project": [
            "../gravity-and-orbits/tsconfig.json"
          ]
        }
      }
    ]
  }

without cache: 3.1s with cache (2nd run): 0.70s

The latter result seems fast enough that we could use it for linting in the IDE and for precommit hooks, etc. We could split up chipper/js/grunt/lint.js so it is more repo-oriented if we like this approach.

@jessegreenberg based on the results in your experiment and this one, how do you think we should proceed?

zepumph commented 2 years ago

The latter result seems fast enough that we could use it for linting in the IDE and for precommit hooks, etc. We could split up chipper/js/grunt/lint.js so it is more repo-oriented if we like this approach.

Or can we just dynamically set the "project" flag based on the "patterns" parameter?

jessegreenberg commented 2 years ago

Re https://github.com/phetsims/chipper/issues/1238#issuecomment-1137903533

That is quite fast! Good to know.

Or can we just dynamically set the "project"

Yes, that is what I was thinking too. I went ahead and added an option for the lint task called --type-info. It adds the typescript eslint rules and sets the project flag from patterns.

It seems to work well. It would be simple to use these for git hooks. But I couldn't figure out a way to get this strategy to work with the IDE.

@samreid can you please review this change? Do you see a way to make this work with the IDE without breaking lint-everything? Should we start using this with git hooks? If yes, we should disable no-unnecessary-type-assertion from type_info_eslintrc.js until it is discussed with the team.

samreid commented 2 years ago

I tested looping over each repo like so and it seemed to have good characteristics (including running lint-everything faster), we may want to base our strategy on this. Stashing a copy to clean my working copy.

```diff Index: js/grunt/Gruntfile.js IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/js/grunt/Gruntfile.js b/js/grunt/Gruntfile.js --- a/js/grunt/Gruntfile.js (revision a886e4d2ddae82503a9acb30753079987edfb687) +++ b/js/grunt/Gruntfile.js (date 1653972435290) @@ -516,11 +516,13 @@ // Don't always require this, as we may have an older chipper checked out. Also make sure it is the promise-based lint. const lint = require( '../../../chipper/js/grunt/lint' ); if ( lint.chipperAPIVersion === 'promises1' ) { - await lint( activeRepos.map( repo => `../${repo}` ), { - cache: cache, - fix: fix, - format: format - } ); + for ( let i = 0; i < activeRepos.length; i++ ) { + await lint( [ activeRepos[ i ] ], { + cache: cache, + fix: fix, + format: format + } ); + } } } ) ); ```
jessegreenberg commented 2 years ago

That is promising but I don't think that patch is linting anything. The lint command should be

await lint( [ `../${activeRepos[ i ]}` ], {

I tried this with type checking lint rules in https://github.com/phetsims/chipper/issues/1238#issuecomment-1132287999 but ran out of memory.

samreid commented 2 years ago

Using this patch, I was able to grunt lint-everything. It leverages the --type-info option. But we would probably need to put those in the package.json so our IDE can use it, like in https://github.com/phetsims/chipper/issues/1238#issuecomment-1137903533

```diff Index: main/perennial/js/grunt/Gruntfile.js IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/perennial/js/grunt/Gruntfile.js b/main/perennial/js/grunt/Gruntfile.js --- a/main/perennial/js/grunt/Gruntfile.js (revision cd289f9f1ee05568d88d2c122b2531577fccd158) +++ b/main/perennial/js/grunt/Gruntfile.js (date 1654555636890) @@ -517,12 +517,31 @@ // Don't always require this, as we may have an older chipper checked out. Also make sure it is the promise-based lint. const lint = require( '../../../chipper/js/grunt/lint' ); if ( lint.chipperAPIVersion === 'promises1' ) { - await lint( activeRepos.map( repo => `../${repo}` ), { - cache: cache, - fix: fix, - format: format, - chipAway: chipAway - } ); + + const allResults = []; + for ( let i = 0; i < activeRepos.length; i++ ) { + console.log( 'visiting ' + activeRepos[ i ] ); + const results = await lint( [ `../${activeRepos[ i ]}` ], { + cache: cache, + fix: fix, + format: format, + chipAway: chipAway, + warn: false + } ); + allResults.push( results ); + } + + let totalProblems = 0; + for ( let i = 0; i < allResults.length; i++ ) { + const results = allResults[ i ]; + const totalWarnings = _.sum( results.map( result => result.warningCount ) ); + const totalErrors = _.sum( results.map( result => result.errorCount ) ); + + totalProblems += totalWarnings + totalErrors; + } + if ( totalProblems > 0 ) { + grunt.warn( 'Lint problems: ' + totalProblems + '.' ); + } } } ) ); Index: main/chipper/eslint/.eslintrc.js IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/chipper/eslint/.eslintrc.js b/main/chipper/eslint/.eslintrc.js --- a/main/chipper/eslint/.eslintrc.js (revision 621dc2e27ca7b9fec4ea3994c8013058f29e7bb1) +++ b/main/chipper/eslint/.eslintrc.js (date 1654555624048) @@ -30,7 +30,7 @@ // Provide a tsconfig so that we can use rules that require type information. tsconfig.eslint.json // gives eslint project information without needing to modify our actual tsconfig setup. // NOTE: Providing this slows down eslint substantially, see https://github.com/phetsims/chipper/issues/1114#issuecomment-1065927717 - // ,project: [ '../chipper/eslint/tsconfig.eslint.json' ] + , project: [ '../chipper/eslint/tsconfig.eslint.json' ] }, plugins: [ '@typescript-eslint' @@ -96,31 +96,31 @@ '@typescript-eslint/no-unused-vars': [ 'error', { args: 'none' // TODO: we want to turn this for arguments in https://github.com/phetsims/chipper/issues/1230 } ], - '@typescript-eslint/no-loss-of-precision': 'error' + '@typescript-eslint/no-loss-of-precision': 'error', /////////////////////////////////////////////////////////////////////// // // Typescript rules that require type information (may be slow) // These require parserOptions.project. - // '@typescript-eslint/no-unnecessary-type-assertion':'error', - // '@typescript-eslint/no-unsafe-member-access':'error', - // '@typescript-eslint/restrict-plus-operands':'error', - // '@typescript-eslint/prefer-readonly': 'error' // readonly when possible + '@typescript-eslint/no-unnecessary-type-assertion': 'error', + '@typescript-eslint/no-unsafe-member-access': 'error', + '@typescript-eslint/restrict-plus-operands': 'error', + '@typescript-eslint/prefer-readonly': 'error', // readonly when possible // // Recommended needing type info: - // '@typescript-eslint/await-thenable': 'error', - // '@typescript-eslint/no-floating-promises': 'error', - // '@typescript-eslint/no-for-in-array': 'error', - // '@typescript-eslint/no-misused-promises': 'error', + '@typescript-eslint/await-thenable': 'error', + '@typescript-eslint/no-floating-promises': 'error', + '@typescript-eslint/no-for-in-array': 'error', + '@typescript-eslint/no-misused-promises': 'error', // '@typescript-eslint/no-unnecessary-type-assertion': 'error', - // '@typescript-eslint/no-unsafe-argument': 'error', - // '@typescript-eslint/no-unsafe-assignment': 'error', - // '@typescript-eslint/no-unsafe-call': 'error', + '@typescript-eslint/no-unsafe-argument': 'error', + '@typescript-eslint/no-unsafe-assignment': 'error', + '@typescript-eslint/no-unsafe-call': 'error', // '@typescript-eslint/no-unsafe-member-access': 'error', - // '@typescript-eslint/no-unsafe-return': 'error', + '@typescript-eslint/no-unsafe-return': 'error', // '@typescript-eslint/restrict-plus-operands': 'error', - // '@typescript-eslint/restrict-template-expressions': 'error', - // '@typescript-eslint/unbound-method': 'error', + '@typescript-eslint/restrict-template-expressions': 'error', + '@typescript-eslint/unbound-method': 'error' // // Overriding rules that exist in javascript: // '@typescript-eslint/no-implied-eval': 'error', ```

The initial pass took 1m37.981s and did not crash with memory errors. Subsequent runs are taking about 0m2.128s. If I change whitespace in one sim file (like LensModel), that repo takes longer, yielding a total time (of grunt lint-everything) of 0m10.912s. It's nice to be able to see the progress as it iterates past sims (I have a console.log for that).

jessegreenberg commented 2 years ago

I tried this patch on my machine (Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz 4.00 ):

  • Without any caching: real 3m24.003s
  • With caching: real 0m6.497s
  • After adding a whitespace to LenseModel: real 0m26.893s

By adding parserOptions.project only to geometric-optics and running time grunt lint I saw the following on my machine:

  • Without caching: 0m11.447s
  • With caching: 0m2.049s
  • Adding whitespace to Lense.ts: 0m6.900s
  • Making changes to the file: WebStorm reports new errors very quickly, it feels nice.
samreid commented 2 years ago

On my Windows laptop Ryzen 7 3.2GHz

First run: 2m40s Second run: 0m4.8s Whitespace changes in LensModel: 0m22s

jessegreenberg commented 2 years ago

Together @samreid and I ran the following test:

  • In geometric-optics package.json add parserOptions.project pointing to ./tsconfig.json and add type-checking eslint rules to package.json eslint overrides.
  • Running lint in the sim repo took my machine 11.167 seconds.
  • Making changes to a file in WebStorm we saw new lint errors appear as I typed.
  • Running lint-all took ~45 seconds.
  • Running lint in axon showed no errors, but running lint-all in geometric optics showed the errors in axon.

We were interested in enabling these rules on a repo-by-repo basis to test them out by specifying them in package.json. But lint-all taking so long discouraged us from doing so now.

samreid commented 2 years ago

Brainstorming another idea that may give a speed boost: telling the linter to only lint the changed files. (Only for the precommit hook part though?)

zepumph commented 2 years ago

I think it would be helpful to bring this back to dev meeting for updates and next steps. It sounds like there is still quite a time-hit to add these rules, perhaps we need to reevaluate including this in pre-commit hooks, or get rid of pre-commit hooks in exchange of a single pre-push hook.

samreid commented 2 years ago

I added many type checking lint rules for Gravity and Orbits. CTQ is not so happy though.

``` lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/images/earth_png.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json' lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/images/iconMass_png.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json' lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/images/moonGeneric_png.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json' lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/images/moon_png.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json' lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/images/pathIconProjector_png.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json' lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/images/pathIcon_png.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json' lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/images/planetGeneric_png.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json' lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/images/spaceStation_png.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json' lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/images/sun_png.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json' lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/js/common/GravityAndOrbitsColors.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json' lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/js/common/GravityAndOrbitsConstants.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json' lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/js/common/GravityAndOrbitsScene.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json' lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/js/common/SceneFactory.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json' lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/js/common/model/Body.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json' lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/js/common/model/BodyConfiguration.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json' lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/js/common/model/BodyState.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json' lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/js/common/model/BodyTypeEnum.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json' lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/js/common/model/GravityAndOrbitsClock.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json' lint: /data/share/phet/continuous-quick-server/gravity-and-orbits/js/common/model/GravityAndOrbitsModel.ts 0:0 error Parsing error: Cannot read file '/data/share/phet/continuous-quick-server/perennial/tsconfig.json'
samreid commented 2 years ago

On my working copy, I wrote a script that visits all package.json files and adds the correct parser options. Some notes:

  • The path has to be ../repo/tsconfig.json instead of ./tsconfig.json so it can be run from chipper, perennial or the repo.
  • I saw memory leak crashes even with the modular iteration above. But you can run it repeatedly and since it caches successes it will eventually get through it.
  • It would be nice to use the same cache across all our systems, so that grunt lint-everything can share a cache with individual grunt lint
  • I hoped that adding the parserOptions would only trigger parsing if a type checking rule is included, but it seems to parse anyways. But we hope to turn those rules on soon anyways.

So I have a lot of risky and invasive changes on my working copy. I'd like to experiment with it more before broader use by the team. Still hoping to have this at a good point for our upcoming sprint.

samreid commented 2 years ago

Here is a patch with all of the package.json parserOptions. @jessegreenberg and I decided to postpone work on that until we have progress on https://github.com/phetsims/chipper/issues/1275#issuecomment-1181870542 and better understand the memory issue.

```diff Index: main/expression-exchange/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/expression-exchange/package.json b/main/expression-exchange/package.json --- a/main/expression-exchange/package.json (revision 729ce42a0abd1fccde62b9a59cf327cbc479f18a) +++ b/main/expression-exchange/package.json (date 1657597091931) @@ -27,6 +27,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../expression-exchange/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/faradays-law/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/faradays-law/package.json b/main/faradays-law/package.json --- a/main/faradays-law/package.json (revision c69807809fdf101d630bbc9e54305f3de9474a13) +++ b/main/faradays-law/package.json (date 1657597091931) @@ -26,6 +26,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../faradays-law/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/fenster/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/fenster/package.json b/main/fenster/package.json --- a/main/fenster/package.json (revision f15507f619f80706115e33892f950fec9c1e4553) +++ b/main/fenster/package.json (date 1657597091932) @@ -34,6 +34,18 @@ "cordova": "readonly", "navigator": "readonly", "TTS": "readonly" - } + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../fenster/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/fluid-pressure-and-flow/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/fluid-pressure-and-flow/package.json b/main/fluid-pressure-and-flow/package.json --- a/main/fluid-pressure-and-flow/package.json (revision 03984b71fa924a8c41ac06e668b44e6b7e3b195d) +++ b/main/fluid-pressure-and-flow/package.json (date 1657597091932) @@ -26,6 +26,18 @@ "extends": "../chipper/eslint/sim_eslintrc.js", "globals": { "numeric": "readonly" - } + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../fluid-pressure-and-flow/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/brand/tsconfig.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/brand/tsconfig.json b/main/brand/tsconfig.json --- a/main/brand/tsconfig.json (revision eef7239381f6dfac75435fc90ddfb04f84549c54) +++ b/main/brand/tsconfig.json (date 1657600586127) @@ -5,6 +5,10 @@ "js/**/*", "images/**/*", "mipmaps/**/*", - "sounds/**/*" + "sounds/**/*", + "adapted-from-phet/js/**/*", + "phet/js/**/*", + "phet-io/js/**/*", + "testbrand/**/*" ] } \ No newline at end of file Index: main/binder/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/binder/package.json b/main/binder/package.json --- a/main/binder/package.json (revision 89b31db88c1f37ad5ef66dc5c867623f391fab72) +++ b/main/binder/package.json (date 1657597091907) @@ -36,6 +36,18 @@ "react": { "version": "^16.8.6" } - } - } -} + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../binder/tsconfig.json" + ] + } + } + ] + } +} \ No newline at end of file Index: main/forces-and-motion-basics/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/forces-and-motion-basics/package.json b/main/forces-and-motion-basics/package.json --- a/main/forces-and-motion-basics/package.json (revision 7c91b9d9a6d4c7477338fe73c8aff300ed28bf4e) +++ b/main/forces-and-motion-basics/package.json (date 1657597091933) @@ -32,6 +32,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../forces-and-motion-basics/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/fourier-making-waves/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/fourier-making-waves/package.json b/main/fourier-making-waves/package.json --- a/main/fourier-making-waves/package.json (revision 11ebf313bfe72c3aadc7675e3f73ca50a0371519) +++ b/main/fourier-making-waves/package.json (date 1657597091933) @@ -33,6 +33,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../fourier-making-waves/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/fraction-comparison/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/fraction-comparison/package.json b/main/fraction-comparison/package.json --- a/main/fraction-comparison/package.json (revision 72e8317392d0ce53d02bf6584a5d7b3231d6d56e) +++ b/main/fraction-comparison/package.json (date 1657597091933) @@ -24,6 +24,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../fraction-comparison/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/fraction-matcher/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/fraction-matcher/package.json b/main/fraction-matcher/package.json --- a/main/fraction-matcher/package.json (revision 53aa15f03c9c7b0b87b86388c5142a239e44fbf2) +++ b/main/fraction-matcher/package.json (date 1657597091933) @@ -28,6 +28,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../fraction-matcher/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/fractions-common/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/fractions-common/package.json b/main/fractions-common/package.json --- a/main/fractions-common/package.json (revision de19fc1b1b35a61405501c214df360e01cc7ce18) +++ b/main/fractions-common/package.json (date 1657597091934) @@ -15,6 +15,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../fractions-common/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/fractions-equality/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/fractions-equality/package.json b/main/fractions-equality/package.json --- a/main/fractions-equality/package.json (revision c35ec906acd6d690046d530369b8ba7891c5c84b) +++ b/main/fractions-equality/package.json (date 1657597091934) @@ -29,6 +29,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../fractions-equality/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/fractions-intro/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/fractions-intro/package.json b/main/fractions-intro/package.json --- a/main/fractions-intro/package.json (revision 4c6ac472e71a8a2d1759d1f376e1bfd734420d8e) +++ b/main/fractions-intro/package.json (date 1657597091934) @@ -28,6 +28,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../fractions-intro/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/fractions-mixed-numbers/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/fractions-mixed-numbers/package.json b/main/fractions-mixed-numbers/package.json --- a/main/fractions-mixed-numbers/package.json (revision d5d22695c65834d6d2a60141d2b4e53b68b645ee) +++ b/main/fractions-mixed-numbers/package.json (date 1657597091935) @@ -28,6 +28,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../fractions-mixed-numbers/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/friction/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/friction/package.json b/main/friction/package.json --- a/main/friction/package.json (revision 0340cd007ec1f5e61fb597a6260b78f8ec68dbaa) +++ b/main/friction/package.json (date 1657597091935) @@ -28,6 +28,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../friction/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/phet-io-sim-specific/tsconfig.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/phet-io-sim-specific/tsconfig.json b/main/phet-io-sim-specific/tsconfig.json --- a/main/phet-io-sim-specific/tsconfig.json (revision a022152b519dd0141df8a80c7befff554a2f21ec) +++ b/main/phet-io-sim-specific/tsconfig.json (date 1657600349870) @@ -4,6 +4,7 @@ "js/**/*", "images/**/*", "mipmaps/**/*", - "sounds/**/*" + "sounds/**/*", + "repos/**/*" ] } \ No newline at end of file Index: main/function-builder-basics/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/function-builder-basics/package.json b/main/function-builder-basics/package.json --- a/main/function-builder-basics/package.json (revision 8437ac5099bd1905dab0192e6dc46ed46eeabc01) +++ b/main/function-builder-basics/package.json (date 1657597091937) @@ -28,6 +28,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../function-builder-basics/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/function-builder/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/function-builder/package.json b/main/function-builder/package.json --- a/main/function-builder/package.json (revision 406ba77ff641e48bd8ef5ae21287a9a52265f7c9) +++ b/main/function-builder/package.json (date 1657597091936) @@ -30,6 +30,18 @@ "extends": "../chipper/eslint/sim_eslintrc.js", "globals": { "bigRat": "readonly" - } + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../function-builder/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/gas-properties/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/gas-properties/package.json b/main/gas-properties/package.json --- a/main/gas-properties/package.json (revision b31336cd646b02b525c5a97ea8b718ce9d132f33) +++ b/main/gas-properties/package.json (date 1657635537572) @@ -25,6 +25,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../gas-properties/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/perennial/js/scripts/update-eslint-configs.ts IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/perennial/js/scripts/update-eslint-configs.ts b/main/perennial/js/scripts/update-eslint-configs.ts new file mode 100644 --- /dev/null (date 1657597925983) +++ b/main/perennial/js/scripts/update-eslint-configs.ts (date 1657597925983) @@ -0,0 +1,69 @@ +// Copyright 2022, University of Colorado Boulder + +/** + * This script uses Deno and is run like so: + * + * cd perennial + * deno run --allow-read js/scripts/update-eslint-configs.ts + * + * It counts failures of each rule + * + * @author Sam Reid (PhET Interactive Simulations) + */ +// @ts-ignore +const activeRepos: string[] = Deno.readTextFileSync( './data/active-repos' ).trim().split( '\n' ); +activeRepos.forEach( repo => { + const packageJSON = `../${repo}/package.json`; + let packageText: string | null = null; + try { + + // console.log( packageJSON ); + + // @ts-ignore + packageText = Deno.readTextFileSync( packageJSON ); + } + catch( e ) { + // nothing to do + } + if ( packageText ) { + console.log( packageJSON ); + + const json = JSON.parse( packageText ); + const eslintConfig = json.eslintConfig; + + if ( eslintConfig ) { + const overrides = eslintConfig.overrides; + + if ( overrides ) { + + const length = overrides.length; + // console.log( 'overrides length: ' + length ); + } + else { + console.log( 'no overrides' ); + + const overrides = `[ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../${repo}/tsconfig.json" + ] + } + } + ] +`; + const jsonOverrides = JSON.parse( overrides ); + eslintConfig.overrides = jsonOverrides; + + const newJSON = JSON.stringify( json, null, 2 ); + Deno.writeTextFileSync( packageJSON, newJSON ); + } + } + else { + console.log( 'no eslintConfig' ); + } + } +} ); \ No newline at end of file Index: main/gases-intro/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/gases-intro/package.json b/main/gases-intro/package.json --- a/main/gases-intro/package.json (revision d84186f9d44dc77ad20e9d7b39a4dbc10efdfa58) +++ b/main/gases-intro/package.json (date 1657635537613) @@ -26,6 +26,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../gases-intro/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/perennial/js/grunt/Gruntfile.js IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/perennial/js/grunt/Gruntfile.js b/main/perennial/js/grunt/Gruntfile.js --- a/main/perennial/js/grunt/Gruntfile.js (revision c963845d0e0e9cf7320bcbc959a0eba5ddf8ec96) +++ b/main/perennial/js/grunt/Gruntfile.js (date 1657597986949) @@ -517,12 +517,32 @@ // Don't always require this, as we may have an older chipper checked out. Also make sure it is the promise-based lint. const lint = require( '../../../chipper/js/grunt/lint' ); if ( lint.chipperAPIVersion === 'promises1' ) { - await lint( activeRepos.map( repo => `../${repo}` ), { - cache: cache, - fix: fix, - format: format, - chipAway: chipAway - } ); + + const allResults = []; + for ( let i = 0; i < activeRepos.length; i++ ) { + // for ( let i = 0; i < 10; i++ ) { + console.log( 'visiting ' + activeRepos[ i ] ); + const results = await lint( [ `../${activeRepos[ i ]}` ], { + cache: cache, + fix: fix, + format: format, + chipAway: chipAway, + warn: false + } ); + allResults.push( results ); + } + + let totalProblems = 0; + for ( let i = 0; i < allResults.length; i++ ) { + const results = allResults[ i ]; + const totalWarnings = _.sum( results.map( result => result.warningCount ) ); + const totalErrors = _.sum( results.map( result => result.errorCount ) ); + + totalProblems += totalWarnings + totalErrors; + } + if ( totalProblems > 0 ) { + grunt.warn( 'Lint problems: ' + totalProblems + '.' ); + } } } ) ); Index: main/gene-expression-essentials/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/gene-expression-essentials/package.json b/main/gene-expression-essentials/package.json --- a/main/gene-expression-essentials/package.json (revision fc08ac2b5ee10a5916456696546d4c75d7117fad) +++ b/main/gene-expression-essentials/package.json (date 1657597091937) @@ -24,6 +24,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../gene-expression-essentials/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/geometric-optics-basics/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/geometric-optics-basics/package.json b/main/geometric-optics-basics/package.json --- a/main/geometric-optics-basics/package.json (revision 8ce3bdb2832d639521eaa52f3ee16b9763614f01) +++ b/main/geometric-optics-basics/package.json (date 1657597091938) @@ -31,6 +31,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../geometric-optics-basics/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/geometric-optics/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/geometric-optics/package.json b/main/geometric-optics/package.json --- a/main/geometric-optics/package.json (revision 1a77af6e60f799b2530394621325d21bcfabf43e) +++ b/main/geometric-optics/package.json (date 1657598797432) @@ -35,6 +35,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../geometric-optics/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/adjacent-overload-signatures": "error", "@typescript-eslint/ban-ts-comment": "error", Index: main/perennial/tsconfig.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/perennial/tsconfig.json b/main/perennial/tsconfig.json new file mode 100644 --- /dev/null (date 1654309050331) +++ b/main/perennial/tsconfig.json (date 1654309050331) @@ -0,0 +1,10 @@ +// This file was automatically generated by grunt update +{ + "extends": "../chipper/tsconfig-core.json", + "include": [ + "js/**/*", + "images/**/*", + "mipmaps/**/*", + "sounds/**/*" + ] +} \ No newline at end of file Index: main/graphing-lines/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/graphing-lines/package.json b/main/graphing-lines/package.json --- a/main/graphing-lines/package.json (revision 8bf339a322f92b2b62a35dc994f95d98082d6756) +++ b/main/graphing-lines/package.json (date 1657597091938) @@ -26,6 +26,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../graphing-lines/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/graphing-quadratics/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/graphing-quadratics/package.json b/main/graphing-quadratics/package.json --- a/main/graphing-quadratics/package.json (revision 2e32e12ab192469a953716e482a93f70a45d803d) +++ b/main/graphing-quadratics/package.json (date 1657597091939) @@ -27,6 +27,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../graphing-quadratics/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/graphing-slope-intercept/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/graphing-slope-intercept/package.json b/main/graphing-slope-intercept/package.json --- a/main/graphing-slope-intercept/package.json (revision 2f4fd731a603e1762de52e63b4e282c73688cc83) +++ b/main/graphing-slope-intercept/package.json (date 1657597091939) @@ -27,6 +27,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../graphing-slope-intercept/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/gravity-force-lab-basics/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/gravity-force-lab-basics/package.json b/main/gravity-force-lab-basics/package.json --- a/main/gravity-force-lab-basics/package.json (revision 6fbbaa7c8a8a1d673b619d386deea2da46a68428) +++ b/main/gravity-force-lab-basics/package.json (date 1657597091940) @@ -32,6 +32,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../gravity-force-lab-basics/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/gravity-force-lab/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/gravity-force-lab/package.json b/main/gravity-force-lab/package.json --- a/main/gravity-force-lab/package.json (revision 5b13e93c5f114fc1d50290ce49003a73b2142254) +++ b/main/gravity-force-lab/package.json (date 1657597091940) @@ -32,6 +32,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../gravity-force-lab/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/greenhouse-effect/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/greenhouse-effect/package.json b/main/greenhouse-effect/package.json --- a/main/greenhouse-effect/package.json (revision cb970e803b5a3f93c58ea4c25afd990bb6d744e5) +++ b/main/greenhouse-effect/package.json (date 1657597091940) @@ -29,6 +29,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../greenhouse-effect/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/griddle/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/griddle/package.json b/main/griddle/package.json --- a/main/griddle/package.json (revision 02ccbce3b70c846316c7d5a58959f6e3602027ae) +++ b/main/griddle/package.json (date 1657597091940) @@ -23,6 +23,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../griddle/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/acid-base-solutions/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/acid-base-solutions/package.json b/main/acid-base-solutions/package.json --- a/main/acid-base-solutions/package.json (revision 90774c0575ae25876ddae16e247840811ccbe7c8) +++ b/main/acid-base-solutions/package.json (date 1657597091893) @@ -20,6 +20,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" - } -} + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../acid-base-solutions/tsconfig.json" + ] + } + } + ] + } +} \ No newline at end of file Index: main/hookes-law/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/hookes-law/package.json b/main/hookes-law/package.json --- a/main/hookes-law/package.json (revision 2351b22938a7039430883dee17a9638f15a62be8) +++ b/main/hookes-law/package.json (date 1657597091941) @@ -29,6 +29,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../hookes-law/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/aqua/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/aqua/package.json b/main/aqua/package.json --- a/main/aqua/package.json (revision ec48b3088bcf87d54c9e37faa4df4ce3126a9bda) +++ b/main/aqua/package.json (date 1657597091895) @@ -27,7 +27,19 @@ "kite": "readonly", "scenery": "readonly", "__dirname": "readonly" - } + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../aqua/tsconfig.json" + ] + } + } + ] }, "phet": { "buildStandalone": true, Index: main/interaction-dashboard/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/interaction-dashboard/package.json b/main/interaction-dashboard/package.json --- a/main/interaction-dashboard/package.json (revision 781863744d32dd67b66787738182ef04db056b49) +++ b/main/interaction-dashboard/package.json (date 1657597091941) @@ -28,6 +28,18 @@ ] }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../interaction-dashboard/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/area-builder/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/area-builder/package.json b/main/area-builder/package.json --- a/main/area-builder/package.json (revision afee9c427d2babd11e09789777979a6c02e8d491) +++ b/main/area-builder/package.json (date 1657597091895) @@ -27,6 +27,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../area-builder/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/inverse-square-law-common/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/inverse-square-law-common/package.json b/main/inverse-square-law-common/package.json --- a/main/inverse-square-law-common/package.json (revision bc12a8cf151562dee623ff377b7a903dac5290e7) +++ b/main/inverse-square-law-common/package.json (date 1657597091941) @@ -14,6 +14,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../inverse-square-law-common/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/area-model-algebra/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/area-model-algebra/package.json b/main/area-model-algebra/package.json --- a/main/area-model-algebra/package.json (revision b88befed337c6fd47ea079e90af07a8ad64a452d) +++ b/main/area-model-algebra/package.json (date 1657597091896) @@ -28,6 +28,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../area-model-algebra/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/isotopes-and-atomic-mass/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/isotopes-and-atomic-mass/package.json b/main/isotopes-and-atomic-mass/package.json --- a/main/isotopes-and-atomic-mass/package.json (revision c6719954ee696f22638e762e664498924a6d7b96) +++ b/main/isotopes-and-atomic-mass/package.json (date 1657597091942) @@ -23,6 +23,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../isotopes-and-atomic-mass/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/area-model-common/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/area-model-common/package.json b/main/area-model-common/package.json --- a/main/area-model-common/package.json (revision f7ed944bb2df15d537157742166bba1b304564a9) +++ b/main/area-model-common/package.json (date 1657597091897) @@ -19,6 +19,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../area-model-common/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/john-travoltage/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/john-travoltage/package.json b/main/john-travoltage/package.json --- a/main/john-travoltage/package.json (revision 62053e5ee563bf330a762af796ef51b58e090053) +++ b/main/john-travoltage/package.json (date 1657597091942) @@ -37,6 +37,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../john-travoltage/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/area-model-decimals/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/area-model-decimals/package.json b/main/area-model-decimals/package.json --- a/main/area-model-decimals/package.json (revision ba8560d41a2abd34089d7b84fc93b4570847320e) +++ b/main/area-model-decimals/package.json (date 1657597091897) @@ -25,6 +25,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../area-model-decimals/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/joist/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/joist/package.json b/main/joist/package.json --- a/main/joist/package.json (revision 8a498ccbaf0f2ff26c19bdf427c11728a39d9bba) +++ b/main/joist/package.json (date 1657597091942) @@ -27,6 +27,18 @@ }, "rules": { "template-curly-spacing": "off" - } + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../joist/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/area-model-introduction/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/area-model-introduction/package.json b/main/area-model-introduction/package.json --- a/main/area-model-introduction/package.json (revision 603ab1e5fe93b87494c5020f861a1bfdf27613c4) +++ b/main/area-model-introduction/package.json (date 1657597091898) @@ -25,6 +25,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../area-model-introduction/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/area-model-multiplication/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/area-model-multiplication/package.json b/main/area-model-multiplication/package.json --- a/main/area-model-multiplication/package.json (revision 53ee944567ee6862d4a3069432c8cf164da9a0ff) +++ b/main/area-model-multiplication/package.json (date 1657597091898) @@ -28,6 +28,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../area-model-multiplication/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/kite/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/kite/package.json b/main/kite/package.json --- a/main/kite/package.json (revision 464f8f70f2fff0f67230a633785c1aec8d42ad79) +++ b/main/kite/package.json (date 1657599545618) @@ -33,6 +33,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../kite/tsconfig.json" + ] + }, "rules": { "no-simple-type-checking-assertions": "off", "@typescript-eslint/explicit-member-accessibility": "off" Index: main/arithmetic/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/arithmetic/package.json b/main/arithmetic/package.json --- a/main/arithmetic/package.json (revision efd2a27ddc5a6b90731aed397604d8415842d01a) +++ b/main/arithmetic/package.json (date 1657597091899) @@ -34,6 +34,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../arithmetic/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/least-squares-regression/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/least-squares-regression/package.json b/main/least-squares-regression/package.json --- a/main/least-squares-regression/package.json (revision 2bd7501f532a1e4c99c8e172a69f6fe236e2dfe8) +++ b/main/least-squares-regression/package.json (date 1657597091943) @@ -23,6 +23,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../least-squares-regression/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/assert/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/assert/package.json b/main/assert/package.json --- a/main/assert/package.json (revision c13a8c7741d95fbd8e37619c66ebcca8686dffe7) +++ b/main/assert/package.json (date 1657597091901) @@ -10,6 +10,18 @@ "grunt": "~1.5.3" }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../assert/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/make-a-ten/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/make-a-ten/package.json b/main/make-a-ten/package.json --- a/main/make-a-ten/package.json (revision ba19c1ba94551814c5a91a722ebc8af8caf6e648) +++ b/main/make-a-ten/package.json (date 1657597091943) @@ -31,6 +31,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../make-a-ten/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/atomic-interactions/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/atomic-interactions/package.json b/main/atomic-interactions/package.json --- a/main/atomic-interactions/package.json (revision de2a54f77c72737468e0ec24b3197a629879967d) +++ b/main/atomic-interactions/package.json (date 1657635537576) @@ -25,6 +25,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../atomic-interactions/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/masses-and-springs-basics/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/masses-and-springs-basics/package.json b/main/masses-and-springs-basics/package.json --- a/main/masses-and-springs-basics/package.json (revision a9e134ee2ceedc0777a0d6fe03c7f8c828d827ff) +++ b/main/masses-and-springs-basics/package.json (date 1657597091943) @@ -28,6 +28,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../masses-and-springs-basics/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/axon/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/axon/package.json b/main/axon/package.json --- a/main/axon/package.json (revision 97beb2d8bf02897633d0d62cfd905d0aded19f93) +++ b/main/axon/package.json (date 1657597091902) @@ -19,6 +19,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../axon/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/masses-and-springs/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/masses-and-springs/package.json b/main/masses-and-springs/package.json --- a/main/masses-and-springs/package.json (revision 7716df916328cf482d71e23e56457ab186174eaa) +++ b/main/masses-and-springs/package.json (date 1657635537607) @@ -25,6 +25,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../masses-and-springs/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/balancing-act/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/balancing-act/package.json b/main/balancing-act/package.json --- a/main/balancing-act/package.json (revision 32ade09ffa7cbb938a6713e9074a06e016b1caa7) +++ b/main/balancing-act/package.json (date 1657597091903) @@ -31,6 +31,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../balancing-act/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/mean-share-and-balance/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/mean-share-and-balance/package.json b/main/mean-share-and-balance/package.json --- a/main/mean-share-and-balance/package.json (revision c0f5825298855ae80b48c24d752297d835b5f453) +++ b/main/mean-share-and-balance/package.json (date 1657599577448) @@ -31,6 +31,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../mean-share-and-balance/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/no-explicit-any": "error", "@typescript-eslint/explicit-member-accessibility": "error" Index: main/balancing-chemical-equations/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/balancing-chemical-equations/package.json b/main/balancing-chemical-equations/package.json --- a/main/balancing-chemical-equations/package.json (revision 8f520ed199ad585cb94817c39990b3c5a7fdbcee) +++ b/main/balancing-chemical-equations/package.json (date 1657597091904) @@ -27,6 +27,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../balancing-chemical-equations/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/mobius/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/mobius/package.json b/main/mobius/package.json --- a/main/mobius/package.json (revision 7bf75bfed42b496e3e9f481c12ec5dba90bd463c) +++ b/main/mobius/package.json (date 1657599605178) @@ -31,6 +31,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../mobius/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/explicit-member-accessibility": "off" } Index: main/balloons-and-static-electricity/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/balloons-and-static-electricity/package.json b/main/balloons-and-static-electricity/package.json --- a/main/balloons-and-static-electricity/package.json (revision fea52193180f3dc536a4f96c380d4166dd1f8ef4) +++ b/main/balloons-and-static-electricity/package.json (date 1657597091904) @@ -37,6 +37,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../balloons-and-static-electricity/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/models-of-the-hydrogen-atom/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/models-of-the-hydrogen-atom/package.json b/main/models-of-the-hydrogen-atom/package.json --- a/main/models-of-the-hydrogen-atom/package.json (revision 22de8120d13ec13026d953bbe59f7133a87bf46b) +++ b/main/models-of-the-hydrogen-atom/package.json (date 1657599625801) @@ -35,6 +35,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../models-of-the-hydrogen-atom/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/adjacent-overload-signatures": "error", "@typescript-eslint/ban-ts-comment": "error", Index: main/bamboo/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/bamboo/package.json b/main/bamboo/package.json --- a/main/bamboo/package.json (revision 9a7a2d3ff1826974c30d622e571efc8e61a40ef3) +++ b/main/bamboo/package.json (date 1657598934862) @@ -26,6 +26,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../bamboo/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/no-explicit-any": "error" } Index: main/molarity/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/molarity/package.json b/main/molarity/package.json --- a/main/molarity/package.json (revision 5ba8988334fd27c5590053a156610eb7a473317a) +++ b/main/molarity/package.json (date 1657597091944) @@ -28,6 +28,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../molarity/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/beers-law-lab/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/beers-law-lab/package.json b/main/beers-law-lab/package.json --- a/main/beers-law-lab/package.json (revision 2a5dc8816b1d420924344dece01c62c2c18148cc) +++ b/main/beers-law-lab/package.json (date 1657597091906) @@ -29,6 +29,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../beers-law-lab/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/bending-light/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/bending-light/package.json b/main/bending-light/package.json --- a/main/bending-light/package.json (revision b06ff54124cd8fd2774a0f0430f309a541b87d58) +++ b/main/bending-light/package.json (date 1657598957892) @@ -33,6 +33,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../bending-light/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/no-explicit-any": "error" } Index: main/molecule-polarity/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/molecule-polarity/package.json b/main/molecule-polarity/package.json --- a/main/molecule-polarity/package.json (revision c0c7fea8584953b1218ddf65163a6046c54a8743) +++ b/main/molecule-polarity/package.json (date 1657597091945) @@ -27,6 +27,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../molecule-polarity/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/blackbody-spectrum/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/blackbody-spectrum/package.json b/main/blackbody-spectrum/package.json --- a/main/blackbody-spectrum/package.json (revision 54b067db7e9e8ef880c810edcfd0280f44c4a748) +++ b/main/blackbody-spectrum/package.json (date 1657597091907) @@ -10,7 +10,10 @@ "grunt": "~1.5.3" }, "phet": { - "colorProfiles": [ "default", "projector" ], + "colorProfiles": [ + "default", + "projector" + ], "requirejsNamespace": "BLACKBODY_SPECTRUM", "runnable": true, "simulation": true, @@ -22,6 +25,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../blackbody-spectrum/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/molecule-shapes-basics/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/molecule-shapes-basics/package.json b/main/molecule-shapes-basics/package.json --- a/main/molecule-shapes-basics/package.json (revision 11afae2b3cc48bcc74e27f7b7712da30d3cd036c) +++ b/main/molecule-shapes-basics/package.json (date 1657597091945) @@ -37,6 +37,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../molecule-shapes-basics/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/blast/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/blast/package.json b/main/blast/package.json --- a/main/blast/package.json (revision f9a5c135adfd8d289efee6abd269e2bc592a2030) +++ b/main/blast/package.json (date 1657597091908) @@ -21,6 +21,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../blast/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/molecule-shapes/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/molecule-shapes/package.json b/main/molecule-shapes/package.json --- a/main/molecule-shapes/package.json (revision 1ed0f357fd8f290a23b15f7a1511c170694c49bc) +++ b/main/molecule-shapes/package.json (date 1657597091945) @@ -39,6 +39,18 @@ "extends": "../chipper/eslint/sim_eslintrc.js", "globals": { "THREE": "readonly" - } + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../molecule-shapes/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/brand/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/brand/package.json b/main/brand/package.json --- a/main/brand/package.json (revision eef7239381f6dfac75435fc90ddfb04f84549c54) +++ b/main/brand/package.json (date 1657597091908) @@ -14,6 +14,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../brand/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/molecules-and-light/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/molecules-and-light/package.json b/main/molecules-and-light/package.json --- a/main/molecules-and-light/package.json (revision 29b91cd50a8d8e0e0417fca67b0c26940e768103) +++ b/main/molecules-and-light/package.json (date 1657597091946) @@ -29,6 +29,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../molecules-and-light/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/build-a-fraction/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/build-a-fraction/package.json b/main/build-a-fraction/package.json --- a/main/build-a-fraction/package.json (revision e61920c502de7e2f376bb4f678a17cea50ee4219) +++ b/main/build-a-fraction/package.json (date 1657597091915) @@ -28,6 +28,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../build-a-fraction/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/my-solar-system/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/my-solar-system/package.json b/main/my-solar-system/package.json --- a/main/my-solar-system/package.json (revision 0b0a1f0160fe6f21c786acd314a0c8a40cee4d1e) +++ b/main/my-solar-system/package.json (date 1657599668293) @@ -29,6 +29,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../my-solar-system/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/explicit-member-accessibility": "off" } Index: main/build-a-molecule/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/build-a-molecule/package.json b/main/build-a-molecule/package.json --- a/main/build-a-molecule/package.json (revision cdf2102a080e0021c51d8bb5b01c8f51d8397049) +++ b/main/build-a-molecule/package.json (date 1657597091916) @@ -34,6 +34,18 @@ "extends": "../chipper/eslint/sim_eslintrc.js", "globals": { "THREE": "readonly" - } + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../build-a-molecule/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/natural-selection/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/natural-selection/package.json b/main/natural-selection/package.json --- a/main/natural-selection/package.json (revision a4cd683567862926ff787bac55ed9cd7f3778641) +++ b/main/natural-selection/package.json (date 1657597091947) @@ -24,6 +24,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../natural-selection/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/build-a-nucleus/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/build-a-nucleus/package.json b/main/build-a-nucleus/package.json --- a/main/build-a-nucleus/package.json (revision 965c25d3b969be5beb88cbc6fbca11e75876ad73) +++ b/main/build-a-nucleus/package.json (date 1657598997187) @@ -32,6 +32,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../build-a-nucleus/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/explicit-member-accessibility": "off" } Index: main/neuron/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/neuron/package.json b/main/neuron/package.json --- a/main/neuron/package.json (revision 02c9f1c0b640aaef4d6ab07ee2b78002bea1b21b) +++ b/main/neuron/package.json (date 1657597091947) @@ -23,6 +23,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../neuron/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/build-an-atom/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/build-an-atom/package.json b/main/build-an-atom/package.json --- a/main/build-an-atom/package.json (revision 74ea41ccb14b79d52156ed556fdccfc4b0bc06d9) +++ b/main/build-an-atom/package.json (date 1657597091916) @@ -28,6 +28,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../build-an-atom/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/nitroglycerin/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/nitroglycerin/package.json b/main/nitroglycerin/package.json --- a/main/nitroglycerin/package.json (revision be115b2c1b265d386e0745eeb4501cf2bd960648) +++ b/main/nitroglycerin/package.json (date 1657597091947) @@ -14,6 +14,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../nitroglycerin/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/bumper/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/bumper/package.json b/main/bumper/package.json --- a/main/bumper/package.json (revision f011bd7828426cb177a4bffe861e2a0e7dd7e268) +++ b/main/bumper/package.json (date 1657597091917) @@ -25,6 +25,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../bumper/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/normal-modes/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/normal-modes/package.json b/main/normal-modes/package.json --- a/main/normal-modes/package.json (revision 70f6ef2cab2a9cf913f1a959edb8f0c533f5b8f0) +++ b/main/normal-modes/package.json (date 1657597091947) @@ -20,6 +20,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../normal-modes/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/buoyancy/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/buoyancy/package.json b/main/buoyancy/package.json --- a/main/buoyancy/package.json (revision 6e9712aec9fd9ebf747a681dfd88c46562cbf482) +++ b/main/buoyancy/package.json (date 1657597091917) @@ -38,6 +38,18 @@ "p2": "readonly", "THREE": "readonly", "decomp": "readonly" - } + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../buoyancy/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/number-line-common/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/number-line-common/package.json b/main/number-line-common/package.json --- a/main/number-line-common/package.json (revision 9ea71eec38ca169712da2e6ffdfa70f27b64118b) +++ b/main/number-line-common/package.json (date 1657597091948) @@ -14,6 +14,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../number-line-common/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/calculus-grapher/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/calculus-grapher/package.json b/main/calculus-grapher/package.json --- a/main/calculus-grapher/package.json (revision db86bc7521ded7b7d5e38e8bd49a69a69b83fa63) +++ b/main/calculus-grapher/package.json (date 1657597091917) @@ -23,6 +23,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" - } -} + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../calculus-grapher/tsconfig.json" + ] + } + } + ] + } +} \ No newline at end of file Index: main/number-line-distance/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/number-line-distance/package.json b/main/number-line-distance/package.json --- a/main/number-line-distance/package.json (revision 612a5bff74c8a0b63f131f23d291cc847821a9e0) +++ b/main/number-line-distance/package.json (date 1657597091948) @@ -23,6 +23,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../number-line-distance/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/perennial-alias/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/perennial-alias/package.json b/main/perennial-alias/package.json --- a/main/perennial-alias/package.json (revision c963845d0e0e9cf7320bcbc959a0eba5ddf8ec96) +++ b/main/perennial-alias/package.json (date 1657597091950) @@ -29,6 +29,18 @@ "xml2js": "^0.4.15" }, "eslintConfig": { - "extends": "../chipper/eslint/node_eslintrc.js" - } -} + "extends": "../chipper/eslint/node_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../perennial-alias/tsconfig.json" + ] + } + } + ] + } +} \ No newline at end of file Index: main/capacitor-lab-basics/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/capacitor-lab-basics/package.json b/main/capacitor-lab-basics/package.json --- a/main/capacitor-lab-basics/package.json (revision c3fe8352667c968654580f6dc2b04780956ed3db) +++ b/main/capacitor-lab-basics/package.json (date 1657597091918) @@ -32,6 +32,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../capacitor-lab-basics/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/number-line-integers/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/number-line-integers/package.json b/main/number-line-integers/package.json --- a/main/number-line-integers/package.json (revision b0cce266a66cfb1317596ecdccd0be6a506d15e5) +++ b/main/number-line-integers/package.json (date 1657597091948) @@ -24,6 +24,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../number-line-integers/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/center-and-variability/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/center-and-variability/package.json b/main/center-and-variability/package.json --- a/main/center-and-variability/package.json (revision 92fb65fb2381e005b619edb2c850169ceaab50e8) +++ b/main/center-and-variability/package.json (date 1657599226490) @@ -35,6 +35,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../center-and-variability/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/no-explicit-any": "error", "@typescript-eslint/explicit-member-accessibility": "error" Index: main/number-line-operations/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/number-line-operations/package.json b/main/number-line-operations/package.json --- a/main/number-line-operations/package.json (revision 8b194cdd2c59597d42d93eadd883ba37e5ce3496) +++ b/main/number-line-operations/package.json (date 1657597091948) @@ -24,6 +24,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../number-line-operations/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/chains/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/chains/package.json b/main/chains/package.json --- a/main/chains/package.json (revision 5fd289eb32accfabf386d5d8965ad51a071b1bdb) +++ b/main/chains/package.json (date 1657597091919) @@ -23,6 +23,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../chains/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/number-play/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/number-play/package.json b/main/number-play/package.json --- a/main/number-play/package.json (revision e8cf7d7286d20e401dbee978a2e4d9b5556cdf62) +++ b/main/number-play/package.json (date 1657599731851) @@ -35,6 +35,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../number-play/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/explicit-member-accessibility": "off" } Index: main/charges-and-fields/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/charges-and-fields/package.json b/main/charges-and-fields/package.json --- a/main/charges-and-fields/package.json (revision c693841b481064afe88b892a54c40f26d8b19204) +++ b/main/charges-and-fields/package.json (date 1657635537588) @@ -25,6 +25,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../charges-and-fields/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/ohms-law/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/ohms-law/package.json b/main/ohms-law/package.json --- a/main/ohms-law/package.json (revision 68430b799bbaf7cd3f8218a187cacfadff57a003) +++ b/main/ohms-law/package.json (date 1657597091949) @@ -25,6 +25,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../ohms-law/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/optics-lab/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/optics-lab/package.json b/main/optics-lab/package.json --- a/main/optics-lab/package.json (revision a5200fdf6b634ebab7ee95ba0de5e747d21a173f) +++ b/main/optics-lab/package.json (date 1657597091949) @@ -20,6 +20,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../optics-lab/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/circuit-construction-kit-ac-virtual-lab/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/circuit-construction-kit-ac-virtual-lab/package.json b/main/circuit-construction-kit-ac-virtual-lab/package.json --- a/main/circuit-construction-kit-ac-virtual-lab/package.json (revision f66fb22c889fb56c2dad9f0baf4f3a4384fe5662) +++ b/main/circuit-construction-kit-ac-virtual-lab/package.json (date 1657597091921) @@ -31,6 +31,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../circuit-construction-kit-ac-virtual-lab/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/circuit-construction-kit-ac/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/circuit-construction-kit-ac/package.json b/main/circuit-construction-kit-ac/package.json --- a/main/circuit-construction-kit-ac/package.json (revision 331d5b22a0a5d722179f7c775826b99b5d9a072a) +++ b/main/circuit-construction-kit-ac/package.json (date 1657597091920) @@ -31,6 +31,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../circuit-construction-kit-ac/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/pendulum-lab/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/pendulum-lab/package.json b/main/pendulum-lab/package.json --- a/main/pendulum-lab/package.json (revision df6aceda62f222a1f28d44a852f31749bf137166) +++ b/main/pendulum-lab/package.json (date 1657597091949) @@ -23,10 +23,21 @@ "simFeatures": { "supportsSound": true }, - "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../pendulum-lab/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/circuit-construction-kit-black-box-study/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/circuit-construction-kit-black-box-study/package.json b/main/circuit-construction-kit-black-box-study/package.json --- a/main/circuit-construction-kit-black-box-study/package.json (revision 146476853a6e42a4f908872051e1c44093bd3763) +++ b/main/circuit-construction-kit-black-box-study/package.json (date 1657597091921) @@ -31,6 +31,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../circuit-construction-kit-black-box-study/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/circuit-construction-kit-common/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/circuit-construction-kit-common/package.json b/main/circuit-construction-kit-common/package.json --- a/main/circuit-construction-kit-common/package.json (revision 284eeaa920e3ae1d17b667ccb0e8036521a68609) +++ b/main/circuit-construction-kit-common/package.json (date 1657599226494) @@ -29,6 +29,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../circuit-construction-kit-common/tsconfig.json" + ] + }, "rules": { } } Index: main/perennial/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/perennial/package.json b/main/perennial/package.json --- a/main/perennial/package.json (revision c963845d0e0e9cf7320bcbc959a0eba5ddf8ec96) +++ b/main/perennial/package.json (date 1657599816387) @@ -29,6 +29,18 @@ "xml2js": "^0.4.15" }, "eslintConfig": { - "extends": "../chipper/eslint/node_eslintrc.js" + "extends": "../chipper/eslint/node_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../perennial/tsconfig.json" + ] + } + } + ] } } Index: main/circuit-construction-kit-dc-virtual-lab/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/circuit-construction-kit-dc-virtual-lab/package.json b/main/circuit-construction-kit-dc-virtual-lab/package.json --- a/main/circuit-construction-kit-dc-virtual-lab/package.json (revision dfea72a680af6d0ab29dfc6509801118f304c977) +++ b/main/circuit-construction-kit-dc-virtual-lab/package.json (date 1657597091923) @@ -31,6 +31,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../circuit-construction-kit-dc-virtual-lab/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/ph-scale-basics/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/ph-scale-basics/package.json b/main/ph-scale-basics/package.json --- a/main/ph-scale-basics/package.json (revision 6ead538467fc28aaa80d54b6feb8705fa6bb2ed1) +++ b/main/ph-scale-basics/package.json (date 1657597091950) @@ -28,6 +28,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../ph-scale-basics/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/circuit-construction-kit-dc/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/circuit-construction-kit-dc/package.json b/main/circuit-construction-kit-dc/package.json --- a/main/circuit-construction-kit-dc/package.json (revision 4722cf853b00521080d9156281c2a50fb88063fd) +++ b/main/circuit-construction-kit-dc/package.json (date 1657597091922) @@ -31,6 +31,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../circuit-construction-kit-dc/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/ph-scale/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/ph-scale/package.json b/main/ph-scale/package.json --- a/main/ph-scale/package.json (revision 3a8001ef8329de5ef5c73e8c09170424955f1e89) +++ b/main/ph-scale/package.json (date 1657597091950) @@ -27,6 +27,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../ph-scale/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/collision-lab/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/collision-lab/package.json b/main/collision-lab/package.json --- a/main/collision-lab/package.json (revision 719dd2adf70d18801d9471e29b89d9e528b5d79b) +++ b/main/collision-lab/package.json (date 1657597091923) @@ -26,6 +26,18 @@ "extends": "../chipper/eslint/sim_eslintrc.js", "globals": { "sceneryLog": "readonly" - } + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../collision-lab/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/color-vision/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/color-vision/package.json b/main/color-vision/package.json --- a/main/color-vision/package.json (revision 8f07369a9b4c49242d17fe52fff789d3d606fa14) +++ b/main/color-vision/package.json (date 1657597091924) @@ -21,6 +21,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../color-vision/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/concentration/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/concentration/package.json b/main/concentration/package.json --- a/main/concentration/package.json (revision 445838ed8c904d6804da97cbfffb5eb0e05eb382) +++ b/main/concentration/package.json (date 1657597091924) @@ -25,6 +25,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../concentration/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/phet-core/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/phet-core/package.json b/main/phet-core/package.json --- a/main/phet-core/package.json (revision cec9ecd60db1fcfdcdd40b08d868c329abf23b7b) +++ b/main/phet-core/package.json (date 1657600220955) @@ -21,6 +21,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../phet-core/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/explicit-member-accessibility": "off" } Index: main/coulombs-law/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/coulombs-law/package.json b/main/coulombs-law/package.json --- a/main/coulombs-law/package.json (revision 36d3c08a23c232170fa57dd930ddbdd2ea377db8) +++ b/main/coulombs-law/package.json (date 1657635537432) @@ -21,13 +21,25 @@ "phet-io", "adapted-from-phet" ], - "simFeatures":{ + "simFeatures": { "supportsInteractiveDescription": true }, "simulation": true, "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../coulombs-law/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/counting-common/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/counting-common/package.json b/main/counting-common/package.json --- a/main/counting-common/package.json (revision 6e430709e08a8a5e32f00758f95bd943ec4f14a5) +++ b/main/counting-common/package.json (date 1657597091925) @@ -14,6 +14,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../counting-common/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/curve-fitting/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/curve-fitting/package.json b/main/curve-fitting/package.json --- a/main/curve-fitting/package.json (revision e8a7d2aca4ce963753b1f045d608501809b966cd) +++ b/main/curve-fitting/package.json (date 1657597091926) @@ -27,6 +27,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../curve-fitting/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/phet-io-sim-specific/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/phet-io-sim-specific/package.json b/main/phet-io-sim-specific/package.json --- a/main/phet-io-sim-specific/package.json (revision a022152b519dd0141df8a80c7befff554a2f21ec) +++ b/main/phet-io-sim-specific/package.json (date 1657599875280) @@ -21,6 +21,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../phet-io-sim-specific/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/no-explicit-any": "error" } Index: main/phet-io-test-sim/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/phet-io-test-sim/package.json b/main/phet-io-test-sim/package.json --- a/main/phet-io-test-sim/package.json (revision 169797a2dff0d1b9eae1d3283d5934650e85f756) +++ b/main/phet-io-test-sim/package.json (date 1657597091952) @@ -23,6 +23,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../phet-io-test-sim/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/phet-io-website/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/phet-io-website/package.json b/main/phet-io-website/package.json --- a/main/phet-io-website/package.json (revision 26a13c90e2dec412ae6d220f48b771dc0cb4423d) +++ b/main/phet-io-website/package.json (date 1657597091953) @@ -7,6 +7,18 @@ "url": "https://github.com/phetsims/phet-io-website.git" }, "eslintConfig": { - "extends": "../chipper/eslint/.eslintrc.js" + "extends": "../chipper/eslint/.eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../phet-io-website/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/phet-io-wrapper-arithmetic/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/phet-io-wrapper-arithmetic/package.json b/main/phet-io-wrapper-arithmetic/package.json --- a/main/phet-io-wrapper-arithmetic/package.json (revision dc7b21a16c559334ab2a694af479d86cf7905c56) +++ b/main/phet-io-wrapper-arithmetic/package.json (date 1657597091953) @@ -7,6 +7,18 @@ "url": "https://github.com/phetsims/phet-io-wrapper-arithmetic.git" }, "eslintConfig": { - "extends": "../chipper/eslint/.eslintrc.js" + "extends": "../chipper/eslint/.eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../phet-io-wrapper-arithmetic/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/phet-io-wrapper-classroom-activity/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/phet-io-wrapper-classroom-activity/package.json b/main/phet-io-wrapper-classroom-activity/package.json --- a/main/phet-io-wrapper-classroom-activity/package.json (revision ba670fb0f4cf1fdb4968cf95e52289cdfc27c4a5) +++ b/main/phet-io-wrapper-classroom-activity/package.json (date 1657597091953) @@ -10,6 +10,18 @@ "grunt": "~1.5.3" }, "eslintConfig": { - "extends": "../chipper/eslint/.eslintrc.js" + "extends": "../chipper/eslint/.eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../phet-io-wrapper-classroom-activity/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/phet-io-wrapper-haptics/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/phet-io-wrapper-haptics/package.json b/main/phet-io-wrapper-haptics/package.json --- a/main/phet-io-wrapper-haptics/package.json (revision 610f5f2761c64beb8fcee70feb6fd32fd95e88c0) +++ b/main/phet-io-wrapper-haptics/package.json (date 1657597091953) @@ -16,6 +16,18 @@ "phetLibs": [] }, "eslintConfig": { - "extends": "../chipper/eslint/.eslintrc.js" + "extends": "../chipper/eslint/.eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../phet-io-wrapper-haptics/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/phet-io-wrapper-hookes-law-energy/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/phet-io-wrapper-hookes-law-energy/package.json b/main/phet-io-wrapper-hookes-law-energy/package.json --- a/main/phet-io-wrapper-hookes-law-energy/package.json (revision 11254d6750cb19e38c1d5410152f84d84b27c727) +++ b/main/phet-io-wrapper-hookes-law-energy/package.json (date 1657597091954) @@ -7,6 +7,18 @@ "url": "https://github.com/phetsims/phet-io-wrapper-hookes-law.git" }, "eslintConfig": { - "extends": "../chipper/eslint/.eslintrc.js" + "extends": "../chipper/eslint/.eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../phet-io-wrapper-hookes-law-energy/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/phet-io-wrapper-lab-book/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/phet-io-wrapper-lab-book/package.json b/main/phet-io-wrapper-lab-book/package.json --- a/main/phet-io-wrapper-lab-book/package.json (revision a3623e8fe62628c6b72136a629e1607b403d352a) +++ b/main/phet-io-wrapper-lab-book/package.json (date 1657597091954) @@ -13,6 +13,18 @@ "extends": "../chipper/eslint/.eslintrc.js", "globals": { "d3": "readonly" - } + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../phet-io-wrapper-lab-book/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/phet-io-wrappers/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/phet-io-wrappers/package.json b/main/phet-io-wrappers/package.json --- a/main/phet-io-wrappers/package.json (revision afb6e2ab3af42eea53b16eb79e4cb02b01bae798) +++ b/main/phet-io-wrappers/package.json (date 1657599936622) @@ -30,6 +30,18 @@ "Metacog": "readonly", "Chart": "readonly", "RequestInit": "readonly" - } + }, + "overrides": [ + { + "files": [ + "**/*.ts","**/*.tsx" + ], + "parserOptions": { + "project": [ + "../phet-io-wrappers/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/phet-io/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/phet-io/package.json b/main/phet-io/package.json --- a/main/phet-io/package.json (revision 3ab9410ff8bb8fe3ba3d931327e727609a7abccd) +++ b/main/phet-io/package.json (date 1657597091951) @@ -15,6 +15,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../phet-io/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/phetcommon/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/phetcommon/package.json b/main/phetcommon/package.json --- a/main/phetcommon/package.json (revision cc0f1e38e7e88559dd758483e15d91ea2c24a83b) +++ b/main/phetcommon/package.json (date 1657597091955) @@ -15,6 +15,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../phetcommon/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/phetmarks/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/phetmarks/package.json b/main/phetmarks/package.json --- a/main/phetmarks/package.json (revision 2d18a81336441f6036089947cdf45dd1dcf72d50) +++ b/main/phetmarks/package.json (date 1657597091955) @@ -10,6 +10,18 @@ "grunt": "~1.5.3" }, "eslintConfig": { - "extends": "../chipper/eslint/.eslintrc.js" + "extends": "../chipper/eslint/.eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../phetmarks/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/phettest/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/phettest/package.json b/main/phettest/package.json --- a/main/phettest/package.json (revision 8932f5f547b9c06f61e477fcc1b8561a059c1919) +++ b/main/phettest/package.json (date 1657597091955) @@ -10,6 +10,18 @@ "grunt": "~1.5.3" }, "eslintConfig": { - "extends": "../chipper/eslint/.eslintrc.js" + "extends": "../chipper/eslint/.eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../phettest/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/plinko-probability/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/plinko-probability/package.json b/main/plinko-probability/package.json --- a/main/plinko-probability/package.json (revision c93b9ddc88994deda7e81aa81866842665c2785b) +++ b/main/plinko-probability/package.json (date 1657597091955) @@ -23,6 +23,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../plinko-probability/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/projectile-motion/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/projectile-motion/package.json b/main/projectile-motion/package.json --- a/main/projectile-motion/package.json (revision b1d3f70dee41abd4834e7defffa26efc6991e4e3) +++ b/main/projectile-motion/package.json (date 1657597091956) @@ -24,6 +24,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../projectile-motion/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/proportion-playground/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/proportion-playground/package.json b/main/proportion-playground/package.json --- a/main/proportion-playground/package.json (revision 922d483d4925946883d0d9dd9059df46a8cca6b2) +++ b/main/proportion-playground/package.json (date 1657597091956) @@ -21,6 +21,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../proportion-playground/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/quadrilateral/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/quadrilateral/package.json b/main/quadrilateral/package.json --- a/main/quadrilateral/package.json (revision 22a0d363dee92099fd533c3ac6ac546bc1d677fe) +++ b/main/quadrilateral/package.json (date 1657599962521) @@ -43,6 +43,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../quadrilateral/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/no-explicit-any": "error" } Index: main/scenery/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/scenery/package.json b/main/scenery/package.json --- a/main/scenery/package.json (revision 7d2985c88be4f12da3e87acdf66d4cc290121e1f) +++ b/main/scenery/package.json (date 1657599998478) @@ -45,6 +45,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../scenery/tsconfig.json" + ] + }, "rules": { "no-simple-type-checking-assertions": "off", "@typescript-eslint/explicit-member-accessibility": "off" Index: main/quake/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/quake/package.json b/main/quake/package.json --- a/main/quake/package.json (revision 1599d670e3769fd19959e850bf0074f5d963a20c) +++ b/main/quake/package.json (date 1657597091957) @@ -55,6 +55,18 @@ "nativeVibration": "readonly", "Response": "readonly", "XMLHttpRequest": "readonly" - } + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../quake/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/query-string-machine/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/query-string-machine/package.json b/main/query-string-machine/package.json --- a/main/query-string-machine/package.json (revision fd607aa3060252e9b5161807840f76be1c2789ad) +++ b/main/query-string-machine/package.json (date 1657597091957) @@ -13,6 +13,18 @@ "generatedUnitTests": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../query-string-machine/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/ratio-and-proportion/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/ratio-and-proportion/package.json b/main/ratio-and-proportion/package.json --- a/main/ratio-and-proportion/package.json (revision 40457f9384ecccf883d597abaf0cc312519dc42f) +++ b/main/ratio-and-proportion/package.json (date 1657597091958) @@ -39,6 +39,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../ratio-and-proportion/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/reactants-products-and-leftovers/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/reactants-products-and-leftovers/package.json b/main/reactants-products-and-leftovers/package.json --- a/main/reactants-products-and-leftovers/package.json (revision 2bf4015ef158054567b37d92c9e773909f249428) +++ b/main/reactants-products-and-leftovers/package.json (date 1657597091958) @@ -27,6 +27,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../reactants-products-and-leftovers/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/resistance-in-a-wire/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/resistance-in-a-wire/package.json b/main/resistance-in-a-wire/package.json --- a/main/resistance-in-a-wire/package.json (revision d9957f08f195d7a5f486410d9ef2cf22eb92033a) +++ b/main/resistance-in-a-wire/package.json (date 1657597091958) @@ -25,6 +25,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../resistance-in-a-wire/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/rosetta/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/rosetta/package.json b/main/rosetta/package.json --- a/main/rosetta/package.json (revision 9ec92efe935819f960a5a76ff3988c5a2b12ccc5) +++ b/main/rosetta/package.json (date 1657597091959) @@ -35,6 +35,18 @@ "extends": "../chipper/eslint/node_eslintrc.js", "globals": { "alert": "readonly" - } - } -} + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../rosetta/tsconfig.json" + ] + } + } + ] + } +} \ No newline at end of file Index: main/rutherford-scattering/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/rutherford-scattering/package.json b/main/rutherford-scattering/package.json --- a/main/rutherford-scattering/package.json (revision 2e21444c5de904b393e94d62b10a272a9c2587d1) +++ b/main/rutherford-scattering/package.json (date 1657635537585) @@ -24,6 +24,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../rutherford-scattering/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/scenery-phet/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/scenery-phet/package.json b/main/scenery-phet/package.json --- a/main/scenery-phet/package.json (revision 99aeff2a407a90a92aad0a2cf6c1072c17ae26c1) +++ b/main/scenery-phet/package.json (date 1657600276311) @@ -40,6 +40,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../scenery-phet/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/adjacent-overload-signatures": "error" } Index: main/shred/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/shred/package.json b/main/shred/package.json --- a/main/shred/package.json (revision f51362abbc294453e63bb5b0ac41f8d3ebe1daf6) +++ b/main/shred/package.json (date 1657597091960) @@ -14,6 +14,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../shred/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/simula-rasa/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/simula-rasa/package.json b/main/simula-rasa/package.json --- a/main/simula-rasa/package.json (revision 8de9cbd12f6848590852d071b6e675bb380f7b42) +++ b/main/simula-rasa/package.json (date 1657600079445) @@ -27,6 +27,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../simula-rasa/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/adjacent-overload-signatures": "error", "@typescript-eslint/ban-ts-comment": "error", Index: main/skiffle/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/skiffle/package.json b/main/skiffle/package.json --- a/main/skiffle/package.json (revision e05e420e1024d4760ddc6f4a78dfe4cda3692e82) +++ b/main/skiffle/package.json (date 1657597091961) @@ -16,6 +16,18 @@ "extends": "../chipper/eslint/node_eslintrc.js", "globals": { "skiffle": "readonly" - } - } -} + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../skiffle/tsconfig.json" + ] + } + } + ] + } +} \ No newline at end of file Index: main/states-of-matter-basics/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/states-of-matter-basics/package.json b/main/states-of-matter-basics/package.json --- a/main/states-of-matter-basics/package.json (revision d74636ecf66cf8dd7671b4f58881034abd12bfd2) +++ b/main/states-of-matter-basics/package.json (date 1657635537530) @@ -29,6 +29,18 @@ } }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../states-of-matter-basics/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/states-of-matter/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/states-of-matter/package.json b/main/states-of-matter/package.json --- a/main/states-of-matter/package.json (revision b62033dcb9c0d5006742fba01833d771b6485410) +++ b/main/states-of-matter/package.json (date 1657635537609) @@ -28,6 +28,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../states-of-matter/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/studio/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/studio/package.json b/main/studio/package.json --- a/main/studio/package.json (revision 09568bce47777cf6279e7075e38a8cb4eae49979) +++ b/main/studio/package.json (date 1657597091961) @@ -30,6 +30,18 @@ "d3": "readonly", "Metacog": "readonly", "Chart": "readonly" - } + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../studio/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/sun/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/sun/package.json b/main/sun/package.json --- a/main/sun/package.json (revision 97b95b3a4ea5261034edea1b9358165797271607) +++ b/main/sun/package.json (date 1657600100347) @@ -37,6 +37,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../sun/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/adjacent-overload-signatures": "error" } Index: main/tambo/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/tambo/package.json b/main/tambo/package.json --- a/main/tambo/package.json (revision 99e920e353f9774616008952c4e83e67f14fb6da) +++ b/main/tambo/package.json (date 1657600309732) @@ -32,7 +32,12 @@ { "files": [ "**/*.ts" - ] + ], + "parserOptions": { + "project": [ + "../tambo/tsconfig.json" + ] + } } ] } Index: main/tandem/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/tandem/package.json b/main/tandem/package.json --- a/main/tandem/package.json (revision 368ab1281641b718269eeb96af0d74e172402151) +++ b/main/tandem/package.json (date 1657597091963) @@ -19,6 +19,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../tandem/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/tangible/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/tangible/package.json b/main/tangible/package.json --- a/main/tangible/package.json (revision c7a1a4e4dea3b8171a027900f1f6b5d4e6becb85) +++ b/main/tangible/package.json (date 1657597091963) @@ -17,6 +17,18 @@ "extends": "../chipper/eslint/sim_eslintrc.js", "globals": { "mediaPipeDependencies": "readonly" - } + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../tangible/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/tappi/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/tappi/package.json b/main/tappi/package.json --- a/main/tappi/package.json (revision d4e174dda251df25f1f7899fb894650249e698ed) +++ b/main/tappi/package.json (date 1657597091963) @@ -23,6 +23,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../tappi/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/trig-tour/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/trig-tour/package.json b/main/trig-tour/package.json --- a/main/trig-tour/package.json (revision e096d18a87117f1f1ea79348f7a3a8dd2e797b7f) +++ b/main/trig-tour/package.json (date 1657597091963) @@ -20,6 +20,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../trig-tour/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/twixt/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/twixt/package.json b/main/twixt/package.json --- a/main/twixt/package.json (revision 2a8b0ffe9fd1636541c0fa15a7dbf6fda441e3de) +++ b/main/twixt/package.json (date 1657597091964) @@ -20,6 +20,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../twixt/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/under-pressure/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/under-pressure/package.json b/main/under-pressure/package.json --- a/main/under-pressure/package.json (revision 57ffc6163f601d4ffd8715065d0e61ed33436478) +++ b/main/under-pressure/package.json (date 1657597091964) @@ -23,6 +23,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../under-pressure/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/unit-rates/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/unit-rates/package.json b/main/unit-rates/package.json --- a/main/unit-rates/package.json (revision 82af6b0f882361f2240a282163d23eb13d24600a) +++ b/main/unit-rates/package.json (date 1657597091964) @@ -23,6 +23,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../unit-rates/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/gravity-and-orbits/js/gravity-and-orbits-main.ts IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/gravity-and-orbits/js/gravity-and-orbits-main.ts b/main/gravity-and-orbits/js/gravity-and-orbits-main.ts --- a/main/gravity-and-orbits/js/gravity-and-orbits-main.ts (revision 0653bb5402d356a9f7682040cf609af1520f7a96) +++ b/main/gravity-and-orbits/js/gravity-and-orbits-main.ts (date 1657636737726) @@ -42,7 +42,7 @@ const backgroundColorProperty = GravityAndOrbitsColors.backgroundProperty; const modelScreen = new ModelScreen( { - backgroundColorProperty: backgroundColorProperty, + backgroundColorProperty: backgroundColorProperty!, tandem: Tandem.ROOT.createTandem( 'modelScreen' ) } ); const toScaleScreen = new ToScaleScreen( { Index: main/utterance-queue/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/utterance-queue/package.json b/main/utterance-queue/package.json --- a/main/utterance-queue/package.json (revision 787a047b2ce276c84ac4b9374dbf2ac54daaf89b) +++ b/main/utterance-queue/package.json (date 1657597091965) @@ -30,6 +30,18 @@ "SpeechSynthesis": "readonly", "SpeechSynthesisVoice": "readonly", "SpeechSynthesisUtterance": "readonly" - } + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../utterance-queue/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/density-buoyancy-common/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/density-buoyancy-common/package.json b/main/density-buoyancy-common/package.json --- a/main/density-buoyancy-common/package.json (revision dea91a1b66bf59f68d6e5682fb29773d11f60233) +++ b/main/density-buoyancy-common/package.json (date 1657599254852) @@ -30,6 +30,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../density-buoyancy-common/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/explicit-member-accessibility": "off" } Index: main/chipper/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/chipper/package.json b/main/chipper/package.json --- a/main/chipper/package.json (revision 4d67844d083d40d60ea6751ad08ff97ba20fafb1) +++ b/main/chipper/package.json (date 1657599226498) @@ -71,7 +71,12 @@ "**/*.ts", "**/*.tsx" ], - "parser": "@typescript-eslint/parser" + "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": [ + "../chipper/tsconfig.json" + ] + } } ] } Index: main/vector-addition-equations/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/vector-addition-equations/package.json b/main/vector-addition-equations/package.json --- a/main/vector-addition-equations/package.json (revision b1cfb2a7cf319f5dfef243c1c6d99794f42cdd85) +++ b/main/vector-addition-equations/package.json (date 1657597091965) @@ -24,6 +24,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../vector-addition-equations/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/density/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/density/package.json b/main/density/package.json --- a/main/density/package.json (revision 82c8d0ac2e60a5b58612726adb7e49bf1b5781ac) +++ b/main/density/package.json (date 1657599226484) @@ -44,6 +44,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../density/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/explicit-member-accessibility": "off" } Index: main/vector-addition/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/vector-addition/package.json b/main/vector-addition/package.json --- a/main/vector-addition/package.json (revision cb026262913b90586ce0f8273c518c0a9bfa3cb9) +++ b/main/vector-addition/package.json (date 1657597091965) @@ -23,6 +23,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../vector-addition/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/diffusion/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/diffusion/package.json b/main/diffusion/package.json --- a/main/diffusion/package.json (revision 21669feb0b09ec75519161c5004f230b85baba05) +++ b/main/diffusion/package.json (date 1657597091927) @@ -10,7 +10,10 @@ "grunt": "~1.5.3" }, "phet": { - "colorProfiles": [ "default", "projector" ], + "colorProfiles": [ + "default", + "projector" + ], "requirejsNamespace": "DIFFUSION", "simulation": true, "runnable": true, @@ -26,6 +29,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../diffusion/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/vegas/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/vegas/package.json b/main/vegas/package.json --- a/main/vegas/package.json (revision 4e9ddadf49db104d27acfa6b65631e99c171a193) +++ b/main/vegas/package.json (date 1657600162925) @@ -28,6 +28,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../vegas/tsconfig.json" + ] + }, "rules": { "@typescript-eslint/adjacent-overload-signatures": "error", "@typescript-eslint/ban-ts-comment": "error", Index: main/dot/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/dot/package.json b/main/dot/package.json --- a/main/dot/package.json (revision 0b0a3cad02b9bf54fd58a4ca6614b453809ab397) +++ b/main/dot/package.json (date 1657599304480) @@ -30,6 +30,11 @@ "files": [ "**/*.ts" ], + "parserOptions": { + "project": [ + "../dot/tsconfig.json" + ] + }, "rules": { "no-simple-type-checking-assertions": "off", "@typescript-eslint/explicit-member-accessibility": "off" Index: main/vibe/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/vibe/package.json b/main/vibe/package.json --- a/main/vibe/package.json (revision 5c48bf06fca79475bc8ccad63866c10a123823d5) +++ b/main/vibe/package.json (date 1657597091966) @@ -19,6 +19,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../vibe/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/eating-exercise-and-energy/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/eating-exercise-and-energy/package.json b/main/eating-exercise-and-energy/package.json --- a/main/eating-exercise-and-energy/package.json (revision 58634c68ec90af19342977f8b717ecf056374d69) +++ b/main/eating-exercise-and-energy/package.json (date 1657597091928) @@ -20,6 +20,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../eating-exercise-and-energy/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/wave-interference/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/wave-interference/package.json b/main/wave-interference/package.json --- a/main/wave-interference/package.json (revision 49f30450a20baae5f6153ff7885c10ddc9eae35c) +++ b/main/wave-interference/package.json (date 1657597091966) @@ -34,6 +34,18 @@ "extends": "../chipper/eslint/sim_eslintrc.js", "globals": { "FFT": "readonly" - } + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../wave-interference/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/energy-forms-and-changes/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/energy-forms-and-changes/package.json b/main/energy-forms-and-changes/package.json --- a/main/energy-forms-and-changes/package.json (revision 2c4e1cee8c2fdc2decba30f50b0eb3df1a313615) +++ b/main/energy-forms-and-changes/package.json (date 1657597091928) @@ -27,6 +27,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../energy-forms-and-changes/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/wave-on-a-string/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/wave-on-a-string/package.json b/main/wave-on-a-string/package.json --- a/main/wave-on-a-string/package.json (revision 1183e64c0b780058968b6ee7c606bbedfa5178d7) +++ b/main/wave-on-a-string/package.json (date 1657597091966) @@ -21,6 +21,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../wave-on-a-string/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/waves-intro/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/waves-intro/package.json b/main/waves-intro/package.json --- a/main/waves-intro/package.json (revision 49282d58061d3a19ead77959543a8a6f6da7d05e) +++ b/main/waves-intro/package.json (date 1657597091967) @@ -30,6 +30,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../waves-intro/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/energy-skate-park-basics/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/energy-skate-park-basics/package.json b/main/energy-skate-park-basics/package.json --- a/main/energy-skate-park-basics/package.json (revision 2f33cd2ff4cc94d957e78e8e8eb4767eba4fca91) +++ b/main/energy-skate-park-basics/package.json (date 1657597091929) @@ -31,6 +31,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../energy-skate-park-basics/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/energy-skate-park/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/energy-skate-park/package.json b/main/energy-skate-park/package.json --- a/main/energy-skate-park/package.json (revision 08793b508409b29665e41e41a954ea3d07f32e27) +++ b/main/energy-skate-park/package.json (date 1657597091929) @@ -33,6 +33,18 @@ "extends": "../chipper/eslint/sim_eslintrc.js", "globals": { "numeric": "readonly" - } + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../energy-skate-park/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/equality-explorer-basics/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/equality-explorer-basics/package.json b/main/equality-explorer-basics/package.json --- a/main/equality-explorer-basics/package.json (revision 1a1873f24c06c9d6202073ee8554c55daae86725) +++ b/main/equality-explorer-basics/package.json (date 1657597091930) @@ -25,6 +25,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../equality-explorer-basics/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/weddell/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/weddell/package.json b/main/weddell/package.json --- a/main/weddell/package.json (revision f707340523e8fa0ef1f118706e2f5fc5e9c7ff66) +++ b/main/weddell/package.json (date 1657597091967) @@ -94,6 +94,18 @@ "which": "^2.0.2" }, "eslintConfig": { - "extends": "../chipper/eslint/node_eslintrc.js" - } -} + "extends": "../chipper/eslint/node_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../weddell/tsconfig.json" + ] + } + } + ] + } +} \ No newline at end of file Index: main/equality-explorer-two-variables/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/equality-explorer-two-variables/package.json b/main/equality-explorer-two-variables/package.json --- a/main/equality-explorer-two-variables/package.json (revision 084d83a6424f5cab6eea36b6afbe08ea09f77af0) +++ b/main/equality-explorer-two-variables/package.json (date 1657597091930) @@ -25,6 +25,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../equality-explorer-two-variables/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/wilder/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/wilder/package.json b/main/wilder/package.json --- a/main/wilder/package.json (revision 37c4dc14527db5dbb8e8c9bbd76354fb2f86a476) +++ b/main/wilder/package.json (date 1657597091967) @@ -21,6 +21,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../wilder/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/equality-explorer/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/equality-explorer/package.json b/main/equality-explorer/package.json --- a/main/equality-explorer/package.json (revision 4ca498a73dca75edd1414bcc43e6205988ddecdf) +++ b/main/equality-explorer/package.json (date 1657597091929) @@ -27,6 +27,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../equality-explorer/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/xray-diffraction/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/xray-diffraction/package.json b/main/xray-diffraction/package.json --- a/main/xray-diffraction/package.json (revision dd8217ca21d7168ef10b517e2ba5d49d14bc2894) +++ b/main/xray-diffraction/package.json (date 1657597091968) @@ -20,6 +20,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../xray-diffraction/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/estimation/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/estimation/package.json b/main/estimation/package.json --- a/main/estimation/package.json (revision 54d8fece2b886f63756c3e574aa4a95afd66d54a) +++ b/main/estimation/package.json (date 1657597091930) @@ -24,6 +24,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../estimation/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/yotta/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/yotta/package.json b/main/yotta/package.json --- a/main/yotta/package.json (revision 7f5728994a7296b212f0b268e85790ef4b6f31db) +++ b/main/yotta/package.json (date 1657597091968) @@ -21,6 +21,18 @@ "extends": "../chipper/eslint/node_eslintrc.js", "rules": { "prefer-arrow-callback": "off" - } + }, + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../yotta/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file Index: main/example-sim/package.json IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/main/example-sim/package.json b/main/example-sim/package.json --- a/main/example-sim/package.json (revision bdbc25d80dc1fe833a381a7ce803a257a3a53ce8) +++ b/main/example-sim/package.json (date 1657597091931) @@ -22,6 +22,18 @@ "supportsOutputJS": true }, "eslintConfig": { - "extends": "../chipper/eslint/sim_eslintrc.js" + "extends": "../chipper/eslint/sim_eslintrc.js", + "overrides": [ + { + "files": [ + "**/*.ts" + ], + "parserOptions": { + "project": [ + "../example-sim/tsconfig.json" + ] + } + } + ] } } \ No newline at end of file ```
samreid commented 2 years ago

Today @jessegreenberg and I observed that lint-everything --disable-eslint-cache took 1m7s without type checking rules and 1m30s with type checking rules. IDE responsiveness is great. We don't have to visit all package.jsons. We believe this is ready to share with the dev team, and start investigating and enabling these 41 type checking rules. I addressed one autofix one above, and it went well.

samreid commented 2 years ago

In today's meeting, we agreed to turn on the parserOptions.project and we will start opting into these rules.

samreid commented 2 years ago

In the commit, I enabled parserOptions.project and enabled a rule that happened to have 0 failures. I think this issue is ready to close. We can evaluate rules as part of https://github.com/phetsims/chipper/issues/1277. @jessegreenberg what do you think?

zepumph commented 2 years ago

Today I'm noticing that my git hooks are slower by a factor of 3-5. I suspect it is from this change. I would recommend reverting it until we know for sure that a lint rule in this list is worth the great productivity hit I've experienced. That said, during the typescript sprint I am making many more cross-repo commits than usual.

jessegreenberg commented 2 years ago

Understood. Lets check in tomorrow or at dev meeting with the team. We have options for how to proceed: 1) Disable these rules generally and opt in to them occasionally with a command line option. 2) We may be able to use a setup now that has the rules enabled for WebStorm but disabled for git hooks. 3) Keep looking for a solution that works everywhere. Given the amount of time in this issue already I don't recommend this. 4) Change our work process from pre-commit to pre-push hooks: https://github.com/phetsims/chipper/issues/1269

zepumph commented 2 years ago

@jessegreenberg, @samreid and I discussed this in depth this afternoon.

RE: 1. We want these lint rules to work in the IDE, so this won't work.

RE: 2. Not ideal, we as a team most often error on the side of overly cautious, even at the cost of time.

RE: 3. We spent a fair bit of time on this today, investigating the "individual repo" linting strategy with the patch in https://github.com/phetsims/chipper/issues/1238#issuecomment-1148011221. We also found that most of the time has to do with the tsc command in the pre-commit hook, and not lint.

RE: 4. This seems like the best path forward for maximum productivity. We want to investigate further. At the very least it can be something that members opt into, disabling their pre-commit hooks in exchange for using a script to push-all + a hook script.

zepumph commented 2 years ago

Next steps:

@jessegreenberg perhaps we are ready to close this issue when you have cleaned up?

jessegreenberg commented 2 years ago

typeInfo was removed from lint.js and the extra file type_info_eslintrc.js has been deleted.

jessegreenberg commented 2 years ago

We touched on this in during developer meeting today. There is nothing more to do here. Pre-commit hooks take still take longer. and we discussed https://github.com/phetsims/chipper/issues/1269 as a workflow change to improve productivity. See https://github.com/phetsims/chipper/issues/1269#issuecomment-1191789058, we will continue there.