🐕
CodeCompanion.nvimでworkflowを追加する方法
CodeCompanionを使用してnvimをAIエディターにしています。
workflowという機能を使えば、独自のチャットやフローを作成できます。
今回はApex言語用のチャットを用意する設定を紹介します。
たとえば、ApexのコードをAIが生成するときはAssert等の近年登場したクラスが使用されない傾向があるので、それを補正するときに使用できます。
使用例
ポイント
- prompt_library以下に追加することができる。
- keyに設定している"Develop apex"は:CodeCompanionActionsを実行したときに検索できる。
- opts.is_slash_cmdをtrueにするとchatで/を入力すると候補にでてきて呼び出すことができる。
require("codecompanion").setup({
prompt_library = {
["Develop apex"] = {
strategy = "chat",
description = "Apex開発者向けのプロンプト",
opts = {
is_slash_cmd = true,
short_name = "develop_apex",
},
prompts = {
{
role = "system",
content = [[
あなたはSalesforce Apex開発を支援するAIです。
Apexコードの最適化、バグ修正、テスト作成、ベストプラクティスの提案を行います。
コード例は簡潔に示し、必要に応じてSalesforce標準機能やApexの関数の使い分けも説明してください。
テストケースを作成する際は、System.assertEqualsやSystem.assertなどの標準アサート関数は使わず、必ず以下のAssertクラスのメソッドを使用してください。
- Assert.areEqual(expected, actual, [msg])
- Assert.areNotEqual(notExpected, actual, [msg])
- Assert.isTrue(condition, [msg])
- Assert.isFalse(condition, [msg])
- Assert.isNull(value, [msg])
- Assert.isNotNull(value, [msg])
- Assert.fail([msg])
- Assert.isInstanceOfType(instance, expectedType, [msg])
- Assert.isNotInstanceOfType(instance, notExpectedType, [msg])
]],
},
{
role = "user",
content = [[
@{full_stack_dev}
]],
},
},
},
},
})
参考
Discussion