From bd22ff5f8e7cfc9b306dc2c1a51edac454736dd0 Mon Sep 17 00:00:00 2001 From: supperthomas <78900636@qq.com> Date: Sun, 5 Mar 2023 03:42:43 +0800 Subject: [PATCH] [tools][vsc] Add the workspace of vscode (#7017) --- tools/vsc.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/tools/vsc.py b/tools/vsc.py index 29ee8a91f7..42e055c685 100644 --- a/tools/vsc.py +++ b/tools/vsc.py @@ -20,6 +20,7 @@ # Change Logs: # Date Author Notes # 2018-05-30 Bernard The first version +# 2023-03-03 Supperthomas Add the vscode workspace config file """ Utils for VSCode @@ -31,6 +32,10 @@ import utils import rtconfig from utils import _make_path_relative +def delete_repeatelist(data): + temp_dict = set([str(item) for item in data]) + data = [eval(i) for i in temp_dict] + return data def GenerateCFiles(env): """ @@ -69,6 +74,36 @@ def GenerateCFiles(env): vsc_file.write(json.dumps(json_obj, ensure_ascii=False, indent=4)) vsc_file.close() + """ + Generate vscode.code-workspace files + """ + vsc_space_file = open('vscode.code-workspace', 'w') + if vsc_space_file: + info = utils.ProjectInfo(env) + path_list = [] + for i in info['CPPPATH']: + if _make_path_relative(os.getcwd(), i)[0] == '.': + if i[0] == '\"' and i[len(i) - 2:len(i)] == '\",': + path_list.append({'path':_make_path_relative(os.getcwd(), i[1:len(i) - 2])}) + else: + path_list.append({'path':_make_path_relative(os.getcwd(), i)}) + for i in info['DIRS']: + if _make_path_relative(os.getcwd(), i)[0] == '.': + if i[0] == '\"' and i[len(i) - 2:len(i)] == '\",': + path_list.append({'path':_make_path_relative(os.getcwd(), i[1:len(i) - 2])}) + else: + path_list.append({'path':_make_path_relative(os.getcwd(), i)}) + + json_obj = {} + path_list = delete_repeatelist(path_list) + path_list = sorted(path_list, key=lambda x: x["path"]) + target_path_list = [] + for path in path_list: + if path['path'] != '.': + path['name'] = 'rtthread/' + '/'.join([p for p in path['path'].split('\\') if p != '..']) + json_obj['folders'] = path_list + vsc_space_file.write(json.dumps(json_obj, ensure_ascii=False, indent=4)) + vsc_space_file.close() return def GenerateVSCode(env): -- GitLab