Fedora 40 の Gedit でハイライト定義の変更が無視される件。
以下に定義を入れれば摘要されるはずなんですけど。
~/.local/share/gtksourceview-4
GtkSourceView4 に何か変更があったのか?
そう思って単純なテストコードを書いてみた。
#!/usr/bin/env python3 import sys, gi gi.require_version('Gtk', '3.0') gi.require_version('GtkSource', '4') from gi.repository import Gtk, GtkSource TEXTVIEW_CSS = b''' #MySourceView { font: 10pt Monospace; }''' PYTHON_CODE = '''#!/usr/bin/env python3 fst = 'fstring' print(f'Test {fstr} Syntax Highlighi')''' class Win(Gtk.ApplicationWindow): def __init__(self, a): Gtk.ApplicationWindow.__init__(self, application=a, title='SourceViewTest') # GtkTextView view = GtkSource.View(show_line_numbers=True, name='MySourceView') # CSS provider = Gtk.CssProvider() provider.load_from_data(TEXTVIEW_CSS) view.get_style_context().add_provider(provider, Gtk.STYLE_PROVIDER_PRIORITY_USER) # Python3 Highlighte lang_man = GtkSource.LanguageManager() lang = lang_man.guess_language(None, 'text/x-python3') view.props.buffer.set_language(lang) view.props.buffer.set_text(PYTHON_CODE) # GtkScrolledWindow sw = Gtk.ScrolledWindow(child=view) self.add(sw) self.resize(400, 100) self.show_all() app = Gtk.Application() app.connect('activate', lambda a: Win(a).present()) app.run(sys.argv)
普通に摘要されとるじゃん。
Gedit 派生の奴も試してみよう。
って Pluma は調べてみると Gedit2 派生かよ。
プラグイン作りに Python2 や PyGtk も必要だよな、ありえん。
Xed なら Gedit3 ベースだな、ツールバーを消せばなんとか。
やっぱり Gedit だけ摘要されない、マジで何でだよ。
他を試すのも面倒だし、しばらく Xed に乗り換えするかな。
と思ったけどコードスニペットと外部ツールが無いやんけ。
Atom や Sublime Text は別の手段があったけど Xed には無さそう。
単語補完というプラグインがあるけど、違うそうじゃない。
自作プラグインは Gedit 3.10 以前のを小変更で使えるかもだが。
新規タブが Ctrl+N に変更されているのはなんで?
Xed って Old Gedit のふりをした vscode になりたいの?
まあナンチャッテプログラマーにはこういうのがウケるんだろうけど。
だめだ Gedit をなんとかしなきゃ。
とにかく Gedit は他アプリとは別の場所を見ているってことだよな。
もしかしてと思って /usr/share の中を探してみる。
あった、こんな所に。
Gedit 46 は GTK3 ライブラリでなくフォークした奴を使っているのか。
libgedit-gtksourceview 300 Reference Manual: libgedit-gtksourceview 300 Reference Manual
それだから libgedit-46.so のサイズが 583MB もあるわけだ。
静的リンクにしたほうが Mac や Windows に移植しやすいよね。
もう面倒だ、直接このディレクトリに python3.lang をコピーしちゃえ!
それだとエラーで python3.lang がロードできないようです。
def.lang: Update Unicode identifier regexes (!149) ? マージリクエスト ? GNOME / gtksourceview ? GitLab
Gedit が使う GtkSourceView にはこの定義が無いってことですね。
正式な GtkSourceView-4 にはメンテで追加されているという皮肉。
原因は解ったけどコレでは対策手段が無い、お手上げです。
あと関係ないけど Nautilus のリネームで日本語が打てないね。
経験上 GNOME 45 の間はこのままかと、リネームアプリでも作るか。