visibility added for method with params

pull/5370/head
aniket-engg 2 years ago committed by Aniket
parent 25570c57c9
commit 68d1f7592f
  1. 19
      libs/remix-ui/editor/src/lib/providers/codeActionProvider.ts
  2. 2
      libs/remix-ui/editor/src/lib/providers/quickfixes.ts

@ -20,29 +20,30 @@ export class RemixCodeActionProvider implements monaco.languages.CodeActionProvi
) { ) {
const actions = [] const actions = []
for (const error of context.markers) { for (const error of context.markers) {
console.log('error----->', error) let fix
let msg
const errStrings = Object.keys(fixes) const errStrings = Object.keys(fixes)
const errStr = errStrings.find(es => error.message.includes(es)) const errStr = errStrings.find(es => error.message.includes(es))
if (errStr) { if (errStr) {
let fix = fixes[errStr] fix = fixes[errStr]
const cursorPosition = this.props.editorAPI.getHoverPosition({lineNumber: error.startLineNumber, column: error.startColumn}) const cursorPosition = this.props.editorAPI.getHoverPosition({lineNumber: error.startLineNumber, column: error.startColumn})
const nodeAtPosition = await this.props.plugin.call('codeParser', 'definitionAtPosition', cursorPosition) const nodeAtPosition = await this.props.plugin.call('codeParser', 'definitionAtPosition', cursorPosition)
if (nodeAtPosition && nodeAtPosition.nodeType === "FunctionDefinition") { if (nodeAtPosition && nodeAtPosition.nodeType === "FunctionDefinition") {
console.log('nodeAtPosition---->', nodeAtPosition) if (nodeAtPosition.parameters && nodeAtPosition.parameters && nodeAtPosition.parameters.length > 0) {
if (nodeAtPosition.parameters && nodeAtPosition.parameters.length > 0) {
const paramNodes = nodeAtPosition.parameters const paramNodes = nodeAtPosition.parameters
const lastParamNode = paramNodes[paramNodes.length - 1] const lastParamNode = paramNodes[paramNodes.length - 1]
console.log('lastParamNode---->', lastParamNode)
const lastParamEndLoc = lastParamNode.loc.end const lastParamEndLoc = lastParamNode.loc.end
console.log('lastParamEndLoc---->', lastParamEndLoc) const lineContent = model.getLineContent(lastParamEndLoc.line)
msg = lineContent.substring(0, lastParamEndLoc.column + 10) + fix.message + lineContent.substring(lastParamEndLoc.column + 10, lineContent.length)
fix.range = { fix.range = {
startLineNumber: lastParamEndLoc.line, startLineNumber: lastParamEndLoc.line,
endLineNumber: lastParamEndLoc.line, endLineNumber: lastParamEndLoc.line,
startColumn: lastParamEndLoc.column + 11, startColumn: 0,
endColumn: lastParamEndLoc.column + 19 endColumn: error.startColumn + msg.length
} }
} }
} }
actions.push({ actions.push({
title: fix.title, title: fix.title,
diagnostics: [error], diagnostics: [error],
@ -53,7 +54,7 @@ export class RemixCodeActionProvider implements monaco.languages.CodeActionProvi
resource: model.uri, resource: model.uri,
edit: { edit: {
range: fix.range || error, range: fix.range || error,
text: fix.message text: msg || fix.message
} }
} }
] ]

@ -15,6 +15,6 @@ export default {
}, },
"SyntaxError: No visibility specified. Did you intend to add \"public\"": { "SyntaxError: No visibility specified. Did you intend to add \"public\"": {
"title": "Add public visibility", "title": "Add public visibility",
"message": "public", "message": "public ",
} }
} }
Loading…
Cancel
Save