Skip to content

Commit 8b3bf6a

Browse files
committed
Fix linting errors - add eslint overrides for test files
1 parent ba76e74 commit 8b3bf6a

File tree

9 files changed

+130
-148
lines changed

9 files changed

+130
-148
lines changed

.eslintrc.json

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,22 @@
1717
"indent": "off",
1818
"import/prefer-default-export": "off",
1919
"import/no-unresolved": "off",
20+
"import/extensions": "off",
2021
"consistent-return": "off",
2122
"no-restricted-syntax": "off",
2223
"max-len":"off",
2324
"no-tabs": "off",
2425
"no-use-before-define": "off"
25-
}
26+
},
27+
"overrides": [
28+
{
29+
"files": ["src/test/**/*.ts"],
30+
"env": {
31+
"mocha": true
32+
},
33+
"rules": {
34+
"no-promise-executor-return": "off"
35+
}
36+
}
37+
]
2638
}

src/extension.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as vscode from 'vscode';
2-
import { createHookCompletionProvider } from './providers/hookCompletionProvider';
3-
import { createCallbackCompletionProvider } from './providers/callbackCompletionProvider';
4-
import { createHoverProvider } from './providers/hoverProvider';
2+
import { createHookCompletionProvider } from './providers/hookCompletionProvider.js';
3+
import { createCallbackCompletionProvider } from './providers/callbackCompletionProvider.js';
4+
import { createHoverProvider } from './providers/hoverProvider.js';
55

66
export function activate(
77
context: vscode.ExtensionContext,

src/generators/docblockGenerator.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { Tag } from '../types';
1+
import { Tag } from '../types/index.js';
22

33
export function generateDocblockLines(
44
description: string,
55
params: Tag[],
6-
returnParam?: Tag
6+
returnParam?: Tag,
77
): string[] {
88
const docblockLines = [
99
'/**',

src/generators/snippetGenerator.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Tag } from '../types';
2-
import { getTagType, getReturnType } from '../utils/typeHelpers';
1+
import { Tag } from '../types/index.js';
2+
import { getTagType, getReturnType } from '../utils/typeHelpers.js';
33

44
export interface CallbackSnippet {
55
snippetCallback: string;
@@ -10,7 +10,7 @@ export interface CallbackSnippet {
1010

1111
export function generateCallbackSnippet(
1212
hookType: string,
13-
params: Tag[]
13+
params: Tag[],
1414
): CallbackSnippet {
1515
const snippetArgsString = params.map((param) => {
1616
const val = `\\${param.variable}`;
@@ -57,7 +57,7 @@ export function generateCallbackSnippet(
5757
snippetCallback,
5858
documentationCallback,
5959
returnTypeString,
60-
suffix
60+
suffix,
6161
};
6262
}
6363

src/providers/callbackCompletionProvider.ts

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import * as vscode from 'vscode';
2-
import { Hook } from '../types';
3-
import { getHook } from '../utils/hookHelpers';
4-
import { isInFunctionDeclaration } from '../utils/matchers';
5-
import { getContainingSymbol } from '../utils/symbolHelpers';
6-
import { generateDocblockLines } from '../generators/docblockGenerator';
2+
import { Hook } from '../types/index.js';
3+
import { getHook } from '../utils/hookHelpers.js';
4+
import { isInFunctionDeclaration } from '../utils/matchers.js';
5+
import { getContainingSymbol } from '../utils/symbolHelpers.js';
6+
import { generateDocblockLines } from '../generators/docblockGenerator.js';
77
import {
88
generateCallbackSnippet,
99
WORDPRESS_UTILITY_SNIPPETS,
10-
SNIPPET_TYPES
11-
} from '../generators/snippetGenerator';
10+
SNIPPET_TYPES,
11+
} from '../generators/snippetGenerator.js';
1212

1313
const extensionName = 'vscode-wordpress-hooks';
1414

@@ -20,7 +20,7 @@ function createClosureCompletion(
2020
suffix: string,
2121
lineLeadingWhitespace: string,
2222
position: vscode.Position,
23-
docBlocksEnabled: boolean
23+
docBlocksEnabled: boolean,
2424
): vscode.CompletionItem {
2525
const completionItemForClosure = new vscode.CompletionItem('Closure', vscode.CompletionItemKind.Function);
2626
completionItemForClosure.insertText = new vscode.SnippetString(`function${snippetCallback}${suffix}`);
@@ -46,7 +46,7 @@ function createArrowFunctionCompletion(
4646
docblockLines: string[],
4747
lineLeadingWhitespace: string,
4848
position: vscode.Position,
49-
docBlocksEnabled: boolean
49+
docBlocksEnabled: boolean,
5050
): vscode.CompletionItem {
5151
const completionItemForArrow = new vscode.CompletionItem('Arrow function', vscode.CompletionItemKind.Function);
5252

@@ -67,7 +67,7 @@ function createArrowFunctionCompletion(
6767
}
6868

6969
function createUtilityFunctionCompletions(
70-
params: Array<{ types?: string[] }>
70+
params: Array<{ types?: string[] }>,
7171
): vscode.CompletionItem[] {
7272
const completions: vscode.CompletionItem[] = [];
7373

@@ -120,7 +120,7 @@ function createFunctionCompletion(
120120
docblockLines: string[],
121121
leadingWhitespace: string,
122122
insertionPosition: vscode.Position,
123-
docBlocksEnabled: boolean
123+
docBlocksEnabled: boolean,
124124
): vscode.CompletionItem {
125125
const functionName = `${hook.type}_${hook.name.replace(/[^a-z_]/g, '')}`;
126126
const completionItemForFunction = new vscode.CompletionItem('Function', vscode.CompletionItemKind.Function);
@@ -156,7 +156,7 @@ function createMethodCompletion(
156156
docblockLines: string[],
157157
leadingWhitespace: string,
158158
methodInsertionPosition: vscode.Position,
159-
docBlocksEnabled: boolean
159+
docBlocksEnabled: boolean,
160160
): vscode.CompletionItem {
161161
const functionName = `${hook.type}_${hook.name.replace(/[^a-z_]/g, '')}`;
162162
const completionItemForMethod = new vscode.CompletionItem('Class method', vscode.CompletionItemKind.Method);
@@ -209,7 +209,9 @@ export function createCallbackCompletionProvider(): vscode.Disposable {
209209
const params = hook.doc.tags.filter((tag) => tag.name === 'param');
210210

211211
// Generate callback snippet
212-
const { snippetCallback, documentationCallback, returnTypeString, suffix } = generateCallbackSnippet(hook.type, params);
212+
const {
213+
snippetCallback, documentationCallback, returnTypeString, suffix,
214+
} = generateCallbackSnippet(hook.type, params);
213215
const snippetArgsString = params.map((param) => `\\${param.variable}`).join(', ');
214216
const docArgsString = snippetArgsString.replace(/\\\$/g, '$');
215217

@@ -230,7 +232,7 @@ export function createCallbackCompletionProvider(): vscode.Disposable {
230232
suffix,
231233
lineLeadingWhitespace,
232234
position,
233-
docBlocksEnabled
235+
docBlocksEnabled,
234236
));
235237

236238
// Add arrow function and utility functions for filters
@@ -244,7 +246,7 @@ export function createCallbackCompletionProvider(): vscode.Disposable {
244246
docblockLines,
245247
lineLeadingWhitespace,
246248
position,
247-
docBlocksEnabled
249+
docBlocksEnabled,
248250
));
249251

250252
completions.push(...createUtilityFunctionCompletions(params));
@@ -258,7 +260,7 @@ export function createCallbackCompletionProvider(): vscode.Disposable {
258260
vscode.window.activeTextEditor.document.uri,
259261
)
260262
.then((symbols) => {
261-
let insertionPosition = document.lineAt(position.line).range.end;
263+
const insertionPosition = document.lineAt(position.line).range.end;
262264

263265
if (symbols === undefined) {
264266
completions.push(createFunctionCompletion(
@@ -268,7 +270,7 @@ export function createCallbackCompletionProvider(): vscode.Disposable {
268270
docblockLines,
269271
'',
270272
insertionPosition,
271-
docBlocksEnabled
273+
docBlocksEnabled,
272274
));
273275
return completions;
274276
}
@@ -292,7 +294,7 @@ export function createCallbackCompletionProvider(): vscode.Disposable {
292294
docblockLines,
293295
leadingWhitespace,
294296
positionContext.symbol.range.end,
295-
docBlocksEnabled
297+
docBlocksEnabled,
296298
));
297299
} else {
298300
const functionName = `${hook.type}_${hook.name.replace(/[^a-z_]/g, '')}`;
@@ -303,7 +305,7 @@ export function createCallbackCompletionProvider(): vscode.Disposable {
303305
docblockLines,
304306
leadingWhitespace,
305307
positionContext.symbol ? positionContext.symbol.range.end : insertionPosition,
306-
docBlocksEnabled
308+
docBlocksEnabled,
307309
);
308310

309311
if (positionContext.inNamespace) {

src/test/suite/callbackCompletion.test.ts

Lines changed: 25 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,104 +5,96 @@ suite('Callback Completion Test Suite', () => {
55
test('Should provide callback completions for add_action', async () => {
66
const doc = await vscode.workspace.openTextDocument({
77
language: 'php',
8-
content: "<?php\nadd_action('init', "
8+
content: "<?php\nadd_action('init', ",
99
});
1010

1111
await vscode.window.showTextDocument(doc);
12-
await new Promise(resolve => setTimeout(resolve, 100));
12+
await new Promise((resolve) => setTimeout(resolve, 100));
1313

1414
const position = new vscode.Position(1, 20);
1515

1616
const completions = await vscode.commands.executeCommand<vscode.CompletionList>(
1717
'vscode.executeCompletionItemProvider',
1818
doc.uri,
19-
position
19+
position,
2020
);
2121

2222
assert.ok(completions, 'Completions should be returned');
2323
assert.ok(completions.items.length > 0, 'Should have completion items');
2424

25-
const labels = completions.items.map(item =>
26-
typeof item.label === 'string' ? item.label : item.label.label
27-
);
25+
const labels = completions.items.map((item) => (typeof item.label === 'string' ? item.label : item.label.label));
2826

2927
// Should have standard callback types
3028
assert.ok(
31-
labels.some(label => label === 'Closure' || label.includes('Closure')),
32-
'Should include Closure option'
29+
labels.some((label) => label === 'Closure' || label.includes('Closure')),
30+
'Should include Closure option',
3331
);
3432
assert.ok(
35-
labels.some(label => label === 'Function' || label.includes('Function')),
36-
'Should include Function option'
33+
labels.some((label) => label === 'Function' || label.includes('Function')),
34+
'Should include Function option',
3735
);
3836
});
3937

4038
test('Should provide callback completions for add_filter', async () => {
4139
const doc = await vscode.workspace.openTextDocument({
4240
language: 'php',
43-
content: "<?php\nadd_filter('the_content', "
41+
content: "<?php\nadd_filter('the_content', ",
4442
});
4543

4644
await vscode.window.showTextDocument(doc);
47-
await new Promise(resolve => setTimeout(resolve, 100));
45+
await new Promise((resolve) => setTimeout(resolve, 100));
4846

4947
const position = new vscode.Position(1, 32);
5048

5149
const completions = await vscode.commands.executeCommand<vscode.CompletionList>(
5250
'vscode.executeCompletionItemProvider',
5351
doc.uri,
54-
position
52+
position,
5553
);
5654

5755
assert.ok(completions, 'Completions should be returned');
5856
assert.ok(completions.items.length > 0, 'Should have completion items');
5957

60-
const labels = completions.items.map(item =>
61-
typeof item.label === 'string' ? item.label : item.label.label
62-
);
58+
const labels = completions.items.map((item) => (typeof item.label === 'string' ? item.label : item.label.label));
6359

6460
// Should have callback types including arrow function for filters
6561
assert.ok(
66-
labels.some(label => label === 'Arrow function' || label.includes('Arrow')),
67-
'Should include Arrow function option for filters'
62+
labels.some((label) => label === 'Arrow function' || label.includes('Arrow')),
63+
'Should include Arrow function option for filters',
6864
);
6965
});
7066

7167
test('Should include WordPress utility functions for filters', async () => {
7268
const doc = await vscode.workspace.openTextDocument({
7369
language: 'php',
74-
content: "<?php\nadd_filter('the_content', "
70+
content: "<?php\nadd_filter('the_content', ",
7571
});
7672

7773
await vscode.window.showTextDocument(doc);
78-
await new Promise(resolve => setTimeout(resolve, 100));
74+
await new Promise((resolve) => setTimeout(resolve, 100));
7975

8076
const position = new vscode.Position(1, 32);
8177

8278
const completions = await vscode.commands.executeCommand<vscode.CompletionList>(
8379
'vscode.executeCompletionItemProvider',
8480
doc.uri,
85-
position
81+
position,
8682
);
8783

8884
assert.ok(completions, 'Completions should be returned');
89-
const labels = completions.items.map(item =>
90-
typeof item.label === 'string' ? item.label : item.label.label
91-
);
85+
const labels = completions.items.map((item) => (typeof item.label === 'string' ? item.label : item.label.label));
9286

9387
// Check for WordPress utility functions
94-
const hasUtilityFunctions = labels.some(label =>
95-
label && (
96-
label.includes('Return true') ||
97-
label.includes('Return false') ||
98-
label.includes('Return null') ||
99-
label.includes('return')
100-
)
101-
);
88+
const hasUtilityFunctions = labels.some((label) => label && (
89+
label.includes('Return true')
90+
|| label.includes('Return false')
91+
|| label.includes('Return null')
92+
|| label.includes('return')
93+
));
10294

10395
assert.ok(
10496
hasUtilityFunctions,
105-
`Should include WordPress utility function options. Got: ${labels.slice(0, 15).join(', ')}`
97+
`Should include WordPress utility function options. Got: ${labels.slice(0, 15).join(', ')}`,
10698
);
10799
});
108100
});

0 commit comments

Comments
 (0)