Skip to content

Commit ef235c6

Browse files
authored
Merge branch 'staging' into refactor/import-suggestions
2 parents cc1711b + 5ac1a60 commit ef235c6

File tree

3 files changed

+57
-5
lines changed

3 files changed

+57
-5
lines changed

package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "vscode-solidity-inspector",
33
"displayName": "Solidity Inspector",
44
"description": "A vscode extension used to inspect Solidity files",
5-
"version": "1.2.1",
5+
"version": "1.3.0",
66
"engines": {
77
"vscode": "^1.72.0"
88
},
@@ -12,8 +12,9 @@
1212
"keywords": [
1313
"ethereum",
1414
"solidity",
15-
"solidity-inspector",
16-
"forge-inspector"
15+
"blockchain",
16+
"EVM",
17+
"smart-contracts"
1718
],
1819
"publisher": "PraneshASP",
1920
"homepage": "https://github.com/PraneshASP/vscode-solidity-inspector",

src/commands/separator.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
const vscode = require("vscode");
2+
3+
function createSeparator(style) {
4+
if (style === 'solmate') {
5+
return ` /*//////////////////////////////////////////////////////////////
6+
\${1:PLACEHOLDER}
7+
//////////////////////////////////////////////////////////////*/\n`;
8+
} else {
9+
return ` /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
10+
/* \${1:PLACEHOLDER} */
11+
/*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n`;
12+
}
13+
}
14+
15+
function provideCompletionItemsForSeparator(document, position) {
16+
const linePrefix = document.lineAt(position).text.substr(0, position.character);
17+
18+
if (linePrefix.endsWith('////')) {
19+
const soladyItem = new vscode.CompletionItem('Solady Separator', vscode.CompletionItemKind.Snippet);
20+
soladyItem.insertText = new vscode.SnippetString(createSeparator('solady'));
21+
soladyItem.detail = "Insert a Solady style separator \n" + createSeparator('solady');
22+
soladyItem.additionalTextEdits = [vscode.TextEdit.delete(new vscode.Range(position.translate(0, -4), position))];
23+
24+
const solmateItem = new vscode.CompletionItem('Solmate Separator', vscode.CompletionItemKind.Snippet);
25+
solmateItem.insertText = new vscode.SnippetString(createSeparator('solmate'));
26+
solmateItem.detail = "Insert a Solmate style separator \n" + createSeparator('solmate');
27+
solmateItem.additionalTextEdits = [vscode.TextEdit.delete(new vscode.Range(position.translate(0, -4), position))];
28+
29+
return [soladyItem, solmateItem];
30+
}
31+
32+
return undefined;
33+
}
34+
35+
function activate(context) {
36+
context.subscriptions.push(
37+
vscode.languages.registerCompletionItemProvider(
38+
{ language: 'solidity', scheme: 'file' },
39+
{ provideCompletionItems: provideCompletionItemsForSeparator },
40+
'/'
41+
)
42+
);
43+
}
44+
45+
module.exports = {
46+
activate,
47+
provideCompletionItemsForSeparator
48+
};

src/extension.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ const { scaffoldActiveFile, scaffoldContextMenu } = require("./commands/bulloak-
4242

4343
const { provideCompletionItems, resetRemappings } = require("./completionItems.js");
4444

45+
const { activate: activateSeparator } = require("./commands/separator.js");
4546

4647
/** global vars */
4748
const EXTENSION_PREFIX = "vscode-solidity-inspector";
@@ -152,20 +153,22 @@ function onActivate(context) {
152153
context.subscriptions.push(scaffoldActiveFileSubscription);
153154
context.subscriptions.push(scaffoldContextMenuSubscription);
154155

155-
156156
// Import suggestions.
157157
context.subscriptions.push(vscode.languages.registerCompletionItemProvider('solidity', { provideCompletionItems }, ['"', "{"]));
158158
context.subscriptions.push(vscode.commands.registerCommand(EXTENSION_PREFIX + '.resetRemappings', () => {
159159
resetRemappings();
160160
vscode.window.showInformationMessage('Remappings have been refreshed!');
161161
}));
162-
162+
163163
vscode.window.visibleTextEditors.map(editor => {
164164
if (editor && editor.document && editor.document.languageId == "solidity") {
165165
unusedImportsActiveFile(editor);
166166
}
167167
});
168168

169+
// Activate separator
170+
activateSeparator(context);
171+
169172
}
170173

171174

0 commit comments

Comments
 (0)