Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

feat: v8 integration branch#9165

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
JoshuaKGoldberg merged 129 commits intomainfromv8
Jul 31, 2024
Merged
Show file tree
Hide file tree
Changes fromall commits
Commits
Show all changes
129 commits
Select commitHold shift + click to select a range
6464df2
feat(typescript-estree): remove slow deprecated and isolated programs…
JoshuaKGoldbergApr 15, 2024
b8e8853
fix(typescript-estree): add TSEnumBody node for TSEnumDeclaration bod…
JoshuaKGoldbergApr 15, 2024
2d835ee
fix(typescript-estree): enable dot globs for project by default (#8818)
JoshuaKGoldbergApr 19, 2024
1a22a53
feat(typescript-estree): split TSMappedType typeParameter into constr…
JoshuaKGoldbergApr 19, 2024
adf8f3b
feat(eslint-plugin): remove formatting/layout rules (#8833)
JoshuaKGoldbergApr 19, 2024
151cae2
feat(eslint-plugin): [prefer-nullish-coalescing] change ignoreConditi…
JoshuaKGoldbergApr 22, 2024
61c2ee7
feat(eslint-plugin): deprecate no-loss-of-precision extension rule (#…
JoshuaKGoldbergApr 22, 2024
f9520fe
Merge branch 'main' into v8
JoshuaKGoldbergApr 22, 2024
bea2e44
chore(type-utils): remove getTypeArguments (#8938)
y-hsgwApr 22, 2024
f4cbbe6
chore(type-utils)!: remove IsNullableTypeOptions interface (#8934)
thuchedeApr 23, 2024
8284a18
Merge branch 'main' into v8
JoshuaKGoldbergApr 25, 2024
21abb00
Merge branch 'main' into v8
JoshuaKGoldbergApr 26, 2024
67fbca5
feat(eslint-plugin): [no-unused-vars] align catch behavior to ESLint …
JoshuaKGoldbergApr 26, 2024
3cdb011
chore: bump minimum versions for v8 (#8973)
JoshuaKGoldbergApr 26, 2024
7bdd008
Merge branch 'main' into v8
JoshuaKGoldbergApr 26, 2024
6028711
feat(utils): add Linter configType constructor option (#8999)
JoshuaKGoldbergApr 26, 2024
5650142
feat(typescript-estree): rename automaticSingleRunInference to disall…
JoshuaKGoldbergApr 26, 2024
571bb9d
feat(parser): always enable comment, loc, range, tokens (#8617)
JoshuaKGoldbergApr 26, 2024
e21b26e
feat(utils): swap LegacyESLint out for FlatESLint as ESLint export (#…
JoshuaKGoldbergApr 26, 2024
47d874d
test(rule-tester): update test config snapshots to include new disall…
auvredApr 28, 2024
25a126b
Merge branch 'main' into v8
JoshuaKGoldbergApr 29, 2024
1b36f83
chore: fix v8 branch snapshots for flat-config-types (#9029)
JoshuaKGoldbergApr 29, 2024
496dd36
Merge branch 'main' into v8
JoshuaKGoldbergApr 29, 2024
72d1066
docs: remove eslint v9 tracking issue from main readme for v8 (#9006)
kirkwaiblingerApr 29, 2024
07044c6
feat(utils): remove deprecated context helpers (#9000)
abrahamguoApr 30, 2024
b1c92d4
feat(utils): allow specifying additional rule meta.docs in RuleCreato…
JoshuaKGoldbergMay 9, 2024
04f1938
Merge branch 'main'
JoshuaKGoldbergMay 9, 2024
fd097ef
feat(eslint-plugin): split no-empty-object-type out from ban-types an…
JoshuaKGoldbergMay 12, 2024
b765f7b
feat: support ESLint v9 (#9002)
JoshuaKGoldbergMay 12, 2024
0d85360
Merge branch 'main' into v8
JoshuaKGoldbergMay 12, 2024
94bd289
fix: correct eslint-plugin's peerDependency on parser@8 (#9089)
JoshuaKGoldbergMay 13, 2024
5753fe5
fix(eslint-plugin): include alpha pre-releases in parser peer depende…
bachmacintoshMay 15, 2024
5c80828
feat(rule-tester): support multipass fixes (#8883)
auvredMay 16, 2024
87a0a48
Merge branch 'main'
JoshuaKGoldbergMay 18, 2024
ad3ff43
feat(ast-spec): remove deprecated type params (#8933)
abrahamguoMay 24, 2024
b9796c1
feat(typescript-estree): stabilize EXPERIMENTAL_useProjectService as …
JoshuaKGoldbergMay 24, 2024
c0bf6fc
Merge branch 'main'
JoshuaKGoldbergMay 26, 2024
e8e79e0
feat(eslint-plugin): remove deprecated no-throw-literal rule (#9092)
y-hsgwMay 26, 2024
92d4a26
feat(typescript-estree): remove EXPERIMENTAL_useSourceOfProjectRefere…
JoshuaKGoldbergMay 27, 2024
ae1414c
feat(eslint-plugin): apply initial config changes for v8 (#9079)
JoshuaKGoldbergMay 27, 2024
d97366e
chore(eslint-plugin): deprecate no-var-requires in favor of no-requir…
arkapratimcMay 28, 2024
4f0a46f
chore: use recommended config for Node.js 18 in TSConfig (#9113)
lesha1201May 28, 2024
540d97e
chore: enable `prefer-object-has-own` ESLint rule (#9123)
lesha1201May 28, 2024
c3031c8
Merge branch 'main'
JoshuaKGoldbergMay 28, 2024
06b0e08
Two introduced lint suppressions
JoshuaKGoldbergMay 28, 2024
713fc21
Update RuleTester.test.ts snapshots
JoshuaKGoldbergMay 29, 2024
8897c14
fix(typescript-estree): pass extraFileExtensions to projectService (#…
alfredringstadMay 29, 2024
04591f0
Merge branch 'main' into v8
JoshuaKGoldbergMay 29, 2024
6966e3b
Fix eslint-plugin-internal tests, or maybe just made them worse...
JoshuaKGoldbergMay 29, 2024
10aecc8
Fix a parse.test.ts spacing issue
JoshuaKGoldbergMay 29, 2024
a42afd3
One more EXPERIMENTAL_ rename
JoshuaKGoldbergMay 29, 2024
8d4bba9
fix snapshot ordering
JoshuaKGoldbergMay 29, 2024
e3eb1ad
fix(rule-tester): set configType to eslintrc in Linter options (#9178)
JamesHenryMay 30, 2024
f279b6d
docs: fix only-throw-error link to no-throw-literal
JoshuaKGoldbergMay 30, 2024
7afd3f3
fix(rule-tester): re-apply updates from main (#9180)
JoshuaKGoldbergMay 30, 2024
ebad5e4
Merge branch 'main'
JoshuaKGoldbergJun 2, 2024
31e70cf
chore: fix introduced Object.hasOwn lint complaint
JoshuaKGoldbergJun 2, 2024
b4fbf6d
Merge branch 'main' into v8
JoshuaKGoldbergJun 3, 2024
7b6b8bc
feat(eslint-plugin): remove no-useless-template-literals (#9207)
y-hsgwJun 4, 2024
b222625
Merge branch 'main'
JoshuaKGoldbergJun 6, 2024
585423d
chore: fix test typing too
JoshuaKGoldbergJun 6, 2024
8e95924
feat(eslint-plugin): [no-floating-promises] add 'allowForKnownSafeCal…
JoshuaKGoldbergJun 8, 2024
3c3370f
feat(typescript-estree): also remove projectService in withoutProject…
JoshuaKGoldbergJun 8, 2024
0f1b064
fix(types): allow ProjectServiceOptions for projectService (#9318)
JoshuaKGoldbergJun 10, 2024
007850d
Merge branch 'main'
JoshuaKGoldbergJun 12, 2024
5cd80ca
feat(eslint-plugin): replace ban-types with no-restricted-types, no-u…
JoshuaKGoldbergJun 13, 2024
10f984e
chore: [no-empty-object-type] remove unused option in-type-alias-with…
kirkwaiblingerJun 15, 2024
c170c3d
feat(typescript-estree): exposes ProjectService logs through the plug…
higherorderfunctorJun 17, 2024
d1ddbc2
fix(typescript-estree): only run projectService setHostConfiguration …
higherorderfunctorJun 22, 2024
ee46c9c
Merge branch 'main'
JoshuaKGoldbergJun 22, 2024
9311c69
Merge branch 'main'
JoshuaKGoldbergJun 24, 2024
cef031c
Test and link fixes
JoshuaKGoldbergJun 24, 2024
51a74dc
More test fixes
JoshuaKGoldbergJun 24, 2024
7dfceee
fix: bring back in allowdefaultprojectforfiles rename
JoshuaKGoldbergJun 25, 2024
b8d1d39
feat(eslint-plugin): [no-unused-vars] add `reportUnusedIgnorePattern`…
bradzacherJun 25, 2024
2cdf240
test(type-utils): skip mysteriously failing type unit tests (#9427)
JoshuaKGoldbergJun 25, 2024
332a271
feat(eslint-plugin): [no-unused-vars] support `ignoreClassWithStaticI…
bradzacherJun 25, 2024
ec20eaf
feat(eslint-plugin): [no-unused-vars] handle comma operator for assig…
bradzacherJun 25, 2024
78ed7d4
feat(eslint-plugin): [no-unnecessary-type-parameters] initial impleme…
danvkJun 26, 2024
1b4b4c2
feat(type-utils): remove getTokenAtPosition (#9444)
y-hsgwJun 29, 2024
7812072
fix(eslint-plugin): correct rules.d.ts types to not rely on non-exist…
JoshuaKGoldbergJun 29, 2024
afcfbfc
Merge branch 'main'
JoshuaKGoldbergJun 29, 2024
924913d
feat(eslint-plugin): [no-unused-vars] report if var used only in type…
StyleShitJun 30, 2024
9eb6cec
chore: revert "test(type-utils): skip mysteriously failing type unit …
auvredJun 30, 2024
e088709
fix: disable `projectService` in `disabled-type-checked` shared confi…
auvredJul 1, 2024
dfe9869
chore: add GitHub workflow to close issues resolved in `v8` branch (#…
auvredJul 1, 2024
901f64f
chore: add necessary permissions to the `v8` issues autocloser workfl…
auvredJul 1, 2024
f340033
chore: change the `v8` issue autocloser trigger to `pull_request_targ…
auvredJul 1, 2024
9dce771
fix(eslint-plugin): remove duplicate import `RuleModuleWithMetaDocs` …
abrahamguoJul 1, 2024
a846ffe
Merge branch 'main'
JoshuaKGoldbergJul 5, 2024
0d70d62
chore: add missing rule test suggestions
JoshuaKGoldbergJul 5, 2024
86811d7
chore: use eslint 9 internally (#9119)
abrahamguoJul 6, 2024
1593840
Merge branch 'main'
JoshuaKGoldbergJul 6, 2024
e0a435d
test(type-utils): disable automatic single run inference for isSymbol…
auvredJul 8, 2024
d1d282e
test(eslint-plugin): update outdated docs.test.ts snapshots (#9522)
auvredJul 8, 2024
46dd42f
docs: [no-wrapper-object-types] clean up a bit of phrasing (#9363)
kirkwaiblingerJul 12, 2024
6bd4211
Merge branch 'main'
JoshuaKGoldbergJul 13, 2024
0aa8eac
feat(eslint-plugin): [no-floating-promises] disable checkThenables by…
JoshuaKGoldbergJul 14, 2024
78fd2f4
feat: stricter parent types for the AST (#9560)
bradzacherJul 14, 2024
c365664
Merge branch 'main'
JoshuaKGoldbergJul 17, 2024
8ea3108
chore: fix website lint
JoshuaKGoldbergJul 18, 2024
8f712ee
fix(type-utils): also check declared modules for package names in Typ…
JoshuaKGoldbergJul 18, 2024
850d909
Merge branch 'main' into v8
JoshuaKGoldbergJul 18, 2024
d26e1d1
chore(website): correct version to be v8, not latest merged v7 (#9593)
JoshuaKGoldbergJul 19, 2024
a3230a9
chore: fix inferSingleRun.test.ts merge type errors
JoshuaKGoldbergJul 19, 2024
def1da1
fix(eslint-plugin): [no-unnecessary-template-expression] do not rende…
auvredJul 20, 2024
6dc3240
docs: clarify projectService out-of-project remediation steps (#9585)
JoshuaKGoldbergJul 21, 2024
97cb1a3
fix(typescript-estree): specific error for parserOptions.project not …
JoshuaKGoldbergJul 21, 2024
fd22484
feat: speed up non-type-aware linting with project service (#8322)
yepitschunkedJul 21, 2024
ae980e3
Merge branch 'main'
JoshuaKGoldbergJul 22, 2024
88a8673
feat(eslint-plugin): [return-await] add return-await to strict-type-c…
kirkwaiblingerJul 22, 2024
87af726
fix(eslint-plugin): [no-unused-vars] incorporate upstream changes aro…
abrahamguoJul 22, 2024
f3dfc0a
Merge branch 'main' into v8
JoshuaKGoldbergJul 23, 2024
32a7a70
feat(rule-tester): switched to flat config (#9603)
JoshuaKGoldbergJul 24, 2024
2b09d61
Merge branch 'main' into v8
JoshuaKGoldbergJul 24, 2024
56ef573
Merge branch 'main'
JoshuaKGoldbergJul 24, 2024
2a05336
fix(typescript-estree): adds support for project services using exten…
higherorderfunctorJul 28, 2024
f38728c
Merge branch 'main' into v8
bradzacherJul 29, 2024
3c4ff73
chore: fix lint errors
bradzacherJul 29, 2024
37c10e8
fix(eslint-plugin): [no-misused-promises] perf: avoid getting types o…
bradzacherJul 29, 2024
8197f71
docs: switch Typed Linting docs to project service (#9614)
JoshuaKGoldbergJul 29, 2024
90432a2
feat(type-utils): support intersection types in TypeOrValueSpecifier …
JoshuaKGoldbergJul 29, 2024
6cebdf6
feat(eslint-plugin): [no-unnecessary-type-parameters] promote to stri…
JoshuaKGoldbergJul 29, 2024
838dd0c
chore: use parserOptions.projectService internally (#9659)
JoshuaKGoldbergJul 30, 2024
1b0468e
Merge branch 'main'
JoshuaKGoldbergJul 30, 2024
b8274d3
fix(rule-tester): provide Linter a cwd in its constructor (#9678)
JoshuaKGoldbergJul 31, 2024
48fc385
fix(typescript-estree): factor tsconfigRootDir into allowDefaultProje…
JoshuaKGoldbergJul 31, 2024
ce09260
docs(eslint-plugin): [no-unnecessary-type-parameters] add admonition …
kirkwaiblingerJul 31, 2024
b413ec4
Merge branch 'main' into v8
JoshuaKGoldbergJul 31, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions.cspell.json
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -49,6 +49,8 @@
"words": [
"Airbnb",
"Airbnb's",
"ambiently",
"allowdefaultproject",
"allowdefaultprojectforfiles",
"ambiently",
"Arka",
Expand DownExpand Up@@ -98,6 +100,7 @@
"esquery",
"esrecurse",
"estree",
"extrafileextensions",
"falsiness",
"fisker",
"García",
Expand DownExpand Up@@ -145,6 +148,7 @@
"preact",
"Premade",
"prettier's",
"projectservice",
"quasis",
"Quickstart",
"Rebecca",
Expand Down
2 changes: 1 addition & 1 deletion.github/actions/breaking-pr-check/index.js
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
// @ts-check
/* eslint-disable jsdoc/no-types */
/* eslint-disable jsdoc/no-types, @typescript-eslint/no-require-imports */

const core = require('@actions/core');
const github = require('@actions/github');
Expand Down
8 changes: 4 additions & 4 deletions.github/workflows/ci.yml
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -148,7 +148,7 @@ jobs:
- name: Build
uses: ./.github/actions/prepare-build

- name: Runintegrations tests
- name: Runintegration tests
run: yarn test-integration
env:
CI: true
Expand DownExpand Up@@ -220,8 +220,8 @@ jobs:
# Sadly 1 day is the minimum
retention-days: 1

unit_tests_tsserver:
name: Run Unit Tests withExperimental TSServer
unit_tests_project_service:
name: Run Unit Tests withProject Service
needs: [build]
runs-on: ubuntu-latest
strategy:
Expand All@@ -245,7 +245,7 @@ jobs:
run: npx nx test ${{ matrix.package }} --coverage=false
env:
CI: true
TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER: true
TYPESCRIPT_ESLINT_PROJECT_SERVICE: true

upload_coverage:
name: Upload Codecov Coverage
Expand Down
18 changes: 18 additions & 0 deletions.github/workflows/close-v8-issues.yml
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
name: Close issues related to a merged pull request based on v8 branch.

on:
pull_request_target:
types: [closed]
branches:
- v8

jobs:
close_v8_issue_on_pr_merge:
permissions:
issues: write
runs-on: ubuntu-latest
steps:
- name: Closes issues related to a merged pull request.
uses: ldez/gha-mjolnir@v1.4.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3 changes: 0 additions & 3 deletionsREADME.md
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -24,9 +24,6 @@
<p align="center">
👆
</p>
<p align="center">
Using ESLint v9? See: <a href="https://github.com/typescript-eslint/typescript-eslint/issues/8211">ESLint v9 Support</a>.
</p>
<!-- markdownlint-enable MD033 -->

## Code Contributors
Expand Down
26 changes: 26 additions & 0 deletionsdocs/developers/Custom_Rules.mdx
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,6 +99,32 @@ export const rule = createRule<Options, MessageIds>({
});
```

#### Extra Rule Docs Types

By default, rule `meta.docs` is allowed to contain only `description` and `url` as described in [ESLint's Custom Rules > Rule Structure docs](https://eslint.org/docs/latest/extend/custom-rules#rule-structure).
Additional docs properties may be added as a type argument to `ESLintUtils.RuleCreator`:

```ts
interface MyPluginDocs {
recommended: boolean;
}

const createRule = ESLintUtils.RuleCreator<MyPluginDocs>(
name => `https://example.com/rule/${name}`,
);

createRule({
// ...
meta: {
docs: {
description: '...',
recommended: true,
},
// ...
},
});
```

### Undocumented Rules

Although it is generally not recommended to create custom rules without documentation, if you are sure you want to do this you can use the `ESLintUtils.RuleCreator.withoutDocs` function to directly create a rule.
Expand Down
21 changes: 13 additions & 8 deletionsdocs/getting-started/Typed_Linting.mdx
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,7 +25,7 @@ export default tseslint.config(
{
languageOptions: {
parserOptions: {
project: true,
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
Expand All@@ -42,7 +42,7 @@ For CommonJS modules and/or older versions of Node.js, [use `__dirname` or an al
In more detail:

- `tseslint.configs.recommendedTypeChecked` is another [shared configuration](../users/Shared_Configurations.mdx) we provide. This one contains recommended rules that additionally require type information.
- `parserOptions.project: true` indicates tofind the closest `tsconfig.json`for each source file(see [Parser#project](../packages/Parser.mdx#project)).
- `parserOptions.projectService: true` indicates toask TypeScript's type checking servicefor each source file's type information(see [Parser#projectService](../packages/Parser.mdx#projectService)).
- `parserOptions.tsconfigRootDir` tells our parser the absolute path of your project's root directory (see [Parser#tsconfigRootDir](../packages/Parser.mdx#tsconfigrootdir)).

</TabItem>
Expand All@@ -65,7 +65,7 @@ module.exports = {
parser: '@typescript-eslint/parser',
// Added lines start
parserOptions: {
project: true,
projectService: true,
tsconfigRootDir: __dirname,
},
// Added lines end
Expand All@@ -76,7 +76,7 @@ module.exports = {
In more detail:

- `plugin:@typescript-eslint/recommended-type-checked` is another [shared configuration](../users/Shared_Configurations.mdx) we provide. This one contains recommended rules that additionally require type information.
- `parserOptions.project: true` indicates tofind the closest `tsconfig.json`for each source file(see [Parser#project](../packages/Parser.mdx#project)).
- `parserOptions.projectService: true` indicates toask TypeScript's type checking servicefor each source file's type information(see [Parser#projectService](../packages/Parser.mdx#projectService)).
- `parserOptions.tsconfigRootDir` tells our parser the absolute path of your project's root directory (see [Parser#tsconfigRootDir](../packages/Parser.mdx#tsconfigrootdir)).

</TabItem>
Expand DownExpand Up@@ -142,7 +142,11 @@ You can read more about the rules provided by typescript-eslint in our [rules do

### Can I customize the TSConfig used for typed linting?

The `project` option can be turned on with either:
Yes, but it's not recommended in most configurations.
`parserOptions.projectService` uses the same "project service" APIs used by editors such as VS Code to generate TypeScript's type information.
Using a different TSConfig runs the risk of providing different types for typed linting than what your editor or `tsc` see.

If you absolutely must, the `parserOptions.project` option can be used instead of `parserOptions.projectService` with either:

- `true`: to always use `tsconfig.json`s nearest to source files
- `string | string[]`: any number of glob paths to match TSConfig files relative to `parserOptions.tsconfigRootDir`, or the current working directory if that is not provided
Expand DownExpand Up@@ -182,7 +186,7 @@ module.exports = {
</TabItem>
</Tabs>

See [the `@typescript-eslint/parser` docs for more details](../packages/Parser.mdx#project).
See [the `@typescript-eslint/parser``project`docs for more details](../packages/Parser.mdx#project).

:::note
If your project is a multi-package monorepo, see [our docs on configuring a monorepo](../troubleshooting/typed-linting/Monorepos.mdx).
Expand All@@ -203,7 +207,8 @@ export default tseslint.config(
{
languageOptions: {
parserOptions: {
project: true,
projectService: true,
tsconfigRootDir: import.meta.name,
},
},
},
Expand DownExpand Up@@ -254,7 +259,7 @@ If you use type-aware rules from other plugins, you will need to manually disabl
### How is performance?

Typed rules come with a catch.
Byincluding `parserOptions.project` in your config, you incur the performance penalty of asking TypeScript to do a build of your project before ESLint can do its linting.
Byusing typed linting in your config, you incur the performance penalty of asking TypeScript to do a build of your project before ESLint can do its linting.
For small projects this takes a negligible amount of time (a few seconds or less); for large projects, it can take longer.

Most of our users do not mind this cost as the power and safety of type-aware static analysis rules is worth the tradeoff.
Expand Down
2 changes: 1 addition & 1 deletiondocs/maintenance/Issues.mdx
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -163,7 +163,7 @@ For enhancements meant to limit which kinds of nodes the rule targets, mark the
#### 🚀 New Rules

We're generally accepting of new rules that meet the above feature request criteria.
The biggest exception is rules that can roughly be implemented with [`@typescript-eslint/ban-types`](/rules/ban-types) and/or [`no-restricted-syntax`](https://eslint.org/docs/latest/rules/no-restricted-syntax).
The biggest exception is rules that can roughly be implemented with [`@typescript-eslint/no-restricted-types`](/rules/no-restricted-types) and/or [`no-restricted-syntax`](https://eslint.org/docs/latest/rules/no-restricted-syntax).

## Pruning Old Issues

Expand Down
Loading

[8]ページ先頭

©2009-2025 Movatter.jp