58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
import * as vscode from 'vscode';
|
|
import { hdlPath } from '../../hdlFs';
|
|
|
|
import { hardwareTreeProvider, softwareTreeProvider, toolTreeProvider } from './command';
|
|
import { moduleTreeProvider, ModuleDataItem } from './tree';
|
|
import { Range } from '../../hdlParser/common';
|
|
|
|
|
|
async function openFileAtPosition(uri: vscode.Uri, range: Range) {
|
|
const document = await vscode.workspace.openTextDocument(uri);
|
|
const start = new vscode.Position(range.start.line, range.start.character);
|
|
const end = new vscode.Position(range.end.line, range.end.character);
|
|
|
|
await vscode.window.showTextDocument(
|
|
document,
|
|
{
|
|
selection: new vscode.Range(start, end)
|
|
}
|
|
);
|
|
}
|
|
|
|
function openFileByUri(path: string, range: Range) {
|
|
if (range === undefined) {
|
|
vscode.window.showErrorMessage(`${path} not support jump yet`);
|
|
return;
|
|
}
|
|
|
|
if (hdlPath.exist(path)) {
|
|
const uri = vscode.Uri.file(path);
|
|
openFileAtPosition(uri, range);
|
|
}
|
|
}
|
|
|
|
function refreshArchTree(element?: ModuleDataItem) {
|
|
// TODO : diff and optimize
|
|
moduleTreeProvider.refresh(element);
|
|
}
|
|
|
|
function expandTreeView() {
|
|
vscode.commands.executeCommand('setContext', 'TOOL-tree-expand', false);
|
|
}
|
|
|
|
function collapseTreeView() {
|
|
vscode.commands.executeCommand('workbench.actions.treeView.digital-ide-treeView-arch.collapseAll');
|
|
vscode.commands.executeCommand('setContext', 'TOOL-tree-expand', true);
|
|
}
|
|
|
|
|
|
export {
|
|
hardwareTreeProvider,
|
|
softwareTreeProvider,
|
|
toolTreeProvider,
|
|
moduleTreeProvider,
|
|
expandTreeView,
|
|
collapseTreeView,
|
|
openFileByUri,
|
|
refreshArchTree
|
|
}; |