Created helpers file for commands to reduce duplication

This commit is contained in:
2026-01-11 18:30:51 -06:00
parent c2060963cc
commit a57bfd94fc
9 changed files with 45 additions and 32 deletions

View File

@@ -0,0 +1,27 @@
# Python imports
# Lib imports
from gi.repository import GtkSource
# Application imports
def set_language_and_style(view, file):
language = view.language_manager.guess_language(file.fname, None)
file.ftype = language
file.buffer.set_language(language)
file.buffer.set_style_scheme(view.syntax_theme)
return language
def update_info_bar_if_focused(command_system, view: GtkSource):
has_focus = command_system.exec("has_focus")
if has_focus:
command_system.exec("update_info_bar")
def get_file_and_buffer(view: GtkSource):
file = view.command.get_file(view)
buffer = file.buffer
return file, buffer

View File

@@ -8,6 +8,7 @@ gi.require_version('GtkSource', '4')
from gi.repository import GtkSource
# Application imports
from ..command_helpers import update_info_bar_if_focused
@@ -16,4 +17,4 @@ def execute(
):
logger.debug("Command: Close File")
view.command.remove_file()
view.command.exec("update_info_bar")
update_info_bar_if_focused(view.command, view)

View File

@@ -9,6 +9,7 @@ from gi.repository import GtkSource
from gi.repository import Gio
# Application imports
from ..command_helpers import update_info_bar_if_focused
@@ -30,6 +31,4 @@ def execute(
(view, gfile, file)
)
has_focus = view.command.exec("has_focus")
if has_focus:
view.command.exec("update_info_bar")
update_info_bar_if_focused(view.command, view)

View File

@@ -10,6 +10,7 @@ from gi.repository import Gio
# Application imports
from ..source_file import SourceFile
from ..command_helpers import set_language_and_style
@@ -24,9 +25,4 @@ def execute(
file.load_path(gfile)
language = view.language_manager \
.guess_language(file.fname, None)
file.ftype = language
file.buffer.set_language(language)
file.buffer.set_style_scheme(view.syntax_theme)
set_language_and_style(view, file)

View File

@@ -9,6 +9,7 @@ gi.require_version('GtkSource', '4')
from gi.repository import GtkSource
# Application imports
from ..command_helpers import set_language_and_style, update_info_bar_if_focused
@@ -18,16 +19,9 @@ def execute(
logger.debug("Command: New File")
file = view.command.new_file(view)
language = view.language_manager \
.guess_language("file.txt", None)
file.buffer.set_language(language)
file.buffer.set_style_scheme(view.syntax_theme)
set_language_and_style(view, file)
view.set_buffer(file.buffer)
has_focus = view.command.exec("has_focus")
if not has_focus: return file
view.command.exec("update_info_bar")
update_info_bar_if_focused(view.command, view)
return file

View File

@@ -8,6 +8,7 @@ gi.require_version('GtkSource', '4')
from gi.repository import GtkSource
# Application imports
from ..command_helpers import update_info_bar_if_focused
@@ -23,7 +24,7 @@ def execute(
gfile = gfiles.pop()
view.command.exec_with_args("load_file", (view, gfile, file))
view.set_buffer(file.buffer)
view.command.exec("update_info_bar")
update_info_bar_if_focused(view.command, view)
for i, gfile in enumerate(gfiles):
view.command.exec_with_args("load_file", (view, gfile))

View File

@@ -8,6 +8,7 @@ gi.require_version('GtkSource', '4')
from gi.repository import GtkSource
# Application imports
from ..command_helpers import set_language_and_style
@@ -20,10 +21,7 @@ def execute(
if file.ftype == "buffer":
file.save_as()
language = view.language_manager \
.guess_language(file.fname, None)
file.ftype = language
file.buffer.set_language(language)
set_language_and_style(view, file)
return
file.save()

View File

@@ -8,6 +8,7 @@ gi.require_version('GtkSource', '4')
from gi.repository import GtkSource
# Application imports
from ..command_helpers import set_language_and_style, update_info_bar_if_focused
@@ -20,9 +21,6 @@ def execute(
file.save_as()
language = view.language_manager \
.guess_language(file.fname, None)
file.ftype = language
file.buffer.set_language(language)
set_language_and_style(view, file)
view.command.exec("update_info_bar")
update_info_bar_if_focused(view.command, view)

View File

@@ -10,6 +10,7 @@ from gi.repository import GtkSource
# Application imports
from ..source_file import SourceFile
from ..command_helpers import update_info_bar_if_focused
@@ -25,7 +26,5 @@ def execute(
view.set_buffer(file.buffer)
has_focus = view.command.exec("has_focus")
if has_focus:
view.command.exec("update_info_bar")
update_info_bar_if_focused(view.command, view)