Skip to content
This repository has been archived by the owner on Nov 16, 2023. It is now read-only.

Commit

Permalink
Add lint task
Browse files Browse the repository at this point in the history
  • Loading branch information
mjbvz committed Jun 17, 2019
1 parent cd015a1 commit eda533e
Show file tree
Hide file tree
Showing 6 changed files with 293 additions and 12 deletions.
266 changes: 266 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -154,13 +154,15 @@
"scripts": {
"vscode:prepublish": "npm run compile",
"compile": "tsc -p ./",
"watch": "tsc -w -p ./"
"watch": "tsc -w -p ./",
"lint": "tslint -c tslint.json -p ."
},
"dependencies": {
"typescript-tslint-plugin": "0.5.0"
},
"devDependencies": {
"@types/vscode": "^1.32.0",
"tslint": "^5.17.0",
"typescript": "^3.4.5"
}
}
12 changes: 5 additions & 7 deletions src/fixAll.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@

import * as vscode from 'vscode';
import { isTypeScriptDocument, isEnabledForJavaScriptDocument } from './utils';
import { isEnabledForJavaScriptDocument, isTypeScriptDocument } from './utils';

function executeCodeActionProvider(uri: vscode.Uri, range: vscode.Range) {
return vscode.commands.executeCommand<vscode.CodeAction[]>('vscode.executeCodeActionProvider', uri, range);
}


async function getTsLintFixAllCodeAction(document: vscode.TextDocument): Promise<vscode.CodeAction | undefined> {
const diagnostics = vscode.languages
.getDiagnostics(document.uri)
.filter(diagnostic => diagnostic.source === 'tslint');
.filter((diagnostic) => diagnostic.source === 'tslint');

for (const diagnostic of diagnostics) {
const codeActions = await executeCodeActionProvider(document.uri, diagnostic.range);
if (codeActions) {
const fixAll = codeActions.filter(action => action.title === 'Fix all auto-fixable tslint failures');
const fixAll = codeActions.filter((action) => action.title === 'Fix all auto-fixable tslint failures');
if (fixAll.length > 0) {
return fixAll[0];
}
Expand All @@ -24,19 +23,18 @@ async function getTsLintFixAllCodeAction(document: vscode.TextDocument): Promise
return undefined;
}


const fixAllCodeActionKind = vscode.CodeActionKind.SourceFixAll.append('tslint');

export class FixAllProvider implements vscode.CodeActionProvider {
public static metadata: vscode.CodeActionProviderMetadata = {
providedCodeActionKinds: [fixAllCodeActionKind],
};

async provideCodeActions(
public async provideCodeActions(
document: vscode.TextDocument,
_range: vscode.Range | vscode.Selection,
context: vscode.CodeActionContext,
_token: vscode.CancellationToken
_token: vscode.CancellationToken,
): Promise<vscode.CodeAction[]> {
if (!context.only) {
return [];
Expand Down
Loading

0 comments on commit eda533e

Please sign in to comment.