more refactoring

pull/5370/head
aniket-engg 2 years ago committed by Aniket
parent bf9a007422
commit e081a830d8
  1. 48
      libs/remix-ui/editor/src/lib/providers/codeActionProvider.ts

@ -12,15 +12,15 @@ export class RemixCodeActionProvider implements monaco.languages.CodeActionProvi
} }
async provideCodeActions ( async provideCodeActions (
model: monaco.editor.ITextModel /**ITextModel*/, model: monaco.editor.ITextModel,
range: monaco.Range /**Range*/, range: monaco.Range,
context: monaco.languages.CodeActionContext /**CodeActionContext*/, context: monaco.languages.CodeActionContext,
token: monaco.CancellationToken /**CancellationToken*/ token: monaco.CancellationToken
): Promise<monaco.languages.CodeActionList> { ): Promise<monaco.languages.CodeActionList> {
const actions: monaco.languages.CodeAction[] = [] const actions: monaco.languages.CodeAction[] = []
for (const error of context.markers) { for (const error of context.markers) {
let fixes: Record<string, any>[] let fixes: Record<string, any>[], msg: string
let msg: string let isOldAST: boolean = false
const errStrings: string[] = Object.keys(fixesList) const errStrings: string[] = Object.keys(fixesList)
const errStr:string = errStrings.find(es => error.message.includes(es)) const errStr:string = errStrings.find(es => error.message.includes(es))
if (errStr) { if (errStr) {
@ -30,34 +30,14 @@ export class RemixCodeActionProvider implements monaco.languages.CodeActionProvi
// Check if a function is hovered // Check if a function is hovered
if (nodeAtPosition && nodeAtPosition.nodeType === "FunctionDefinition") { if (nodeAtPosition && nodeAtPosition.nodeType === "FunctionDefinition") {
// Identify type of AST node // Identify type of AST node
if (nodeAtPosition.parameters && !Array.isArray(nodeAtPosition.parameters) && Array.isArray(nodeAtPosition.parameters.parameters)) { if (nodeAtPosition.parameters && !Array.isArray(nodeAtPosition.parameters) && Array.isArray(nodeAtPosition.parameters.parameters))
const paramNodes = nodeAtPosition.parameters.parameters isOldAST = true
// If method has parameters const paramNodes = isOldAST ? nodeAtPosition.parameters.parameters : nodeAtPosition.parameters
if (paramNodes.length) { for (const fix of fixes) {
for (const fix of fixes) { msg = paramNodes.length
msg = await this.fixForMethodWithParams(model, paramNodes, fix, error, true) ? await this.fixForMethodWithParams(model, paramNodes, fix, error, isOldAST)
this.addQuickFix(actions, error, model.uri, {title: fix.title, range: fix.range, text: msg}) : await this.fixForMethodWithoutParams(model, nodeAtPosition, fix, error, isOldAST)
} this.addQuickFix(actions, error, model.uri, {title: fix.title, range: fix.range, text: msg})
} else {
for (const fix of fixes) {
msg = await this.fixForMethodWithoutParams(model, nodeAtPosition, fix, error, true)
this.addQuickFix(actions, error, model.uri, {title: fix.title, range: fix.range, text: msg})
}
}
} else {
const paramNodes = nodeAtPosition.parameters
// If method has parameters
if (paramNodes.length) {
for (const fix of fixes) {
msg = await this.fixForMethodWithParams(model, paramNodes, fix, error, false)
this.addQuickFix(actions, error, model.uri, {title: fix.title, range: fix.range, text: msg})
}
} else {
for (const fix of fixes) {
msg = await this.fixForMethodWithoutParams(model, nodeAtPosition, fix, error, false)
this.addQuickFix(actions, error, model.uri, {title: fix.title, range: fix.range, text: msg})
}
}
} }
} else { } else {
for (const fix of fixes) { for (const fix of fixes) {

Loading…
Cancel
Save