2026年6月7日日曜日

gedit source code browser plugin

Ubuntu 26.04がリリースされてしばらく経った。
リリース後の同じ経過時間の24.04よりもいい感じだ(最近では24.04もいい感じだ)。

デフォルトのテキストエディターは、gnome-text-editorであり、geditではない。
gnome-text-editorは、最初からスペルチェック機能があったりして便利だが、プラグイン機能がない。

geditは、gedit-source-code-browser-pluginをインストールすると、サイドパネル上に関数やマクロの一覧が表示され、それをクリックすると定義位置へジャンプできるようになる。
こういったプログラミングの支援機能を、geditなどのデフォルトエディタに求めるのもおかしいが、便利なのでずっと使っていた。
こういったものが使えなくなるのは残念だ。

gedit-source-code-browser-pluginは、26.04でも存在はするし、インストールもできるのだが、24.04のころから動かなくなっていた。
なんとかしようと、Geminiに相談してみた。
GTKやGnomeのバージョンがどんどん上がったため、gedit-source-code-browser-pluginがうまく動かないらしい。最新の環境向けに有志が修正したソースコードをユーザのローカル環境に配置することで解決できるらしい。
まずUbuntu24.04では、以下を実行することで、source-code-browserが動作するようになった。
# 一時的にクローン
git clone https://github.com/GeditSourceCodePlugin/gedit-source-code-browser.git /tmp/gedit-source-code-browser

# 必要なファイルとフォルダをローカルプラグインディレクトリにコピー
cp -r /tmp/gedit-source-code-browser/sourcecodebrowser ~/.local/share/gedit/plugins/
cp /tmp/gedit-source-code-browser/sourcecodebrowser.plugin ~/.local/share/gedit/plugins/

# 一時フォルダの削除
rm -rf /tmp/gedit-source-code-browser
Ubuntu26.04では、これだけではダメだった。
どうやらさらに新しくなったようだ。対応するには改造が必要だ。

以下のファイルを書き換える。
~/.local/share/gedit/plugins/sourcecodebrowser/plugin.py
このファイルの333行目付近
   330          self._sourcetree.expand_rows = self.expand_rows
   331          self._sourcetree.sort_list = self.sort_list
   332          side_panel = self.window.get_side_panel()
   333          self.side_panel_item = Tepl.Panel.add(side_panel, self._sourcetree, "SymbolBrowserPlugin", "Source Code", None)
   334          self._handlers = []
   335          hid = self._sourcetree.connect("draw", self.on_sourcetree_draw)
   336          self._handlers.append((self._sourcetree, hid))
この赤色の行を、以下の緑色のように変更する。
   330          self._sourcetree.expand_rows = self.expand_rows
   331          self._sourcetree.sort_list = self.sort_list
   332          side_panel = self.window.get_side_panel()
   333  
   334          panel_item = Tepl.PanelItem(
   335              widget=self._sourcetree,
   336              name="SymbolBrowserPlugin",
   337              title="Source Code",
   338              icon_name=""
   339          )
   340          self.side_panel_item = panel_item
   341          Tepl.Panel.add(side_panel, panel_item)
   342          self._handlers = []
   343          hid = self._sourcetree.connect("draw", self.on_sourcetree_draw)
   344          self._handlers.append((self._sourcetree, hid))
こうしたら、gedit-source-code-browser-pluginが動くようになった。

ソースコード用のテキストエディタとしては、vscodeやgeanyでもいいのだが、機能が多すぎて使いにくい。色々な補完機能が鬱陶しく感じる。
私には、gedit-source-code-browser-plugin程度で十分だ。

0 件のコメント:

コメントを投稿