Skip to content

Commit b5e3bc1

Browse files
authored
Merge branch 'main' into dependabot/npm_and_yarn/eslint-plugin-n-17.7.0
2 parents 3d01be4 + 9c3334b commit b5e3bc1

File tree

10 files changed

+60
-33
lines changed

10 files changed

+60
-33
lines changed

packages/client/src/applyCorrections.mts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ export async function actionAutoFixSpellingIssues(uri?: Uri) {
198198
const issueTracker = di.get('issueTracker');
199199

200200
const autoFixes = issueTracker
201-
.getIssues(uri)
201+
.getSpellingIssues(uri)
202202
?.map((issue) => ({
203203
issue,
204204
suggestions: issue.providedSuggestions(),

packages/client/src/codeAction.mts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export class SpellCheckerCodeActionProvider implements CodeActionProvider {
2424
return [];
2525
}
2626

27-
const diags = this.issueTracker.getIssues(document.uri)?.filter((diag) => diag.range.contains(range));
27+
const diags = this.issueTracker.getSpellingIssues(document.uri)?.filter((diag) => diag.range.contains(range));
2828
if (diags?.length !== 1) return [];
2929
const pendingDiags = diags.map((diag) => this.diagToAction(document, diag));
3030
return (await Promise.all(pendingDiags)).flatMap((action) => action);

packages/client/src/decorators/decorateIssues.mts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ export class SpellingIssueDecorator implements Disposable {
132132

133133
let hasHidden = false;
134134

135-
const issues = (this.issueTracker.getIssues(doc.uri) || []).filter((issue) => {
135+
const issues = (this.issueTracker.getSpellingIssues(doc.uri) || []).filter((issue) => {
136136
const range = issue.range;
137137
const hide = active.some((r) => r.intersection(range));
138138
hasHidden ||= hide;

packages/client/src/diags.mts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { isDefined, uniqueFilter } from './util/index.js';
1919
*/
2020
export function getCSpellDiags(docUri: Uri | undefined, issueType?: IssueType): SpellingDiagnostic[] {
2121
const issueTracker = getDependencies().issueTracker;
22-
const diags = (docUri && issueTracker.getIssues(docUri))?.map((issue) => issue.diag) || [];
22+
const diags = (docUri && issueTracker.getSpellingIssues(docUri))?.map((issue) => issue.diag) || [];
2323
const cSpellDiags = filterDiags(diags).filter((d) => d.data?.issueType === issueType || (!d.data?.issueType && !issueType));
2424
return cSpellDiags;
2525
}
@@ -122,7 +122,7 @@ export function registerDiagWatcher(show: boolean, onShowChange: Event<boolean>)
122122

123123
for (const uri of uris) {
124124
if (!useDiagnosticsCollectionForScheme(uri)) continue;
125-
const diags = issueTracker.getIssues(uri);
125+
const diags = issueTracker.getSpellingIssues(uri);
126126
collection.set(
127127
uri,
128128
diags?.map((issue) => issue.diag),

packages/client/src/diags.test.mts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ describe('Validate diags', () => {
2121
mockGetDependencies.mockImplementation(
2222
() =>
2323
({
24-
issueTracker: { getIssues: vi.fn(implGetIssues) },
24+
issueTracker: { getSpellingIssues: vi.fn(implGetIssues) },
2525
}) as any,
2626
);
2727
});
@@ -34,7 +34,7 @@ describe('Validate diags', () => {
3434
mockGetDependencies.mockImplementation(
3535
() =>
3636
({
37-
issueTracker: { getIssues: vi.fn(() => []) },
37+
issueTracker: { getSpellingIssues: vi.fn(() => []) },
3838
}) as any,
3939
);
4040
const uri = Uri.parse(import.meta.url);

packages/client/src/issueTracker.mts

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,20 +28,38 @@ export class IssueTracker {
2828
this.disposables.push(workspace.onDidCloseTextDocument((doc) => this.handleDocClose(doc)));
2929
}
3030

31-
public getIssues(uri: Uri): SpellingCheckerIssuesCollection | undefined;
32-
public getIssues(): [Uri, SpellingCheckerIssuesCollection][];
33-
public getIssues(uri?: Uri): SpellingCheckerIssuesCollection | [Uri, SpellingCheckerIssuesCollection][] | undefined {
31+
public getSpellingIssues(uri: Uri): SpellingCheckerIssuesCollection | undefined;
32+
public getSpellingIssues(uri?: undefined): [Uri, SpellingCheckerIssuesCollection][];
33+
public getSpellingIssues(
34+
uri?: Uri | undefined,
35+
): SpellingCheckerIssuesCollection | [Uri, SpellingCheckerIssuesCollection][] | undefined {
36+
return uri
37+
? this.getIssues(uri, (issue) => issue.isIssueTypeSpelling())
38+
: this.getIssues(undefined, (issue) => issue.isIssueTypeSpelling());
39+
}
40+
41+
public getDirectiveIssues(uri: Uri): SpellingCheckerIssuesCollection | undefined {
42+
return this.getIssues(uri, (issue) => issue.isIssueTypeDirective());
43+
}
44+
45+
public getIssues(uri: Uri, predicate?: (issue: SpellingCheckerIssue) => boolean): SpellingCheckerIssuesCollection | undefined;
46+
public getIssues(uri?: undefined, predicate?: (issue: SpellingCheckerIssue) => boolean): [Uri, SpellingCheckerIssuesCollection][];
47+
public getIssues(
48+
uri?: Uri,
49+
predicate?: (issue: SpellingCheckerIssue) => boolean,
50+
): SpellingCheckerIssuesCollection | [Uri, SpellingCheckerIssuesCollection][] | undefined {
51+
predicate ??= () => true;
3452
if (!uri)
3553
return [...this.issues.values()].map(
36-
(d) => [d.uri, new SpellingCheckerIssuesCollection(d.issues)] as [Uri, SpellingCheckerIssuesCollection],
54+
(d) => [d.uri, new SpellingCheckerIssuesCollection(d.issues.filter(predicate))] as [Uri, SpellingCheckerIssuesCollection],
3755
);
38-
const issues = this.issues.get(uri.toString())?.issues;
56+
const issues = this.issues.get(uri.toString())?.issues.filter(predicate);
3957
return issues ? new SpellingCheckerIssuesCollection(issues) : undefined;
4058
}
4159

42-
public getIssueCount(uri?: Uri): number {
43-
if (!uri) return [...this.issues.values()].reduce((a, b) => a + b.issues.length, 0);
44-
return this.issues.get(uri.toString())?.issues.length || 0;
60+
public getIssueCount(uri?: Uri, predicate: (issue: SpellingCheckerIssue) => boolean = (issue) => issue.isIssueTypeSpelling()): number {
61+
if (!uri) return [...this.issues.values()].reduce((a, b) => a + b.issues.filter(predicate).length, 0);
62+
return this.issues.get(uri.toString())?.issues.filter(predicate).length || 0;
4563
}
4664

4765
public getUrisWithIssues(): Uri[] {

packages/client/src/issueViewer/issuesViewerByFile.mts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,7 @@ type SpellingIssue = SpellingCheckerIssue;
555555

556556
function collectIssuesByFile(context: Context): FileWithIssuesTreeItem[] {
557557
const fileIssues: FileIssue[] = context.issueTracker
558-
.getIssues()
558+
.getSpellingIssues()
559559
.map(([uri, issues]) => ({ uri, doc: findTextDocument(uri), issues: issues.getSpellingIssues() }));
560560
const groupedByFile = groupIssues(fileIssues);
561561

packages/client/src/issueViewer/unknownWordsViewer.mts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ class WordIssueTreeItem extends IssueTreeItemBase {
217217
});
218218
this.suggestionsByDocument.set(document, suggestions || []);
219219
this.conicalDocuments.add(findConicalDocument(document));
220-
this.issues.push(issue);
220+
return this.issues.push(issue);
221221
}
222222

223223
getTreeItem(): TreeItem {
@@ -463,7 +463,10 @@ class IssueSuggestionTreeItem extends IssueTreeItemBase {
463463
}
464464

465465
function collectIssues(context: Context): WordIssueTreeItem[] {
466-
const issues = context.issueTracker.getIssues().flatMap(([_, issues]) => issues.issues);
466+
const issues = context.issueTracker
467+
.getSpellingIssues()
468+
.flatMap(([_, issues]) => issues.issues)
469+
.filter((issue) => issue.isIssueTypeSpelling());
467470
const groupedByWord = new Map<string, WordIssueTreeItem>();
468471
const getGroup = getResolve(groupedByWord, (word) => new WordIssueTreeItem(context, word));
469472
issues.forEach(groupIssue);

packages/client/src/languageStatus.mts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ export function createLanguageStatus(): Disposable {
8787
function updateIssues() {
8888
const id = 'cspell-issues';
8989
const document = vscode.window.activeTextEditor?.document;
90-
const issues = document ? getIssueTracker().getIssues(document.uri) : undefined;
90+
const issues = document ? getIssueTracker().getSpellingIssues(document.uri) : undefined;
9191
if (!issues?.length || !showLanguageStatusFields.issues) {
9292
deleteItem(id);
9393
return;

packages/webview-ui/src/views/CSpellInfo.svelte

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -98,23 +98,29 @@
9898
opacity: 80%;
9999
}
100100
101-
.file-info dd {
102-
margin: 0 0 0 80px;
103-
padding: 0 0 0.5em 0;
104-
}
101+
@media (min-width: 240px) {
102+
dl.file-info {
103+
display: grid;
104+
grid-gap: 4px 1em;
105+
grid-template-columns: auto auto;
106+
/*
107+
margin-block-start: 0;
108+
margin-block-end: 0.5em;
109+
*/
110+
}
105111
106-
.file-info dt {
107-
float: left;
108-
clear: left;
109-
width: 110px;
110-
/* color: green; */
111-
}
112+
.file-info dd {
113+
margin: 0;
114+
word-break: break-word;
115+
/* grid-column-start: 2; */
116+
}
112117
113-
/*
114-
dt::after {
115-
content: ':';
118+
.file-info dt {
119+
/* color: green; */
120+
font-weight: bolder;
121+
word-break: break-word;
122+
}
116123
}
117-
*/
118124
119125
.dictionary-entry dd {
120126
margin-inline-start: 0;

0 commit comments

Comments
 (0)