From 73a6d158324e19a2ccb22ef60a19b8213f358465 Mon Sep 17 00:00:00 2001 From: Hans Unzner <hansunzner@gmail.com> Date: Sat, 24 Aug 2024 09:55:02 +0200 Subject: [PATCH] Use now GtkSourceview 4 Removed ngc.lang as it is in the old specification format version 1.0. Use now gcode.lang - this one is also suitable for gedit like mentioned in ngc.lang. --- debian/control.main-pkg.in | 2 +- debian/linuxcnc.install.in | 2 +- docs/src/gui/gladevcp.adoc | 2 +- lib/python/gladevcp/gtksourceview.xml | 2 +- lib/python/gladevcp/hal_sourceview.py | 8 +- .../gtksourceview-2.0/language-specs/ngc.lang | 110 ------------------ .../language-specs/gcode.lang | 0 src/Makefile | 4 +- src/emc/usr_intf/gmoccapy/gmoccapy.py | 2 +- 9 files changed, 11 insertions(+), 121 deletions(-) delete mode 100644 share/gtksourceview-2.0/language-specs/ngc.lang rename share/{gtksourceview-2.0 => gtksourceview-4}/language-specs/gcode.lang (100%) diff --git a/debian/control.main-pkg.in b/debian/control.main-pkg.in index 6eecc4db12a..18454accc52 100644 --- a/debian/control.main-pkg.in +++ b/debian/control.main-pkg.in @@ -22,7 +22,7 @@ Depends: python3-opengl, python3-configobj, python3-xlib, - libgtksourceview-3.0-dev, + libgtksourceview-4-dev, tcl@TCLTK_VERSION@, tk@TCLTK_VERSION@, bwidget (>= 1.7), diff --git a/debian/linuxcnc.install.in b/debian/linuxcnc.install.in index a6b50d6a1e6..04a3d15228b 100644 --- a/debian/linuxcnc.install.in +++ b/debian/linuxcnc.install.in @@ -119,7 +119,7 @@ usr/share/axis usr/share/glade usr/share/gmoccapy usr/share/gscreen -usr/share/gtksourceview-2.0 +usr/share/gtksourceview-4 usr/share/applications/linuxcnc.desktop usr/share/applications/linuxcnc-latency.desktop diff --git a/docs/src/gui/gladevcp.adoc b/docs/src/gui/gladevcp.adoc index 9f9c6388b9b..36c927f2d04 100644 --- a/docs/src/gui/gladevcp.adoc +++ b/docs/src/gui/gladevcp.adoc @@ -1919,7 +1919,7 @@ image::images/offsetpage.png[align="center"] === HAL_sourceview widget This is for displaying and simple editing of G-code. -It looks for `.ngc` highlighting specs in `~/share/gtksourceview-2.0/language-specs/`. +It looks for `.ngc` highlighting specs in `~/share/gtksourceview-4/language-specs/`. The current running line will be highlighted. With external Python glue code it can: diff --git a/lib/python/gladevcp/gtksourceview.xml b/lib/python/gladevcp/gtksourceview.xml index 67afa186a4b..e97e798d20f 100644 --- a/lib/python/gladevcp/gtksourceview.xml +++ b/lib/python/gladevcp/gtksourceview.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> -<glade-catalog name="gtksourceview" library="gtksourceview-2.0" depends="gtk+"> +<glade-catalog name="gtksourceview" library="gtksourceview-4" depends="gtk+"> <glade-widget-classes> <glade-widget-class name="GtkSourceView" title="GtkSourceView" generic-name="gtksourceview"> <properties> diff --git a/lib/python/gladevcp/hal_sourceview.py b/lib/python/gladevcp/hal_sourceview.py index 7c29f4faa99..b1db41ee1c0 100644 --- a/lib/python/gladevcp/hal_sourceview.py +++ b/lib/python/gladevcp/hal_sourceview.py @@ -25,7 +25,7 @@ import gi gi.require_version("Gtk","3.0") gi.require_version("Gdk","3.0") -gi.require_version("GtkSource","3.0") +gi.require_version("GtkSource","4") from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GObject @@ -62,10 +62,10 @@ def __init__(self, *a, **kw): self.lm = GtkSource.LanguageManager() self.sm = GtkSource.StyleSchemeManager() if 'EMC2_HOME' in os.environ: - path = os.path.join(os.environ['EMC2_HOME'], 'share/gtksourceview-2.0/language-specs/') + path = os.path.join(os.environ['EMC2_HOME'], 'share/gtksourceview-4/language-specs/') self.lm.set_search_path(self.lm.get_search_path() + [path]) - self.buf.set_language(self.lm.get_language('.ngc')) + self.buf.set_language(self.lm.get_language('gcode')) self.set_show_line_numbers(True) self.set_show_line_marks(True) self.set_highlight_current_line(True) @@ -116,7 +116,7 @@ def set_language(self, lang, path = None): # lang = the lang file to set if path == None: if 'EMC2_HOME' in os.environ: - path = os.path.join(os.environ['EMC2_HOME'], 'share/gtksourceview-2.0/language-specs/') + path = os.path.join(os.environ['EMC2_HOME'], 'share/gtksourceview-4/language-specs/') if path: self.lm.set_search_path(path) self.buf.set_language(self.lm.get_language(lang)) diff --git a/share/gtksourceview-2.0/language-specs/ngc.lang b/share/gtksourceview-2.0/language-specs/ngc.lang deleted file mode 100644 index 39943e9c2f6..00000000000 --- a/share/gtksourceview-2.0/language-specs/ngc.lang +++ /dev/null @@ -1,110 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE language SYSTEM "language.dtd"> -<!-- - ngc.lang is a Highlight-mode file for gedit, - written by Jan Van Gilsen <janvangilsen(at)gmail(dot)com> - Installation instructions can be found at: - http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Highlighting_In_Gedit - - Version : 0.3 - Last Edit : 10Th Nov 2007, by Jan Van Gilsen - Comment : added probing and rigid tapping G-codes (new in 2.2) ---> -<language name=".ngc" version="1.0" _section="Others" mimetypes="text/ngc"> - <default-regex-options case-sensitive= "false"></default-regex-options> - - <block-comment _name = "Block Comment" style= "Comment"> - <start-regex>\(</start-regex> - <end-regex>\)</end-regex> - </block-comment> - - <pattern-item _name = "Line Comment" style = "Comment"> - <regex>;.*</regex> - </pattern-item> - - <pattern-item _name = "Variable" style = "Variable"> - <regex>(#[0-9]+)|(#<[a-zA-Z0-9_]+>)</regex> - </pattern-item> - <keyword-list name = "Math Functions" style = "Function" case-sensitive="FALSE"> - <keyword>sin</keyword> - <keyword>cos</keyword> - <keyword>tan</keyword> - <keyword>asin</keyword> - <keyword>acos</keyword> - <keyword>atan</keyword> - <keyword>exp</keyword> - <keyword>ln</keyword> - <keyword>sqrt</keyword> - <keyword>fup</keyword> - <keyword>fix</keyword> - <keyword>abs</keyword> - <keyword>or|xor|and</keyword> - <keyword>mod</keyword> - <keyword>gt|lt|ge|le|eq|ne</keyword> - </keyword-list> - <pattern-item _name = "Operators" style = "Function"> - <regex>(([-/|\=\+\*])|(\])|(\[))</regex> - </pattern-item> - <pattern-item _name = "Line Number" style = "Comment"> - <regex>^[n|N]([ |\t]*[0-9]){1,5}</regex> - </pattern-item> - - <keyword-list _name = "G-Codes" style = "Keywords" case-sensitive="FALSE" - match-empty-string-at-beginning = "FALSE" - match-empty-string-at-end = "FALSE" - beginning-regex = "[g|G]([ \t]*[0])*[ \t]*"> - <keyword>[0-5]</keyword> - <keyword>1[ \t]*[07-9]</keyword> - <keyword>2[ \t]*[018]</keyword> - <keyword>3[ \t]*[03]</keyword> - <keyword>3[ \t]*3[ \t]*.[ \t]*1</keyword> - <keyword>3[ \t]*8[ \t]*.[ \t]*[2-5]</keyword> - <keyword>4[ \t]*[1-3][ \t]*.[ \t]*1</keyword> - <keyword>4[ \t]*[0-39]</keyword> - <keyword>5[ \t]*[3-9]</keyword> - <keyword>6[ \t]*[14]</keyword> - <keyword>6[ \t]*.[ \t]*1</keyword> - <keyword>7[ \t]*6</keyword> - <keyword>8[ \t]*[0-9]</keyword> - <keyword>9[ \t]*[0-489]</keyword> - <keyword>9[ \t]*2[ \t]*.[ \t]*[1-3]</keyword> - </keyword-list> - <keyword-list _name = "M-Codes" style = "Keywords" case-sensitive="FALSE" - match-empty-string-at-beginning = "FALSE" - match-empty-string-at-end = "FALSE" - beginning-regex = "[m|M]([ \t]*[0])*[ \t]*"> - <keyword>[0-9]</keyword> - <keyword>5[ \t]*[0-3]</keyword> - <keyword>3[ \t]*0</keyword> - <keyword>6[ \t]*0</keyword> - <keyword>1[ \t]*[0-9][ \t]*[1-9]</keyword> - <keyword>1[ \t]*[1-9][ \t]*0</keyword> - </keyword-list> - <pattern-item _name = "F,S-Codes" style = "Keywords"> - <regex>[f|F|s|S]([ \t]*[0-9])*[ \t]*[.]?([ \t]*[0-9])*</regex> - </pattern-item> - <pattern-item _name = "T,H-Codes" style = "Keywords"> - <regex>[t|T|h|H]([ \t]*[0-9])*</regex> - </pattern-item> - <pattern-item _name = "Coordinates" style = "Decimal"> - <regex>[x|X|y|Y|z|Z|a|A|b|B|c|C|u|U|v|V|w|W|i|I|j|J|k|K|p|P|r|R|l|L][ \t]*[+|-]?[ \t]*([ \t]*[0-9]*)*[ \t]*[.]?([ \t]*[0-9]*)*</regex> - </pattern-item> - - <keyword-list _name = "O-Codes" style = "Preprocessor" case-sensitive="FALSE" - match-empty-string-at-beginning = "FALSE" - match-empty-string-at-end = "FALSE" - beginning-regex = "^[ \t]*[o|O]([ \t]*[0-9]|<[a-zA-Z0-9_]+>)* "> - <keyword>sub</keyword> - <keyword>endsub</keyword> - <keyword>while</keyword> - <keyword>endwhile</keyword> - <keyword>if</keyword> - <keyword>else</keyword> - <keyword>endif</keyword> - <keyword>do</keyword> - <keyword>call</keyword> - <keyword>break</keyword> - <keyword>continue</keyword> - <keyword>return</keyword> - </keyword-list> -</language> diff --git a/share/gtksourceview-2.0/language-specs/gcode.lang b/share/gtksourceview-4/language-specs/gcode.lang similarity index 100% rename from share/gtksourceview-2.0/language-specs/gcode.lang rename to share/gtksourceview-4/language-specs/gcode.lang diff --git a/src/Makefile b/src/Makefile index daeb4aa151e..5c359cb19dc 100644 --- a/src/Makefile +++ b/src/Makefile @@ -688,7 +688,7 @@ install-dirs: $(DESTDIR)$(datadir)/gmoccapy/icons \ $(DESTDIR)$(datadir)/glade/catalogs \ $(DESTDIR)$(datadir)/glade/pixmaps/hicolor/22x22/actions \ - $(DESTDIR)$(datadir)/gtksourceview-2.0/language-specs \ + $(DESTDIR)$(datadir)/gtksourceview-4/language-specs \ $(DESTDIR)$(datadir)/linuxcnc/stepconf \ $(DESTDIR)$(datadir)/linuxcnc/pncconf \ $(DESTDIR)$(datadir)/linuxcnc/pncconf/pncconf-help \ @@ -764,7 +764,7 @@ install-kernel-indep: install-dirs $(FILE) ../lib/python/gladevcp/hal_python.xml $(DESTDIR)$(datadir)/glade/catalogs/ $(FILE) ../share/glade/pixmaps/hicolor/22x22/actions/widget*.png $(DESTDIR)$(datadir)/glade/pixmaps/hicolor/22x22/actions/ - $(FILE) ../share/gtksourceview-2.0/language-specs/*.lang $(DESTDIR)$(datadir)/gtksourceview-2.0/language-specs/ + $(FILE) ../share/gtksourceview-4/language-specs/*.lang $(DESTDIR)$(datadir)/gtksourceview-4/language-specs/ $(FILE) ../src/hal/drivers/mesa-hostmot2/modbus/*.tmpl $(DESTDIR)$(prefix)/share/linuxcnc/ diff --git a/src/emc/usr_intf/gmoccapy/gmoccapy.py b/src/emc/usr_intf/gmoccapy/gmoccapy.py index 7782f54a61b..b3ed91fd6e1 100644 --- a/src/emc/usr_intf/gmoccapy/gmoccapy.py +++ b/src/emc/usr_intf/gmoccapy/gmoccapy.py @@ -426,7 +426,7 @@ def __init__(self, argv): # check the highlighting type # the following would load the python language # self.widgets.gcode_view.set_language("python") - LANGDIR = os.path.join(BASE, "share", "Gtksourceview-2.0", "language-specs") + LANGDIR = os.path.join(BASE, "share", "Gtksourceview-4", "language-specs") file_path = os.path.join(LANGDIR, "gcode.lang") if os.path.isfile(file_path): LOG.info("Gcode.lang found")