#add transform old version of property.json

This commit is contained in:
锦恢 2023-07-07 12:26:36 +08:00
parent f10f6cee18
commit bf91a08b17
6 changed files with 76 additions and 7 deletions

View File

@ -394,7 +394,7 @@
"light": "images/svg/light/netlist.svg",
"dark": "images/svg/dark/netlist.svg"
},
"category": "tool",
"category": "Digital-IDE",
"title": "%digital-ide.netlist.title%"
},
{
@ -403,12 +403,18 @@
"light": "images/svg/light/fsm.svg",
"dark": "images/svg/dark/fsm.svg"
},
"category": "tool",
"category": "Digital-IDE",
"title": "%digital-ide.fsm.title%"
},
{
"command": "digital-ide.lsp.tool.insertTextToUri",
"title": "%digital-ide.lsp.tool.insertTextToUri.title%"
"title": "%digital-ide.lsp.tool.insertTextToUri.title%",
"category": "Digital-IDE"
},
{
"command": "digital-ide.lsp.tool.transformOldPropertyFile",
"title": "%digital-ide.lsp.tool.transformOldPropertyFile.title%",
"category": "Digital-IDE"
}
],
"menus": {

View File

@ -36,5 +36,6 @@
"digital-ide.pl.delFile.title": "del file",
"digital-ide.netlist.title": "netlist",
"digital-ide.fsm.title": "finite state machine",
"digital-ide.lsp.tool.insertTextToUri.title": "insert text to uri"
"digital-ide.lsp.tool.insertTextToUri.title": "insert text to uri",
"digital-ide.lsp.tool.transformOldPropertyFile.title": "transform configure file from previous version to new version"
}

View File

@ -36,5 +36,6 @@
"digital-ide.pl.delFile.title": "d删除文件",
"digital-ide.netlist.title": "netlist",
"digital-ide.fsm.title": "有限状态机",
"digital-ide.lsp.tool.insertTextToUri.title": "插入文本uri"
"digital-ide.lsp.tool.insertTextToUri.title": "插入文本uri",
"digital-ide.lsp.tool.transformOldPropertyFile.title": "转换配置文件从先前版本新版本"
}

View File

@ -36,5 +36,6 @@
"digital-ide.pl.delFile.title": "d刪除文件",
"digital-ide.netlist.title": "netlist",
"digital-ide.fsm.title": "有限狀態機",
"digital-ide.lsp.tool.insertTextToUri.title": "插入文本uri"
"digital-ide.lsp.tool.insertTextToUri.title": "插入文本uri",
"digital-ide.lsp.tool.transformOldPropertyFile.title": "轉換配置文件從先前版本新版本"
}

View File

@ -76,6 +76,7 @@ function registerLsp(context: vscode.ExtensionContext) {
function registerToolCommands(context: vscode.ExtensionContext) {
vscode.commands.registerCommand('digital-ide.lsp.tool.insertTextToUri', tool.insertTextToUri);
vscode.commands.registerCommand('digital-ide.lsp.tool.transformOldPropertyFile', tool.transformOldPpy);
}
export {

View File

@ -1,4 +1,9 @@
/* eslint-disable @typescript-eslint/naming-convention */
import * as vscode from 'vscode';
import * as fs from 'fs';
import { opeParam } from '../global';
import { hdlFile } from '../hdlFs';
async function insertTextToUri(uri: vscode.Uri, text: string, position?: vscode.Position) {
if (!position) {
@ -12,7 +17,61 @@ async function insertTextToUri(uri: vscode.Uri, text: string, position?: vscode.
}
}
const PPY_REPLACE: Record<string, string> = {
TOOL_CHAIN: 'toolChain',
PRJ_NAME: 'prjName',
ARCH: 'arch',
SOC: 'soc',
enableShowlog: 'enableShowLog',
Device: 'device'
};
const PPY_ARCH_REPLACE: Record<string, string> = {
PRJ_Path: 'prjPath',
Hardware: 'hardware',
Software: 'software'
};
const PPY_LIB_REPLACE: Record<string, string> = {
Hardware: 'hardware'
};
async function transformOldPpy() {
const propertyJsonPath = opeParam.propertyJsonPath;
if (fs.existsSync(propertyJsonPath)) {
const oldPpyContent = hdlFile.readJSON(propertyJsonPath) as Record<any, any>;
if (oldPpyContent.ARCH) {
for (const oldName of Object.keys(PPY_ARCH_REPLACE)) {
const newName = PPY_ARCH_REPLACE[oldName];
oldPpyContent.ARCH[newName] = oldPpyContent.ARCH[oldName];
delete oldPpyContent.ARCH[oldName];
}
}
if (oldPpyContent.library) {
for (const oldName of Object.keys(PPY_LIB_REPLACE)) {
const newName = PPY_LIB_REPLACE[oldName];
oldPpyContent.library[newName] = oldPpyContent.library[oldName];
delete oldPpyContent.library[oldName];
}
}
for (const oldName of Object.keys(PPY_REPLACE)) {
const newName = PPY_REPLACE[oldName];
oldPpyContent[newName] = oldPpyContent[oldName];
delete oldPpyContent[oldName];
}
hdlFile.writeJSON(propertyJsonPath, oldPpyContent);
} else {
vscode.window.showErrorMessage('You have\'t create property.json!');
}
}
export {
insertTextToUri
insertTextToUri,
transformOldPpy
};