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
|
from gi.repository import GtkSource
|
||||||
|
|
||||||
# Application imports
|
# Application imports
|
||||||
|
from ..command_helpers import update_info_bar_if_focused
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -16,4 +17,4 @@ def execute(
|
|||||||
):
|
):
|
||||||
logger.debug("Command: Close File")
|
logger.debug("Command: Close File")
|
||||||
view.command.remove_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
|
from gi.repository import Gio
|
||||||
|
|
||||||
# Application imports
|
# Application imports
|
||||||
|
from ..command_helpers import update_info_bar_if_focused
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -30,6 +31,4 @@ def execute(
|
|||||||
(view, gfile, file)
|
(view, gfile, file)
|
||||||
)
|
)
|
||||||
|
|
||||||
has_focus = view.command.exec("has_focus")
|
update_info_bar_if_focused(view.command, view)
|
||||||
if has_focus:
|
|
||||||
view.command.exec("update_info_bar")
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ from gi.repository import Gio
|
|||||||
|
|
||||||
# Application imports
|
# Application imports
|
||||||
from ..source_file import SourceFile
|
from ..source_file import SourceFile
|
||||||
|
from ..command_helpers import set_language_and_style
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -24,9 +25,4 @@ def execute(
|
|||||||
|
|
||||||
file.load_path(gfile)
|
file.load_path(gfile)
|
||||||
|
|
||||||
language = view.language_manager \
|
set_language_and_style(view, file)
|
||||||
.guess_language(file.fname, None)
|
|
||||||
file.ftype = language
|
|
||||||
|
|
||||||
file.buffer.set_language(language)
|
|
||||||
file.buffer.set_style_scheme(view.syntax_theme)
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ gi.require_version('GtkSource', '4')
|
|||||||
from gi.repository import GtkSource
|
from gi.repository import GtkSource
|
||||||
|
|
||||||
# Application imports
|
# 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")
|
logger.debug("Command: New File")
|
||||||
|
|
||||||
file = view.command.new_file(view)
|
file = view.command.new_file(view)
|
||||||
language = view.language_manager \
|
set_language_and_style(view, file)
|
||||||
.guess_language("file.txt", None)
|
|
||||||
|
|
||||||
file.buffer.set_language(language)
|
|
||||||
file.buffer.set_style_scheme(view.syntax_theme)
|
|
||||||
|
|
||||||
view.set_buffer(file.buffer)
|
view.set_buffer(file.buffer)
|
||||||
|
|
||||||
has_focus = view.command.exec("has_focus")
|
update_info_bar_if_focused(view.command, view)
|
||||||
if not has_focus: return file
|
|
||||||
|
|
||||||
view.command.exec("update_info_bar")
|
|
||||||
return file
|
return file
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ gi.require_version('GtkSource', '4')
|
|||||||
from gi.repository import GtkSource
|
from gi.repository import GtkSource
|
||||||
|
|
||||||
# Application imports
|
# Application imports
|
||||||
|
from ..command_helpers import update_info_bar_if_focused
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -23,7 +24,7 @@ def execute(
|
|||||||
gfile = gfiles.pop()
|
gfile = gfiles.pop()
|
||||||
view.command.exec_with_args("load_file", (view, gfile, file))
|
view.command.exec_with_args("load_file", (view, gfile, file))
|
||||||
view.set_buffer(file.buffer)
|
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):
|
for i, gfile in enumerate(gfiles):
|
||||||
view.command.exec_with_args("load_file", (view, gfile))
|
view.command.exec_with_args("load_file", (view, gfile))
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ gi.require_version('GtkSource', '4')
|
|||||||
from gi.repository import GtkSource
|
from gi.repository import GtkSource
|
||||||
|
|
||||||
# Application imports
|
# Application imports
|
||||||
|
from ..command_helpers import set_language_and_style
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -20,10 +21,7 @@ def execute(
|
|||||||
|
|
||||||
if file.ftype == "buffer":
|
if file.ftype == "buffer":
|
||||||
file.save_as()
|
file.save_as()
|
||||||
language = view.language_manager \
|
set_language_and_style(view, file)
|
||||||
.guess_language(file.fname, None)
|
|
||||||
file.ftype = language
|
|
||||||
file.buffer.set_language(language)
|
|
||||||
return
|
return
|
||||||
|
|
||||||
file.save()
|
file.save()
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ gi.require_version('GtkSource', '4')
|
|||||||
from gi.repository import GtkSource
|
from gi.repository import GtkSource
|
||||||
|
|
||||||
# Application imports
|
# Application imports
|
||||||
|
from ..command_helpers import set_language_and_style, update_info_bar_if_focused
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -20,9 +21,6 @@ def execute(
|
|||||||
|
|
||||||
file.save_as()
|
file.save_as()
|
||||||
|
|
||||||
language = view.language_manager \
|
set_language_and_style(view, file)
|
||||||
.guess_language(file.fname, None)
|
|
||||||
file.ftype = language
|
|
||||||
file.buffer.set_language(language)
|
|
||||||
|
|
||||||
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
|
# Application imports
|
||||||
from ..source_file import SourceFile
|
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)
|
view.set_buffer(file.buffer)
|
||||||
|
|
||||||
has_focus = view.command.exec("has_focus")
|
update_info_bar_if_focused(view.command, view)
|
||||||
if has_focus:
|
|
||||||
view.command.exec("update_info_bar")
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user