在panel中添加了Checker相关的选项
This commit is contained in:
parent
16bd58ca22
commit
dc7254fae2
|
|
@ -12,7 +12,11 @@ import {
|
|||
getTriggerCountByEntity,
|
||||
subscribeTrigger,
|
||||
} from '../utils/triggers';
|
||||
import { TriggerInfo } from '../types';
|
||||
import { CheckerInfo, TriggerInfo } from '../types';
|
||||
import {
|
||||
getCheckerCountByEntity,
|
||||
getCheckersInfoByEntity,
|
||||
} from '../utils/checkers';
|
||||
|
||||
class OakTreeDataProvider implements vscode.TreeDataProvider<TreeItem> {
|
||||
private disposeGlobal: (() => void) | null = null;
|
||||
|
|
@ -106,17 +110,10 @@ class OakTreeDataProvider implements vscode.TreeDataProvider<TreeItem> {
|
|||
const children: TreeItem[] = [];
|
||||
children.push(new ComponentsItem(element.getEntityName()));
|
||||
children.push(new TriggersItem(element.getEntityName()));
|
||||
children.push(new CheckersItem(element.getEntityName()));
|
||||
return children;
|
||||
}
|
||||
if (element instanceof TriggersItem) {
|
||||
// return entityConfig
|
||||
// .getEntityDesc(element.getEntityName())
|
||||
// .projectionList.map((projection) => {
|
||||
// return new TreeItem(
|
||||
// projection,
|
||||
// vscode.TreeItemCollapsibleState.None
|
||||
// );
|
||||
// });
|
||||
return getTrigersInfoByEntity(element.getEntityName()).map(
|
||||
(trigger) => {
|
||||
return new TriggerItem(
|
||||
|
|
@ -126,6 +123,16 @@ class OakTreeDataProvider implements vscode.TreeDataProvider<TreeItem> {
|
|||
}
|
||||
);
|
||||
}
|
||||
if (element instanceof CheckersItem) {
|
||||
return getCheckersInfoByEntity(element.getEntityName()).map(
|
||||
(checker) => {
|
||||
return new CheckerItem(
|
||||
checker,
|
||||
vscode.TreeItemCollapsibleState.None
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
if (element instanceof ComponentsItem) {
|
||||
return componentConfig
|
||||
.getEntityComponents(element.getEntityName())
|
||||
|
|
@ -213,6 +220,8 @@ export class ComponentItem extends TreeItem {
|
|||
}
|
||||
}
|
||||
|
||||
// Trigger相关的选项
|
||||
|
||||
export class TriggersItem extends TreeItem {
|
||||
constructor(public readonly entity: string) {
|
||||
const count = getTriggerCountByEntity(entity);
|
||||
|
|
@ -246,6 +255,41 @@ export class TriggerItem extends TreeItem {
|
|||
}
|
||||
}
|
||||
|
||||
// Checker相关的选项
|
||||
|
||||
export class CheckersItem extends TreeItem {
|
||||
constructor(public readonly entity: string) {
|
||||
const count = getCheckerCountByEntity(entity);
|
||||
super(
|
||||
`Checkers (${count})`,
|
||||
vscode.TreeItemCollapsibleState.Collapsed,
|
||||
entity
|
||||
);
|
||||
this.contextValue = 'checkersItem'; // 添加这行,用于识别右键菜单项
|
||||
}
|
||||
}
|
||||
|
||||
export class CheckerItem extends TreeItem {
|
||||
constructor(
|
||||
public readonly checker: CheckerInfo,
|
||||
public readonly collapsibleState: vscode.TreeItemCollapsibleState
|
||||
) {
|
||||
super(`${checker.action.join(',')}`, collapsibleState);
|
||||
this.contextValue = 'checkerItem'; // 添加这行,用于识别右键菜单项
|
||||
// 命令点击后跳转到指定文件的指定位置
|
||||
const args = {
|
||||
filePath: checker.path,
|
||||
start: checker.pos.start,
|
||||
end: checker.pos.end,
|
||||
};
|
||||
this.command = {
|
||||
command: 'oak-assistant.jumpToPosition',
|
||||
title: '定位到文件',
|
||||
arguments: [args],
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export const createOakTreePanel = () => {
|
||||
const treeDataProvider = new OakTreeDataProvider();
|
||||
const treeView = vscode.window.createTreeView('oak-entities', {
|
||||
|
|
|
|||
|
|
@ -1061,7 +1061,7 @@ export const getCheckerCountByEntity = (entity: string): number => {
|
|||
* @param entity entity名称
|
||||
* @returns checker信息
|
||||
*/
|
||||
export const getTrigersInfoByEntity = (entity: string): CheckerInfo[] => {
|
||||
export const getCheckersInfoByEntity = (entity: string): CheckerInfo[] => {
|
||||
return checkers
|
||||
.filter((t) => t.entity === entity)
|
||||
.map((t) => {
|
||||
|
|
|
|||
Loading…
Reference in New Issue