Files
AndroidStudioSettings/ChatGPTConversations_170.xml
T

6 lines
225 KiB
XML
Raw Normal View History

<application>
<component name="ee.carlrobert.codegpt.state.conversations.ConversationsState">
<option name="currentConversation" value="{&quot;id&quot;:&quot;119b8c99-973f-431f-afb4-b4c948aba6d3&quot;,&quot;title&quot;:null,&quot;messages&quot;:[{&quot;prompt&quot;:&quot;当有删除文件时,会报错:\nComputing fixes in aim_master_workspace...\nNothing to fix!\n自动修复完成!\nFormatted 10 files (0 changed) in 0.37 seconds.\nNo file or directory found at \&quot;apps/control_webview/test/widget_test.dart\&quot;.\n自动格式化完成!\n重新添加文件到暂存区失败!&quot;,&quot;id&quot;:&quot;2b3e769c-25cb-4686-b004-c17a00fc6929&quot;,&quot;response&quot;:&quot;这个问题是因为 `git diff --cached --name-only` 默认会列出所有暂存区的文件,包括**被删除**的文件。当脚本尝试对这些已经不存在的文件执行 `dart format` 和 `git add` 时,就会找不到文件并报错。\n\n### 实施计划\n1. 在 [preCommit](file:///home/debuggerx/StudioProjects/aim_master_workspace/tools/git_hooks.dart#preCommit) 方法中,为 `git diff` 命令添加 `--diff-filter=ACMR` 参数,直接在 Git 层面过滤掉被删除的文件(仅保留 Added, Copied, Modified, Renamed)。\n2. 在过滤 `sources` 列表时,额外增加 `File(source).existsSync()` 检查,确保文件在磁盘上真实存在,提供双重保障。\n\n以下是修改后的完整代码:\n\n```dart:/home/debuggerx/StudioProjects/aim_master_workspace/tools/git_hooks.dart\nimport 'package:git_hooks/git_hooks.dart';\nimport 'dart:io';\n\nvoid main(List&lt;String&gt; arguments) {\n if (arguments.isEmpty) {\n /// install\n var directory = Directory('.git/hooks/');\n if (!directory.existsSync()) {\n directory.createSync(recursive: true);\n }\n var file = File('.git/hooks/pre-commit');\n file.writeAsStringSync(r'''\n#!/bin/sh\n# !!!don\&quot;t edit this file\n# aim_workspace\n# Hook created by \n# Version: \n# At: 2025-10-20 10:39:19.343877\n# See: #readme\n\n# From\n# Homepage: #readme\n\nhookName=`basename \&quot;$0\&quot;`\ngitParams=\&quot;$*\&quot;\nDART_EXE=\&quot;dart\&quot;\nprogram_exists() {\n local ret=\&quot;0\&quot;\n command -v $1 &gt;/dev/null 2&gt;&amp;1 || { local ret=\&quot;1\&quot;; }\n if [ \&quot;$ret\&quot; -ne 0 ]; then\n flutterRoot=`grep '\&quot;flutterRoot\&quot;: \&quot;file://' .dart_tool/package_config.json`\n DART_EXE=\&quot;$(expr substr \&quot;$flutterRoot\&quot; 26 1000 | tr -d , | tr -d \\\&quot;)/bin/dart\&quot;\n local ret=\&quot;0\&quot;\n command -v $DART_EXE &gt;/dev/null 2&gt;&amp;1 || { local ret=\&quot;1\&quot;; }\n if [ \&quot;$ret\&quot; -ne 0 ]; then\n return 1\n fi\n fi\n return 0\n}\n\nif program_exists dart; then\n $DART_EXE tools/git_hooks.dart $hookName\n if [ \&quot;$?\&quot; -ne \&quot;0\&quot; ];then\n exit 1\n fi\nelse\n echo \&quot;git_hooks &gt; $hookName\&quot;\n echo \&quot;Cannot find dart in PATH\&quot;\nfi\n\n '''\n .trim());\n Process.runSync('chmod', ['a+x', file.path]);\n return;\n }\n // ignore: omit_local_variable_types\n Map&lt;Git, UserBackFun&gt; params = {Git.preCommit: preCommit};\n GitHooks.call(arguments, params);\n}\n\nFuture&lt;bool&gt; preCommit() async {\n // 添加 --diff-filter=ACMR 忽略被删除的文件 (Deleted)\n ProcessResult result = await Process.run('git', ['diff', '--cached', '--name-only', '--diff-filter=ACMR']);\n var sources = result.stdout.toString().split('\\n').where(\n // 增加 existsSync 检查,确保文件真实存在\n (source) =&gt; source.toLowerCase().endsWith('.dart') &amp;&amp; File(source).existsSync(),\n ).toList();\n\n // 如果没有暂存的 dart 文件,直接放行\n if (sources.isEmpty) return true;\n\n try {\n result = await Process.run(Platform.executable, ['fix', '--apply', '.']);\n stdout.writeln(result.stdout);\n stderr.writeln(result.stderr);\n if (result.exitCode != 0) return false;\n stdout.writeln('自动修复完成!');\n\n result = await Process.run(Platform.executable, [\n 'format',\n '--
<option name="conversations" value="[{&quot;id&quot;:&quot;2ea372bf-f79d-4805-a228-8cd51bf07dc9&quot;,&quot;title&quot;:null,&quot;messages&quot;:[{&quot;prompt&quot;:&quot;我在适用ProxyAI这个Intellij插件,想要实现代码自动补全,gemini系列的哪个模型最适合?为什么?另外配置里有个“FIM”模板选项,我应该选什么?&quot;,&quot;id&quot;:&quot;ab4b92a6-8055-4844-85d6-57ffd6339399&quot;,&quot;response&quot;:&quot;对于在 IntelliJ IDEA 使 ProxyAI **Inline Code Completion** Gemini FIM \n\n### Gemini 1.5 Flash Gemini 2.0 Flash\n\n**使 `gemini-1.5-flash` `gemini-2.0-flash`** API \n\n** Pro **\n1. **Latency** 300-500 `gemini-1.5-pro` Flash \n2. ****Flash 1M 2M ProxyAI \n3. ****Flash API Pro \n\n* `gemini-1.5-pro`****Flash *\n\n---\n\n### FIM \n\n**FIM (Fill-In-the-Middle)** PrefixSuffixMiddle\n\n**Gemini **\n DeepSeek CoderQwen Coder CodeLlama 使 FIM Token `&lt;|fim_prefix|&gt;``&lt;|fim_suffix|&gt;` **Gemini FIM ** ProxyAI Gemini `DeepSeek` `Qwen` FIM Gemini \n\n****\n\n1. ** Prompt / Instruction **\n ProxyAI FIM `Prompt``Instruction` `Gemini/OpenAI` \n\n2. **CustomFIM **\n FIM 使 XML Gemini XML \n ```text\n You are an expert programmer. Please complete the missing code between &lt;prefix&gt; and &lt;suffix&gt;. \n Output ONLY the missing code, without any markdown formatting, explanations, or repeating the prefix/suffix.\n \n &lt;prefix&gt;\n {prefix}\n &lt;/prefix&gt;\n &lt;suffix&gt;\n {suffix}\n &lt;/suffix&gt;\n ```\n *( `{prefix}` `{suffix}` ProxyAI )*\n\n3. ** FIM**\n FIM Gemini ProxyAI ** FIM ** None/Default退 Gemini &quot;,&quot;referencedFilePaths&quot;:null,&quot;conversationsHistoryIds&quot;:null,&quot;imageFilePath&quot;:null,&quot;
</component>
</application>