この記事はDavid MillingtonによるNew Productivity Tooling in RAD Studio 10.3.1: Bookmarksの抄訳です。

RAD Studio 10.3.1では、ナビゲーションを向上させる2つの新しく便利な生産性向上ツール「コードの検索」と「コード内の移動」がIDEに追加されました。これらは、DelphiやC++Builderの数千人の開発者にとても人気が高かったサードパーティ製のツールでした。すべての顧客に提供するために、これらの便利な機能をIDE自体に統合できたことをうれしく思います。

これらの機能はGetItを通じて提供されます。「ツール」メニューから「GetIt パッケージマネージャ」を選び、Getit パッケージマネージャが表示されたら左側のIDE Pluginsセクションをクリックしてください。または、検索ボックスから探してインストールすることもできます。IDEに追加可能な機能はBookmarsとNavigatorの2つがありますが、この記事ではBookmarksについて説明します。

Bookmarks

コーディングのときに、非常によく行う作業の1つは、コードを比較したり、複数の場所にコードを書いたりすることです。長い間、IDEではこれをブックマーク機能(しおり)を介して行うことができました。この機能では0から9までの番号でそれぞれの場所をマークでき、各行の左マージン(ブレークポイントなどが表示される領域)には小さな黄色いマーカー(本の形をしたアイコン)が表示されます。マーカーは Ctrl + Shift + [number] で設定できます(例:Ctrl + Shift + 1)。その後、同じユニット内の他の場所からマーカーに戻る場合は、Ctrl + [number]を押します。例:Ctrl + 1

注意:キーボードショートカットのWindows設定によっては0が利用できない場合があります、またWordstarショートカットを用いることもできます。

しかしこの機能には改善の余地がいくつもありました。ブックマークを多用しようとすると、すでに設定済みのブックマークであることを忘れて上書きしてしまうことがあります。

この原因の一つはブックマークのリストがなかったことであり、ブックマークがどこにあるのか、そしてどれが設定されているのかを知ることが容易ではなく、また、キーボードでアクセスできるのは9〜10か所だけでした。
RAD Studio 10.3.1の新しいブックマークはこれらを解決し、ユニットを移動するのに役立つ便利な機能をいくつか追加しています。

10.3.1でのBookmarks

Bookmarks を新たにインストールすると、設定済みの古いブックマークはすべて残っていますが、赤いブックマークリボンアイコンで表示されていることに気づきます。古いショートカット(追加はCtrl + Shift + n、ブックマークへのジャンプはCtrl + n)は今までどおりに機能しますが、重要な新しいショートカット Ctrl + B が追加されています。Ctrl + Bを押すと、新しいブックマークが追加されます。これは利用可能なもっとも小さいショートカット番号へのブックマーク割り当てを行います。(例えばキーボードレイアウトに従い、1-9 の順に割り当てが行われ、10番目は 0 キーに割り当てられます。)

ブックマークは1つのショートカットだけで追加できるようになり、すでに設定済みの箇所が上書きされることはありません。
ショートカットが設定済みの行にカーソルがある場合は、同じショートカット(Ctrl+B)を押すと削除されます。

ブックマークには、ショートカットの追加や削除を行ったことをビジュアルに確認できる小さなアニメーションがあります。

これは設定で無効化できます(詳細は後で設定します)が、アニメーションは追加や削除の状況を視覚的に表示できる便利な機能です。
https://community.idera.com/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-03-37/bookmarks-animation.gif

ブックマークは折り畳まれたコードでも表示されます。
https://community.idera.com/resized-image/__size/640x480/__key/communityserver-blogs-components-weblogfiles/00-00-00-03-37/bookmarks-in-folded-code.PNG

ここでは、複数のブックマークがあることを示すために “…” というブックマークアイコンが表示されています。折り畳まれたコード部分では、このコンストラクタにある3つすべてを示すように拡張されています。

上書きの防止

古いブックマークの実装では、Ctrl + Shift + [番号]を押すだけでブックマークを設定できました。しかしその番号がすでに割り当て済みかどうかはわかりません。このため、設定済みのブックマークを誤って上書きすることがありました。新しい Bookmarks では、マーカーの作成に単一のホットキーを使用し、番号の割り当てを自動的に行うことでこの問題を解決します。ただし同じショートカットで特定のブックマークを設定することもできます。つまり、ブックマークの上書きも可能です。

設定済みのブックマークに上書きしようとした場合は、ブックマークから警告が出されます。例えばブックマーク5が設定済みのときにCtrl + Shift + 5を押すと、先ほど紹介した新規ブックマークの赤いアニメーションは表示されませんが、その代わりに、既存のブックマーク5がある場所が紺色のアニメーションで明示されます。もし、それが画面外にある場合は、エディタの上部または下部に明示されます。このダークブルーのアニメーションは、「そのブックマーク番号はすでに設定済みであり。それがこの場所にあります」と示しています。

ブックマークを本当に上書きや変更したい場合は、ショートカット(Ctrl + Shift + 5など)を短く2回押します。1回目は青色のアニメーションが表示されますが、2回目の操作で新しいブックマークとして赤色のアニメーションが表示されます。この間隔の初期値は0.75秒ですが、ブックマークのすべての項目と同様に変更可能です。

キャレットのブックマーク

通常のブックマークは便利です - あとで戻りたい場所にマーカーを設定すれば、その場所にいつでも戻れます。しかし、あまり使われない種類の、しかし便利なブックマーク機能がもう1つあります。それはキャレットのブックマークです。(※ヘルプではスタックブックマークと紹介されています)

通常のブックマークはその行を記憶します(ただし、カーソル位置を記憶して元に戻すこともできます - 設定を確認してください)。しかしキャレットブックマークは異なります。ファイル、プロジェクト、またはIDEを閉じると削除される、一時的なブックマークです。キャレットはスタックに積まれます。つまり、移動のためのショートカットは常に最後にスタックされた場所に戻ります。またスタックなので戻ると削除されます。

これは、コード内を移動するときにパンくずリストを作成し、おそらく何かを検索してから、自分のパンくずをたどって戻るのに役立ちます。キャレットのブックマークを設定するにはCtrl + Shift + Bを押し、その場所に戻るにはEscapeを押します。前に戻ってキャレットをドロップするには、Shift + Escapeを押します。
https://community.idera.com/resized-image/__size/640x480/__key/communityserver-blogs-components-weblogfiles/00-00-00-03-37/bookmarks-_2D00_-caret.PNG
ここでは、キャレットのブックマークが配置されているカーソル位置(^記号)と、キャレットを指している左マージン内の別の記号の両方でキャレットのブックマークが示されています。

さらに、この機能に関連する優れた機能の1つは、2つの場所を手間なく移動できることです。まずキャレットを設定したら、別の場所に移動します。Shift + Escapeを押すと、最初の場所に戻ります。Shift + Escapeをもう一度押すと、2番目に戻ります。Shift + Escapeキーを押しながらもう一度エスケープすると、最初の場所に戻ります。これは、2つの場所をすばやく切り替えるのにとても便利です。2つの場所は別々のファイルにあってもかまいません。

ドッキングウィンドウ

ブックマークは、設定したすべてのブックマークを一覧表示できるドッキング可能なウィンドウを提供しています。このウィンドウには、現在のファイル内のすべてのブックマークが含まれます(キーボードショートカットCtrl + nでアクセスでき、その隣にある数字nで示されます)。また、開いているすべてのファイル(すでにマークを付けた別のファイルで場所を見つけたい場合)のすべてのブックマークと、すべてのキャレットのブックマークも含みます。

このウィンドウを開くには、[表示]> [ツールウィンドウ]> [Bookmarks by Parnassus]をクリックします。それをドラッグしてIDEのどこかにドッキングし、そのレイアウトの状態を保存するのであれば、IDEのタイトルバーにある月のアイコンをクリックして「保存」を選ぶことをお忘れなく。この操作は、コーディングとデバッグの切り替え、またはIDEの再起動後などで、次にIDEがウィンドウを再表示するときにBookmarksのウィンドウを再度表示することを意味します。
リストにはブックマークの場所が表示されるだけではありません。Delphiの場合は、代わりに重要なコンテキスト情報を示しています。上記のスクリーンショットでは、ブックマークが入っているメソッドを認識していることがわかります(これが型(例:クラス)宣言のような別の便利なコード位置である場合はそれを認識します)。そして、インターフェースまたは実装のセクションにあるかどうかと、コード行で構文の強調表示されたプレビューが表示されます。
https://community.idera.com/resized-image/__size/640x480/__key/communityserver-blogs-components-weblogfiles/00-00-00-03-37/bookmarks-_2D00_-docked-window-_2D00_-dark.PNG
これにより、リストをブラウズして、ブックマークがどこにあるのかを理解することができます。行番号だけではなく、対応するコードのセクションが対象です。

他の機能と同様に、ここに示されているものはカスタマイズできます。

設定

Bookmarksの設定は、ドッキングウィンドウの右下にある歯車のアイコンをクリックするか、メニューの[ツール]> [オプション]を選びます。この機能はサードパーティ製品から統合されたばかりのため、現在はサードパーティセクションにあります。設定できる項目は、アニメーション(そしてサイズや可視性)のカスタマイズ、ブックマークの移動/上書き、ショートカットではなく、左マージンをクリックしてのブックマークの追加や削除、どの要素が表示されるかなどの、ドッキングされたウィンドウの外観(構文の強調表示が行われたコードスニペットなど)、ショートカットキーの設定など、幅広いです。

注意

矢印キーには不具合があるので Windowsコントロールとして、ショートカットキーコントロールを使用する際に注意点があります。次のブックマークへの移動のショートカットで “Ctrl + Shift + Num 6” のように表示されている場合、それは実際には右矢印キーを意味します。

ブックマークには、エディタの左マージンをクリックしてブックマークを追加または削除する機能もあります。ただしGetItの最初のリリースでは、この操作のために十分な幅の左マージンを設定していませんでした。左マージンの上にマウスを置いても半透明のブックマーク追加アイコンが表示されない場合は、レジストリ設定で調整できます。設定は次のとおりです。

HKEY_CURRENT_USER\Software\Embarcadero\BDS\20.0\Editor\Options

“Gutter Width”設定を20(デフォルト)から36に変更する必要があります。数値は10進数です。

キーボードショートカット

下記のショートカットがとても便利です。

  • ブックマークの追加:Ctrl + B
  • ブックマークの削除:Ctrl + B(カーソルがある行にカーソルがあるとき)
  • ブックマークへの移動:Ctrl + [number]、例えば Ctrl + 5
  • 次のブックマークまたは前のブックマークへの移動:(Ctrl + Alt + 右矢印またはCtrl + Alt + 左矢印)。これは行番号順に循環します。つまり、 ‘next’は最も近いブックマークからページのさらに下のブックマークまでです。
  • 新しいキャレット(一時)ブックマークの追加:Ctrl + Shift + B
  • 直前のキャレットブックマークに戻る(削除されます):Escape
  • 現在の場所にキャレットブックマークを設定して、直前のキャレットブックマークに戻る:Shift + Escape

まとめ

ブックマークはIDEに追加された素晴らしい機能で、コード内を素早く移動するのに役立ちます。キャレットをドロップしてShift + Escapeを押すことで2つの場所を切り替えることができるなどの機能は「使い始めたら、これなしではいられない」機能の1つです。コンテキスト付きブックマークのリストは、開いているすべてのファイルを含め、あなたにとって重要なすべての場所を確認するときにも非常に役立ちます。そして、Ctrl + Bでブックマークを削除し、Ctrl + [number]でナビゲートするという中心的な機能は、既に追加したものを気にせずに簡単にマーカーを追加するのに役立ちます。多種多様な設定と調整により、ワークフローに合わせて完璧にカスタマイズできます。

インストールは、Toolsメニューを開いてGetIt パッケージマネージャーを選択し、それがロードされたら左側のIDE PluginsセクションをクリックするとBookmarksを含めたプラグイン機能が一覧表示されます。または、検索ボックスを使って検索することもできます。それを選択し、「インストール」をクリックしてください。

これがIDEへのすばらしい追加機能となることを願っています! 10.3.1 の2つめの生産性アドオン機能であるNavigatorもチェックするのをお忘れなく。
https://community.idera.com/resized-image/__size/640x480/__key/communityserver-blogs-components-weblogfiles/00-00-00-03-37/pastedimage1550504522499v1.png
https://community.idera.com/resized-image/__size/640x480/__key/communityserver-blogs-components-weblogfiles/00-00-00-03-37/pastedimage1550504527972v2.png