2024.04.15
こんにちは、クラウドソリューション部の中村です。
みなさんは「Cursor」というエディタをご存じですか?
Cursor (カーソル) は Visual Studio Code ( VS Code ) をベースに開発された、“ The AI-first Code Editor ” を標榜する AI 機能搭載のエディタです。
Cursor では GPT の AI と Visual Studio Code を融合させていて、 Cursor は AI が作成したコードを元に手直ししていくという AI 駆動開発( AI-Driven Development )という開発手法を実現することができます。
Cursor は本格的に使用するとなると有料版の Pro を使う必要がありますが、AIの使用回数が制限されている無料版もあるのでまずはそちらを試してみてください。
Cursor に関する解説記事は結構上がっているのですが、 Salesforce の開発はできるかどうかということが、この記事を書いている時点で見つからなかったので試してみました。
なお、 Cursor は新しいエディタということで頻繁にバージョンが上がっています。
今回はバージョン 0.31.3 で試していますが、新しいバージョンでは見た目や動作が変わっている可能性があります。

前提として 既に VS Code で Saelsforce 開発ができる環境の Windows PC に Cursor をインストールしています。
VS Code で Salesforce 開発環境の構築についてはこちらの公式ドキュメントを参照してみてください。
試した結果としては問題なくインストールできました。
やってみたこととしては、次の通りです。
☝️この通り、VS Code に Salesforce開発環境を作成する場合とほとんど変わりませんでした。
ちなみにVS Codeでは縦に並んで表示されるメニューアイコンは、Cursorでは画面上部に横に並んで表示されています。(赤枠部分)

この後は通常の VS Codeで行う開発手順と同じで、
を行います。操作も変わらないのでここでは省略します。
ここまで完了後の画面が次の通りです。

VS Codeがベースなので、見た目はほとんど同じです。
それではCursorのAI機能を試してみます。
まず、空のApexクラス SampleClass.cls を作成してそこにコードを作って貰います。

ショートカットキー”Ctrl+K”を押すと入力ダイアログが表示されます。

ためしに、「取引先のID、取引先名、電話、種別を取得する」と入力してEnterを押します。

すると、自動でコードが作成されます!

これは現在のコードとの差分が表示されています。緑が追加行で削除行は赤で表示されます。
これでよければ “Ctrl+Shift+Y” で確定します。(キャンセルは “Ctrl+N”)
するとコードが反映されます。

このように、SOQLということを言わずともSOQLでレコードを取得するメソッドを作成することができました。
また、メソッド内の処理なども追加したい位置で”Ctrl+K”でコードを挿入することができます。
たとえばカンマ区切りの文字列をList<String>に格納したい場合、
次のように「baseをカンマ区切りで分割してリストに格納」と入力してみると

splitする処理が生成されました。
ちなみにインデントはうまく反映できないみたいで、自分で合わせる必要がありました。
先ほどの Ctrl+K の機能の説明をするために省略していましたが、実は Ctrl+K で指示を入れずとも既に予測でコードの候補が表示されます。これは Copilot++ 機能で最近のバージョンで実装されました。
例えば、次のような getAccountDetails() メソッドを、

そのまま return で返さず、一旦 List 型に格納するようコードを書き換えようとすると、
次のような予測が表示されます。

List<Account> accountList を宣言 → 結果を格納 → accountList を戻り値としています。
ここで “ Tab ”を押すと、

この通り予測されたコードに書き換わりました!
次に、引数に Name のフィルタ条件を入れたいと思って、 getAccountDetails に引数 name を追加してみるとまた予測が出ています。

“Tab”を押してみると、SOQLにWHERE句が追加されます!

このように、次にやりたいことを AI が予測して候補を表示する機能が Copilot++ です。
ちなみに逆にこの予測が邪魔になる場合もあるので、その場合は右下のメニューから無効にすることもできます。
ショートカットキー“ Ctrl+L ”を押すと、チャット画面が開いて、 Chat GPT のように質問をすることができます。

ここに質問して得られたコードを反映することができます。
試しに「取引先のレコードを取得し、名前のアルファベット毎に Map に格納したい」と質問してみました。すると次のようなサンプルコード付きの回答が得られました。

ここで、サンプルコード右上の” Apply ”をクリックすると、コードが反映されます。

そして” Ctrl+Sfift+Y ”を押すと確定されます。

ChatGPT などでコードを作成して実際のエディタにコピーするような作業を、 Cursor だけで行うことができます。
Cursor のAI機能を使って LWC コンポーネントが作れるのか実験してみました。
取引先レコードを一覧表示するサンプルを作成してみます。
まず、空のコンポーネント” accountViewer ”を作りました。
まず、 Ctrl+L のチャットで「取引先を一覧表示する LWC コンポーネントを作成」と指示してみます。


作成されたサンプルを全部反映させてみます。
Step1 の Apex コントローラーはまだ作成していませんので、まず AccountController.cls を作成しました。

AccountController.cls を表示した状態で、”▶”アイコンをクリックしてみます。
すると「このファイルでいいですか?」のようなダイアログが出たので” Continue ”をクリックします。

するとコードが反映されます。

“ accountViewer.js ”と” accountViewer.html ”はファイルは作成済みなので、
” Apply ”を押すだけで対象のファイルにそれぞれ反映されます。

LWC コンポーネントを使用可能にするには、「 accountViewer.js-meta.xml 」を書き換えないといけません。「コンポーネントが Lightning アプリケーションで使用できない」と文句を言うと、下記のように書き換えるよう言われたので反映させました。

しかし、このままでもまだ使用できません。
さらに質問します。「まだ表示されません。アプリケーションページで使用したい」と聞きました。

アプリケーションページ以外でも使用できるサンプルが生成されましたが、とりあえずこのコードを反映して、デプロイしました。
このLWCコンポーネントを画面で表示すると、このようになります。

見た目は残念ですが、ちゃんと取引先の一覧が表示されました。
次の質問で修正してみます。
「取引先の名前以外に、電話番号とレコードのIDを表示したい。
レコードは最大100件、テーブル形式で表示させたい。」
と聞いてみます。


このようなコードを提案されたので反映させてデプロイしてみます。

すると、見た目はいい感じに表示されました!
ここまでコードを一切書かずに作成できるのはすごいですね!
しかし、 Apex コントローラーの SOQL が修正されていないので電話番号は取得できていませんし、レコードも SOQL で” LIMIT 10 ”と指定されたままなのでレコードは10件までしか表示できていないなど、まだ修正が必要です。
Cursor でも Salesforce でもここまで書かずにできるのはすごいと思いました。
ただ LWC コンポーネント作成例の通り、自分がやりたいものが100%出てくるというわけではないため、結果が正しいか間違っているかを判断できる知識や修正点を特定できる知識は必要です。
Cursor のページには「 Build software faster in an editor designed for pair-programming with AI ( AI とのペアプログラミングのために設計されたエディタで、ソフトウェアをより速く構築する)」と書かれており、 AI に丸投げするものではなく AI と協力することで開発の生産性を向上させることを目的としています。そのようにAIを相棒としてうまく付き合うことができれば Cursor は非常に便利なエディタだと思います。
2026.01.26
10年使った炊飯器が大きな故障はないものの、水漏れや炊き上がりの変化などから寿命を意識し、買い替えを検討。ネット検索では情報過多に戸惑い、家電量販店で最新事情を確認する流れを選びました。メーカーは保温性能と使い慣れた考え方を重視し、象印マホービンを継続候補に。価格帯や世代差、型落ち上位モデルの魅力を整理し、価格推移を見ながら最適な購入タイミングを探っています。
2026.01.23
ダッシュボードの目標管理を、もっと効率的に行いたい方におすすめの記事です。Salesforceの「動的ゲージグラフ」は、ユーザーやレコードの項目を目標値として参照できるため、複数のダッシュボードで同じ目標を使っている場合でも、元データを一か所更新するだけで反映される点が特長です。具体的な仕組みから具体的な作成手順、活用時のポイントまでを分かりやすく解説しています。KPI管理や目標達成率の可視化に役立つ内容となっております。
2026.01.19
疲れたときは「寝る」だけで十分だと思っていませんか?本記事では、科学的な視点から休養を7つのタイプに分類し、運動や人との交流、環境の変化など、行動することで回復につながる方法を紹介しています。自分に合った休養の取り方を知り、日々の疲労と上手に付き合うためのヒントをお届けします。
2026.01.14
2025年10月に開催されたさがねんりんピック2025 ラージボール卓球交流大会に混合ダブルスA級で参加した体験を振り返ります。予選リーグを2位で通過し、決勝トーナメントでは準決勝まで進出。苦手とするカットマンペアとの対戦を通じて、戦術理解や練習の重要性を実感しました。結果だけでなく、試合を通して感じた反省や今後の反省、健康と向き合いながら競技を続けていく思いについても触れています。