Created helpers file for commands to reduce duplication
This commit is contained in:
27
src/core/widgets/code/command_helpers.py
Normal file
27
src/core/widgets/code/command_helpers.py
Normal 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
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user