Skip to content

Commit

Permalink
Adding extra autocomplete and syntax highlighting
Browse files Browse the repository at this point in the history
  • Loading branch information
juanfranblanco committed Mar 31, 2020
1 parent 59d2f90 commit 07fbc4e
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 22 deletions.
6 changes: 3 additions & 3 deletions src/completionService.ts
Expand Up @@ -200,8 +200,8 @@ export function GetCompletionKeywords(): CompletionItem[] {
const completionItems = [];
const keywords = [ 'modifier', 'mapping', 'break', 'continue', 'delete', 'else', 'for',
'if', 'new', 'return', 'returns', 'while', 'using',
'private', 'public', 'external', 'internal', 'payable', 'view', 'pure', 'case', 'do', 'else', 'finally',
'in', 'instanceof', 'return', 'throw', 'try', 'typeof', 'yield', 'void'] ;
'private', 'public', 'external', 'internal', 'payable', 'nonpayable', 'view', 'pure', 'case', 'do', 'else', 'finally',
'in', 'instanceof', 'return', 'throw', 'try', 'typeof', 'yield', 'void', 'virtual', 'override'] ;
keywords.forEach(unit => {
const completionItem = CompletionItem.create(unit);
completionItem.kind = CompletionItemKind.Keyword;
Expand Down Expand Up @@ -243,7 +243,7 @@ export function GeCompletionUnits(): CompletionItem[] {
if (unit !== 'years') {
completionItem.detail = unit + ': time unit';
} else {
completionItem.detail = 'DEPRICATED: ' + unit + ': time unit';
completionItem.detail = 'DEPRECATED: ' + unit + ': time unit';
}
completionItems.push(completionItem);
});
Expand Down
39 changes: 21 additions & 18 deletions src/formatter/prettierFormatter.ts
Expand Up @@ -3,25 +3,28 @@ import * as vscode from 'vscode';
import * as path from 'path';

export function formatDocument(document: vscode.TextDocument, context: vscode.ExtensionContext): vscode.TextEdit[] {
const rootPath = vscode.workspace.workspaceFolders[0].uri.fsPath;
const ignoreOptions = { ignorePath: path.join(rootPath, '.prettierignore') };
const fileInfo = prettier.getFileInfo.sync(document.uri.fsPath, ignoreOptions);
if (!fileInfo.ignored) {
const source = document.getText();
const formatter = vscode.workspace.getConfiguration('solidity').get<string>('formatter');
if (formatter === 'prettier') {
const rootPath = vscode.workspace.workspaceFolders[0].uri.fsPath;
const ignoreOptions = { ignorePath: path.join(rootPath, '.prettierignore') };
const fileInfo = prettier.getFileInfo.sync(document.uri.fsPath, ignoreOptions);
if (!fileInfo.ignored) {
const source = document.getText();

const pluginPath = path.join(context.extensionPath, 'node_modules', 'prettier-plugin-solidity');
const options = {
'parser': 'solidity-parse',
'pluginSearchDirs': [context.extensionPath],
'plugins': [pluginPath],
};
const config = prettier.resolveConfig.sync(document.uri.fsPath, options);
Object.assign(options, config);
const firstLine = document.lineAt(0);
const lastLine = document.lineAt(document.lineCount - 1);
const fullTextRange = new vscode.Range(firstLine.range.start, lastLine.range.end);
const formatted = prettier.format(source, options);
return [vscode.TextEdit.replace(fullTextRange, formatted)];
const pluginPath = path.join(context.extensionPath, 'node_modules', 'prettier-plugin-solidity');
const options = {
'parser': 'solidity-parse',
'pluginSearchDirs': [context.extensionPath],
'plugins': [pluginPath],
};
const config = prettier.resolveConfig.sync(document.uri.fsPath, options);
Object.assign(options, config);
const firstLine = document.lineAt(0);
const lastLine = document.lineAt(document.lineCount - 1);
const fullTextRange = new vscode.Range(firstLine.range.start, lastLine.range.end);
const formatted = prettier.format(source, options);
return [vscode.TextEdit.replace(fullTextRange, formatted)];
}
}
return null;
}
2 changes: 1 addition & 1 deletion syntaxes/solidity.json
Expand Up @@ -478,7 +478,7 @@
}
},
{
"match": "\\b(private|public|internal|external|constant|pure|view|payable|nonpayable|inherited|indexed|storage|memory)\\b",
"match": "\\b(private|public|internal|external|constant|pure|view|payable|nonpayable|inherited|indexed|storage|memory|virtual|override)\\b",
"name": "storage.type.mofifier.solidity"
}
]
Expand Down

0 comments on commit 07fbc4e

Please sign in to comment.