Skip to content

Commit

Permalink
feat: un-support multi-lines disable
Browse files Browse the repository at this point in the history
  • Loading branch information
lvjiaxuan committed Sep 1, 2022
1 parent b3a40d6 commit d9f6814
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 12 deletions.
24 changes: 14 additions & 10 deletions src/extension.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ExtensionContext, Position, ProgressLocation, SnippetString, StatusBarAlignment, StatusBarItem, commands, window, workspace } from 'vscode'
import { type ExtensionContext, Position, SnippetString, StatusBarAlignment, StatusBarItem, commands, window, workspace } from 'vscode'
import log from './log'
import { ESLint } from 'eslint'
import { getTextBylines } from './utils'
Expand Down Expand Up @@ -40,7 +40,12 @@ const disposes = [

const activeTextEditor = window.activeTextEditor
if (!activeTextEditor || !eslint) {
log('no `activeTextEditor` exist.', true)
log('no `activeTextEditor` exist.')
return
}

if (activeTextEditor.selections.length > 1) {
log('Sorry, we can not disable multi-lines for now. Support in later version.', true, 'OK')
return
}

Expand All @@ -53,7 +58,7 @@ const disposes = [
log('Linting finish.')
// eslint-disable-next-line require-atomic-updates
statusBarItem.text = '$(check) Linting finish.'
setTimeout(() => statusBarItem.hide(), 2222)
setTimeout(() => statusBarItem.hide(), 3000)

const lineRuleIdsMap = results?.[0].messages.reduce((preValue, item) => {
if (!item.ruleId) return preValue
Expand All @@ -66,16 +71,15 @@ const disposes = [
}, {} as Record<number, string[]>) ?? {}

if (!Object.keys(lineRuleIdsMap).length) {
log('Everything is good.')
void window.showInformationMessage('Everything is good.', 'OK')
log('Everything is good.', true, 'OK')
return
}

activeTextEditor.selections.forEach(selection => {

const text = getTextBylines(selection.start.line, selection.end.line)
if (!text) {
void window.showInformationMessage('No content to disable.', 'OK')
log('No content to disable.', true, 'OK')
return
}

Expand All @@ -85,19 +89,19 @@ const disposes = [
}

if (selection.isSingleLine) {
// Insert at previous line.
// Insert at previous line.
void activeTextEditor.insertSnippet(
new SnippetString(`// eslint-disable-next-line \${1|${ lineRuleIdsMap[selection.start.line + 1].join('\\, ') }|}\n`),
new Position(selection.start.line, insertIndex),
)
} else {
// wrap lines. Press `ctrl+d `to edit rules.
// Wrap lines. Press `ctrl+d `to edit rules at between lines.
void activeTextEditor.insertSnippet(
new SnippetString('/* eslint-disable ${1|INSERT_RULES|} */\n'),
new SnippetString(`/* eslint-disable \${1|${ lineRuleIdsMap[selection.start.line + 1].join('\\, ') }|} */\n`),
new Position(selection.start.line, insertIndex),
)
void activeTextEditor.insertSnippet(
new SnippetString('/* eslint-enable ${1|INSERT_RULES|} */\n'),
new SnippetString(`/* eslint-enable \${1|${ lineRuleIdsMap[selection.start.line + 1].join('\\, ') }|} */\n`),
new Position(selection.end.line + 2, insertIndex),
)
}
Expand Down
8 changes: 6 additions & 2 deletions src/log.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@ const getNowFormat = () => {
}

export { channel }
export default (message: string, showInformationMessage = false) => {
export default (
message: string,
showInformationMessage = false,
...informationMessage: string[]
) => {
channel.appendLine(`[${ getNowFormat() }] - ${ message }`)
showInformationMessage && window.showInformationMessage(message)
showInformationMessage && window.showInformationMessage(message, ...informationMessage)
}

0 comments on commit d9f6814

Please sign in to comment.