From e2137b896e76eca7a9aecd2c30bb62e351621a25 Mon Sep 17 00:00:00 2001 From: li zhisheng Date: Mon, 22 May 2023 19:27:38 +0800 Subject: [PATCH] [main] support rust program --- crazy_functional.py | 6 ++++++ crazy_functions/解析项目源代码.py | 19 +++++++++++++++++++ docs/translate_english.json | 3 +++ docs/translate_japanese.json | 3 +++ docs/translate_traditionalchinese.json | 4 +++- 5 files changed, 34 insertions(+), 1 deletion(-) diff --git a/crazy_functional.py b/crazy_functional.py index 462000e..f1bf675 100644 --- a/crazy_functional.py +++ b/crazy_functional.py @@ -10,6 +10,7 @@ def get_crazy_functions(): from crazy_functions.解析项目源代码 import 解析一个C项目的头文件 from crazy_functions.解析项目源代码 import 解析一个C项目 from crazy_functions.解析项目源代码 import 解析一个Golang项目 + from crazy_functions.解析项目源代码 import 解析一个Rust项目 from crazy_functions.解析项目源代码 import 解析一个Java项目 from crazy_functions.解析项目源代码 import 解析一个前端项目 from crazy_functions.高级功能函数模板 import 高阶功能模板函数 @@ -65,6 +66,11 @@ def get_crazy_functions(): "AsButton": False, # 加入下拉菜单中 "Function": HotReload(解析一个Golang项目) }, + "解析整个Rust项目": { + "Color": "stop", # 按钮颜色 + "AsButton": False, # 加入下拉菜单中 + "Function": HotReload(解析一个Rust项目) + }, "解析整个Java项目": { "Color": "stop", # 按钮颜色 "AsButton": False, # 加入下拉菜单中 diff --git a/crazy_functions/解析项目源代码.py b/crazy_functions/解析项目源代码.py index cd16256..5fa0cb7 100644 --- a/crazy_functions/解析项目源代码.py +++ b/crazy_functions/解析项目源代码.py @@ -232,6 +232,25 @@ def 解析一个Golang项目(txt, llm_kwargs, plugin_kwargs, chatbot, history, s return yield from 解析源代码新(file_manifest, project_folder, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt) +@CatchException +def 解析一个Rust项目(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt, web_port): + history = [] # 清空历史,以免输入溢出 + import glob, os + if os.path.exists(txt): + project_folder = txt + else: + if txt == "": txt = '空空如也的输入栏' + report_execption(chatbot, history, a=f"解析项目: {txt}", b=f"找不到本地项目或无权访问: {txt}") + yield from update_ui(chatbot=chatbot, history=history) # 刷新界面 + return + file_manifest = [f for f in glob.glob(f'{project_folder}/**/*.rs', recursive=True)] + \ + [f for f in glob.glob(f'{project_folder}/**/*.toml', recursive=True)] + \ + [f for f in glob.glob(f'{project_folder}/**/*.lock', recursive=True)] + if len(file_manifest) == 0: + report_execption(chatbot, history, a=f"解析项目: {txt}", b=f"找不到任何golang文件: {txt}") + yield from update_ui(chatbot=chatbot, history=history) # 刷新界面 + return + yield from 解析源代码新(file_manifest, project_folder, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt) @CatchException def 解析一个Lua项目(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt, web_port): diff --git a/docs/translate_english.json b/docs/translate_english.json index efc436c..181f53e 100644 --- a/docs/translate_english.json +++ b/docs/translate_english.json @@ -20,6 +20,7 @@ "解析一个C项目的头文件": "ParseCProjectHeaderFiles", "解析一个C项目": "ParseCProject", "解析一个Golang项目": "ParseGolangProject", + "解析一个Rust项目": "ParseRustProject", "解析一个Java项目": "ParseJavaProject", "解析一个前端项目": "ParseFrontendProject", "高阶功能模板函数": "HighOrderFunctionTemplateFunctions", @@ -216,6 +217,7 @@ "解析整个C++项目头文件": "Parse the entire C++ project header file", "解析整个C++项目": "Parse the entire C++ project", "解析整个Go项目": "Parse the entire Go project", + "解析整个Rust项目": "Parse the entire Go project", "解析整个Java项目": "Parse the entire Java project", "解析整个前端项目": "Parse the entire front-end project", "css等": "CSS, etc.", @@ -1060,6 +1062,7 @@ "找不到任何java文件": "No Java files found", "找不到任何前端相关文件": "No front-end related files found", "找不到任何golang文件": "No Golang files found", + "找不到任何rust文件": "No Rust files found", "找不到任何lua文件": "No Lua files found", "找不到任何CSharp文件": "No CSharp files found", "找不到任何文件": "No files found", diff --git a/docs/translate_japanese.json b/docs/translate_japanese.json index 9f41e3f..9ea37c8 100644 --- a/docs/translate_japanese.json +++ b/docs/translate_japanese.json @@ -20,6 +20,7 @@ "解析一个C项目的头文件": "ParseCProjectHeaderFile", "解析一个C项目": "ParseACProject", "解析一个Golang项目": "ParseAGolangProject", + "解析一个Rust项目": "ParseARustProject", "解析一个Java项目": "ParseAJavaProject", "解析一个前端项目": "ParseAFrontendProject", "高阶功能模板函数": "AdvancedFeatureTemplateFunction", @@ -267,6 +268,7 @@ "玫瑰色": "ローズ色", "根据以上分析": "上記の分析に基づいて", "解析整个Go项目": "Goプロジェクト全体を解析する", + "解析整个Rust项目": "Rustプロジェクト全体を解析する", "新功能": "新機能", "避免代理网络产生意外污染": "プロキシネットワークによる予期しない汚染を回避する", "检测到": "検出された", @@ -1375,6 +1377,7 @@ "不输入文件名": "Do not enter file name", "准备文件的下载": "Preparing for file download", "找不到任何golang文件": "Cannot find any golang files", + "找不到任何rust文件": "Cannot find any rust files", "写入文件": "Write to file", "LLM_MODEL 格式不正确!": "LLM_MODEL format is incorrect!", "引用次数是链接中的文本": "The reference count is the text in the link", diff --git a/docs/translate_traditionalchinese.json b/docs/translate_traditionalchinese.json index 71ae6c2..0cc65d7 100644 --- a/docs/translate_traditionalchinese.json +++ b/docs/translate_traditionalchinese.json @@ -19,7 +19,7 @@ "解析一个Python项目": "ParsePythonProject", "解析一个C项目的头文件": "ParseCProjectHeaderFile", "解析一个C项目": "ParseCProject", - "解析一个Golang项目": "ParseGolangProject", + "解析一个Rust项目": "ParseRustProject", "解析一个Java项目": "ParseJavaProject", "解析一个前端项目": "ParseAFrontEndProject", "高阶功能模板函数": "HigherOrderFeatureTemplateFunction", @@ -983,6 +983,7 @@ "api2d 正常完成": "api2d 正常完成", "您可以调用“LoadConversationHistoryArchive”还原当下的对话": "您可以調用“LoadConversationHistoryArchive”還原當下的對話", "找不到任何golang文件": "找不到任何golang文件", + "找不到任何rust文件": "找不到任何rust文件", "输入了已经经过转化的字符串": "輸入了已經經過轉換的字串", "是否在结束时": "是否在結束時", "存档文件详情": "存檔文件詳情", @@ -1358,6 +1359,7 @@ "防止爆token": "防止爆token", "等待重试": "等待重試", "解析整个Go项目": "解析整個Go項目", + "解析整个Rust项目": "解析整個Rust項目", "则随机选取WEB端口": "則隨機選取WEB端口", "不输入代表全部匹配": "不輸入代表全部匹配", "在前端打印些好玩的东西": "在前端打印些好玩的東西",