Skip to content

Commit 354da80

Browse files
tdusnokiyichoi
authored andcommitted
Added HoverProvider to IntelliSense features
IoT.js-VSCode-DCO-1.0-Signed-off-by: Tibor Dusnoki [email protected]
1 parent f05f806 commit 354da80

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

src/extension.ts

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,25 @@ const createModules = (document: vscode.TextDocument, position: vscode.Position)
163163
return [];
164164
};
165165

166+
const createHover = (document: vscode.TextDocument, position: vscode.Position): vscode.Hover => {
167+
const hoverText = document.getText(document.getWordRangeAtPosition(position));
168+
const rm = new RegExp(`([a-zA-Z0-9$_ ]+)\\.${hoverText}([a-zA-Z0-9$_ ]*)`);
169+
const match = rm.exec(document.lineAt(position.line).text);
170+
const modules = Object.keys(iotjs);
171+
let hoverContent: vscode.MarkdownString[] = [];
172+
const availableModules = defaultModules.concat(lookForModules(document.getText()));
173+
const hoverModule = availableModules.find(mod => mod.link === match[1]).mod;
174+
175+
modules.forEach(mod => {
176+
for (let i in iotjs[mod]) {
177+
if (hoverText === iotjs[mod][i].insertText && hoverModule === mod) {
178+
hoverContent.push(iotjs[mod][i].documentation);
179+
}
180+
}
181+
});
182+
return new vscode.Hover(hoverContent);
183+
};
184+
166185
export const activate = (context: vscode.ExtensionContext) => {
167186
context.subscriptions.push(
168187
vscode.commands.registerCommand('iotjs-debug.provideInitialConfigurations', provideInitialConfigurations),
@@ -176,7 +195,12 @@ export const activate = (context: vscode.ExtensionContext) => {
176195
provideCompletionItems(document: vscode.TextDocument, position: vscode.Position) {
177196
return createItems(document, position);
178197
}
179-
}, '.')
198+
}, '.'),
199+
vscode.languages.registerHoverProvider(JS_MODE, {
200+
provideHover(document: vscode.TextDocument, position: vscode.Position) {
201+
return createHover(document, position);
202+
}
203+
} )
180204
);
181205
};
182206

0 commit comments

Comments
 (0)