From 3f6b9b230818494b5f05cff633772e05158f43dd Mon Sep 17 00:00:00 2001 From: bunsenstraat Date: Wed, 12 Oct 2022 08:19:55 -0500 Subject: [PATCH] improve parsing --- apps/remix-ide/src/app/plugins/parser/code-parser.tsx | 4 ++++ libs/remix-ui/editor/src/lib/providers/completionProvider.ts | 1 + 2 files changed, 5 insertions(+) diff --git a/apps/remix-ide/src/app/plugins/parser/code-parser.tsx b/apps/remix-ide/src/app/plugins/parser/code-parser.tsx index e378223a81f..9d22e16a847 100644 --- a/apps/remix-ide/src/app/plugins/parser/code-parser.tsx +++ b/apps/remix-ide/src/app/plugins/parser/code-parser.tsx @@ -246,6 +246,7 @@ export class CodeParser extends Plugin { nodesByContract.imports = {} nodesByContract.contracts = {} this.astWalker.walkFull(source.ast, async (node) => { + //console.log(node) if (node.nodeType === 'ContractDefinition') { const flatNodes = this._flatNodeList(node, fileName, false, compilationResult) node.gasEstimate = this._getContractGasEstimate(node, node.name, fileName, compilationResult) @@ -282,6 +283,9 @@ export class CodeParser extends Plugin { nodesByContract.contracts[node.name].baseNodes = baseNodes nodesByContract.contracts[node.name].baseNodesWithBaseContractScope = baseNodesWithBaseContractScope nodesByContract.contracts[node.name].contractScopeNodes = this._flatNodeList(node, fileName, true, compilationResult) + if(node.contractKind == 'interface'){ + console.log(nodesByContract.contracts[node.name]) + } } if (node.nodeType === 'ImportDirective') { diff --git a/libs/remix-ui/editor/src/lib/providers/completionProvider.ts b/libs/remix-ui/editor/src/lib/providers/completionProvider.ts index b57bada9364..ebcf0a1377f 100644 --- a/libs/remix-ui/editor/src/lib/providers/completionProvider.ts +++ b/libs/remix-ui/editor/src/lib/providers/completionProvider.ts @@ -271,6 +271,7 @@ export class RemixCompletionProvider implements languages.CompletionItemProvider if (node.nodeType === 'ContractDefinition') { contractNode = node const contractNodes = fileNodes.contracts[node.name] + nodes = [...Object.values(fileNodes.contracts).map((c) => (c as any).contractDefinition), ...nodes] nodes = [...Object.values(contractNodes.contractScopeNodes), ...nodes] nodes = [...Object.values(contractNodes.baseNodesWithBaseContractScope), ...nodes] nodes = [...Object.values(fileNodes.imports), ...nodes]