diff options
96 files changed, 285 insertions, 235 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 32f82ae..0e1c91d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,10 +15,10 @@ jobs: steps: - - name: Recursive Git Clone + - name: Git Clone uses: actions/checkout@v2 with: - submodules: recursive + submodules: true - name: Update Repositories run: sudo apt-get update @@ -59,10 +59,10 @@ jobs: steps: - - name: Recursive Git Clone + - name: Git Clone uses: actions/checkout@v2 with: - submodules: recursive + submodules: true # NOTE: macOS already ships with ncurses and # XCode already comes with the autotools. @@ -99,10 +99,10 @@ jobs: steps: - - name: Recursive Git Clone + - name: Git Clone uses: actions/checkout@v2 with: - submodules: recursive + submodules: true - name: Set Up Shell run: echo C:\msys64\usr\bin\ | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 85912c5..6e131fd 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -16,10 +16,10 @@ jobs: steps: - - name: Recursive Git Clone + - name: Git Clone uses: actions/checkout@v2 with: - submodules: recursive + submodules: true - name: Update Repositories run: sudo apt-get update @@ -65,10 +65,10 @@ jobs: steps: - - name: Recursive Git Clone + - name: Git Clone uses: actions/checkout@v2 with: - submodules: recursive + submodules: true - name: Set Up Shell run: echo C:\msys64\usr\bin\ | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append @@ -147,10 +147,10 @@ jobs: steps: - - name: Recursive Git Clone + - name: Git Clone uses: actions/checkout@v2 with: - submodules: recursive + submodules: true - name: Set Up Shell run: echo C:\msys64\usr\bin\ | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append diff --git a/.gitmodules b/.gitmodules index c4102f8..ed91108 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,10 @@ [submodule "scintilla"] - path = scintilla + path = contrib/scintilla url = https://github.com/rhaberkorn/scintilla-mirror.git ignore = untracked +[submodule "scinterm"] + path = contrib/scinterm + url = https://github.com/orbitalquark/scinterm.git +[submodule "lexilla"] + path = contrib/lexilla + url = https://github.com/ScintillaOrg/lexilla.git @@ -15,8 +15,8 @@ SciTECO Build and Runtime Dependencies * Autotools and an UNIX-like environment * GNU Make - * A GCC-compatible C11 and C++11 compiler, e.g. GNU C/C++ - (v4.4 or later) or LLVM/gcc or LLVM/Clang. + * A GCC-compatible C11 and C++17 compiler, e.g. GNU C/C++ + (v5.0 or later) or LLVM/gcc or LLVM/Clang. SciTECO itself does not require C++, but Scintilla does. * Glib 2 as a cross-platform runtime library (v2.44 or later): https://developer.gnome.org/glib/ @@ -43,11 +43,13 @@ These dependencies are bundled with the SciTECO Git repository and with source tar balls, so they usually do not have to be installed by the user manually: - * Scintilla (v3.6.3 or later): + * Scintilla (v5.0.0 or later): http://www.scintilla.org/ * When choosing the Curses interface: - * Scinterm (v1.7 or later): + * Scinterm (v3.1 or later): http://foicica.com/scinterm/ + * Lexilla (v5.0.0 or later): + https://www.scintilla.org/Lexilla.html On Ubuntu, you can install all dependencies you could possibly need as follows: @@ -79,13 +81,13 @@ Just make sure you have cloned your repository as follows: $ git clone https://github.com/rhaberkorn/sciteco.git $ cd sciteco/ - $ git submodule update --init --recursive + $ git submodule update --init If you already have a Git clone of the SciTECO repository and want to update it, you should issue the following commands: $ git pull - $ git submodule update --recursive + $ git submodule update When building from Git, you must first generate the ./configure script using Autoconf/Automake: @@ -139,28 +141,22 @@ Out of Tree Builds Like any Autoconf/Automake-based project, SciTECO can generally be built out-of-tree (in a different directory than its sources). This is often useful, especially when cross-compiling. -Unfortunately, the Scintilla build-system does not support -out-of-tree builds, so even though Scintilla has been tied +Unfortunately, the Scintilla (and related libraries') build-system +does not support out-of-tree builds, so even though Scintilla has been tied into SciTECO's build system for convenience, out-of-tree builds cannot be performed directly as Scintilla would still be built in SciTECO's source directory by default. -Fortunately, SciTECO allows you to overwrite the Scintilla -source and build path via the ./configure --with-scintilla option. -This may be used to clone a copy of Scintilla into SciTECO's -build directory, initialize its Scinterm submodule and direct -SciTECO's build system to this copy. +However, you may copy Scintilla, Scinterm and Lexilla into +SciTECO's build directory. An out-of-tree build of SciTECO can thus be achieved using the following steps (supposing that the build directory will be a subdirectory of the Git repository called `build-dir`): - $ mkdir build-dir + $ mkdir -p build-dir/contrib + $ cp -r contrib/{scintilla,scinterm,lexilla} build-dir/contrib/ $ cd build-dir - $ git clone ../scintilla - $ cd scintilla - $ git submodule update --init - $ cd .. - $ ../configure --with-scintilla=scintilla + $ ../configure $ make ... diff --git a/Makefile.am b/Makefile.am index 80b0ca6..668eb81 100644 --- a/Makefile.am +++ b/Makefile.am @@ -20,11 +20,10 @@ EXTRA_DIST += ico/sciteco-256.png ico/sciteco.ico EXTRA_DIST += win32/loaders.cache -# Distribute entire scintilla directory and -# do some manual cleanup +# Distribute entire Scintilla/Scinterm/Lexilla directory and +# do some manual cleanup. dist-hook: - cp -r $(srcdir)/scintilla $(distdir) - rm -rf `find $(distdir)/scintilla -name *.o` \ - $(distdir)/scintilla/bin/scintilla.a - rm -rf `find $(distdir)/scintilla -name ".git*"` \ - `find $(distdir)/scintilla -name ".hg*"` + cp -r $(srcdir)/contrib/{scintilla,scinterm,lexilla} $(distdir)/contrib + rm -rf `find $(distdir)/contrib -name *.$(OBJEXT)` \ + `find $(distdir)/contrib -name ".git*"` \ + $(distdir)/contrib/{scintilla,lexilla}/bin/* diff --git a/configure.ac b/configure.ac index 2d3da3f..f1fbd45 100644 --- a/configure.ac +++ b/configure.ac @@ -72,7 +72,7 @@ fi # Additionally required by the Scintilla build process: AC_PROG_CXX -AX_CXX_COMPILE_STDCXX(11, noext, mandatory) +AX_CXX_COMPILE_STDCXX(17, noext, mandatory) AC_CHECK_TOOL(AR, ar) # Whether $CC is Clang @@ -170,22 +170,34 @@ esac # Config options # +# FIXME: It does not really make sense to have this configurable. +# It would make more sense to allow linking against an externally-provided +# Scintilla (some platforms ship with it). AC_ARG_WITH(scintilla, AS_HELP_STRING([--with-scintilla=PATH], - [Specify Scintilla's path [default=./scintilla]]), - [SCINTILLA_PATH=$withval], [SCINTILLA_PATH=./scintilla]) + [Specify Scintilla's path [default=./contrib/scintilla]]), + [SCINTILLA_PATH=$withval], [SCINTILLA_PATH=./contrib/scintilla]) SCINTILLA_PATH=`canonicalize $SCINTILLA_PATH` AC_SUBST(SCINTILLA_PATH) -CPPFLAGS="$CPPFLAGS -I$SCINTILLA_PATH/include -DSCI_LEXER" +CPPFLAGS="$CPPFLAGS -I$SCINTILLA_PATH/include" AC_ARG_WITH(scinterm, AS_HELP_STRING([--with-scinterm=PATH], - [Specify Scinterm's path [default=SCINTILLA_PATH/scinterm]]), - [SCINTERM_PATH=$withval], [SCINTERM_PATH=$SCINTILLA_PATH/scinterm]) + [Specify Scinterm's path [default=./contrib/scinterm]]), + [SCINTERM_PATH=$withval], [SCINTERM_PATH=./contrib/scinterm]) SCINTERM_PATH=`canonicalize $SCINTERM_PATH` AC_SUBST(SCINTERM_PATH) +AC_ARG_WITH(lexilla, + AS_HELP_STRING([--with-lexilla=PATH], + [Specify Lexilla's path [default=./contrib/lexilla]]), + [LEXILLA_PATH=$withval], [LEXILLA_PATH=./contrib/lexilla]) +LEXILLA_PATH=`canonicalize $LEXILLA_PATH` +AC_SUBST(LEXILLA_PATH) + +CPPFLAGS="$CPPFLAGS -I$LEXILLA_PATH/include" + AC_ARG_WITH(interface, AS_HELP_STRING([--with-interface=ncurses|netbsd-curses|xcurses|pdcurses|pdcurses-gui|gtk], [Specify user interface [default=ncurses]]), diff --git a/contrib/lexilla b/contrib/lexilla new file mode 160000 +Subproject 7d7426e4bf4aa9ffea4ecdde34aa9f751c1bdc0 diff --git a/contrib/scinterm b/contrib/scinterm new file mode 160000 +Subproject c29125950e33f1dd02473888cdf9b6a1959442c diff --git a/contrib/scintilla b/contrib/scintilla new file mode 160000 +Subproject fab670c471c7eea28d43ebaeed14b3c886e2c6e diff --git a/contrib/scintilla.am b/contrib/scintilla.am new file mode 100644 index 0000000..cd14d4f --- /dev/null +++ b/contrib/scintilla.am @@ -0,0 +1,73 @@ +# We use the existing Scintilla/Lexilla Makefile build system to +# avoid redundancies and maintainance overhead. +# These build systems produce static libraries (*.a). +# This however has two diadvantages: +# 1.) Out-of-tree builds are not straight forward and require +# manually cloning the submodules into the build system. +# `make distcheck` is consequently also broken. +# 2.) We cannot add plain static libraries to libtool convenience +# libraries using LIBADD. +# Therefore, we cannot wrap Scintilla and Lexilla into a convenience +# library. +# That's why this file must instead be included everywhere where +# scintilla.a and liblexilla.a are referenced and they must be added +# to programs using LDADD. + +if INTERFACE_GTK +MAKE_SCINTILLA = $(MAKE) -C @SCINTILLA_PATH@/gtk \ + GTK3=yes CONFIGFLAGS='@LIBGTK_CFLAGS@' \ + CXXFLAGS='@SCINTILLA_CXXFLAGS@' +else +# NOTE: The VPATH hack allows us to keep Scinterm separate from +# the Scintilla repo and avoid using recursive submodules. +# +# FIXME: There is currently no way to override the standard optimization +# flags of Scinterm, so we pass them in CURSES_FLAGS. +MAKE_SCINTILLA = $(MAKE) -C @SCINTILLA_PATH@/bin -f @SCINTERM_PATH@/Makefile \ + VPATH=@SCINTERM_PATH@ \ + CURSES_FLAGS='@PDCURSES_CFLAGS@ @XCURSES_CFLAGS@ @NCURSES_CFLAGS@ @SCINTILLA_CXXFLAGS@' +endif + +# Pass toolchain configuration to Scintilla. +# This is what allows cross compilation +MAKE_SCINTILLA += CC='@CC@' CXX='@CXX@' \ + AR='@AR@' RANLIB='@RANLIB@' + +# Build as phony target - we do not know +# scintilla.a's dependencies. +# If it's up to date, the additional recursive +# make call does not hurt. +.PHONY: make-scintilla +make-scintilla: + $(MAKE_SCINTILLA) + +# scintilla.a itself is not phony. +# This avoids unnecessary relinking if it is +# up to date. +# Also note the ; which defines this recipe as +# empty. +@SCINTILLA_PATH@/bin/scintilla.a : make-scintilla; + +.PHONY: clean-local-scintilla +clean-local-scintilla: + $(MAKE_SCINTILLA) clean + +MAKE_LEXILLA = $(MAKE) -C @LEXILLA_PATH@/src \ + CXXFLAGS='@SCINTILLA_CXXFLAGS@' \ + CC='@CC@' CXX='@CXX@' \ + AR='@AR@' RANLIB='@RANLIB@' + +.PHONY: make-lexilla +make-lexilla: + $(MAKE_LEXILLA) + +@LEXILLA_PATH@/bin/liblexilla.a : make-lexilla; + +.PHONY: clean-local-lexilla +clean-local-lexilla: + $(MAKE_LEXILLA) clean + +# NOTE: using a separate `clean-local-scintilla` +# target allows us to add more custom rules to the +# including Automake file +clean-local: clean-local-scintilla clean-local-lexilla diff --git a/debian/control b/debian/control index 7e8cc5c..03adab2 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: sciteco Section: editors Priority: optional Maintainer: Robin Haberkorn <robin.haberkorn@googlemail.com> -Build-Depends: debhelper (>= 10), dh-exec, g++ (>= 4:4.4), libglib2.0-dev (>= 2.44), +Build-Depends: debhelper (>= 10), dh-exec, g++ (>= 4:5.0), libglib2.0-dev (>= 2.44), ncurses-base, ncurses-term, libncurses5-dev, libgtk-3-dev (>= 3.12), xvfb, groff-base diff --git a/debian/copyright b/debian/copyright index 36d5bf9..cfd2fa7 100644 --- a/debian/copyright +++ b/debian/copyright @@ -31,12 +31,12 @@ License: IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -Files: scintilla/* -Copyright: Copyright 1998-2003 Neil Hodgson <neilh@scintilla.org> +Files: contrib/scintilla/* contrib/lexilla/* +Copyright: Copyright 1998-2021 Neil Hodgson <neilh@scintilla.org> License: - License for Scintilla and SciTE + License for Lexilla, Scintilla, and SciTE . - Copyright 1998-2003 by Neil Hodgson <neilh@scintilla.org> + Copyright 1998-2021 by Neil Hodgson <neilh@scintilla.org> . All Rights Reserved . @@ -55,12 +55,12 @@ License: TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -Files: scintilla/scinterm/* -Copyright: Copyright 2012-2016 Mitchell <mitchell.att.foicica.com> +Files: contrib/scinterm/* +Copyright: Copyright 2012-2020 Mitchell <mitchell.att.foicica.com> License: The MIT License . - Copyright (c) 2012-2016 Mitchell + Copyright (c) 2012-2020 Mitchell . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/debian/rules b/debian/rules index 64b5f16..b318a86 100755 --- a/debian/rules +++ b/debian/rules @@ -35,8 +35,8 @@ build build-arch build-indep: build-curses-stamp build-gtk-stamp build-curses-stamp: dh_testdir rm -rf build-curses - mkdir build-curses - cp -r scintilla build-curses/ + mkdir -p build-curses/contrib + cp -r contrib/{scintilla,scinterm,lexilla} build-curses/contrib/ dh_auto_configure -Bbuild-curses -- \ --with-interface=ncurses dh_auto_build -Bbuild-curses @@ -48,8 +48,8 @@ build-curses-stamp: build-gtk-stamp: dh_testdir rm -rf build-gtk - mkdir build-gtk - cp -r scintilla build-gtk/ + mkdir -p build-gtk/contrib + cp -r contrib/{scintilla,lexilla} build-gtk/contrib/ dh_auto_configure -Bbuild-gtk -- \ --program-prefix=g \ --with-interface=gtk @@ -57,8 +57,7 @@ build-gtk-stamp: # we need an XServer which may be missing on the build server. # That's why we use xvfb. xvfb-run -a dh_auto_build -Bbuild-gtk -# FIXME: The test suite can be ridiculously lengthy with Gtk binaries. -# xvfb-run -a dh_auto_test -Bbuild-gtk + xvfb-run -a dh_auto_test -Bbuild-gtk touch $@ install: diff --git a/lib/lexers/abaqus.tes b/lib/lexers/abaqus.tes index 48f6431..a21c847 100644 --- a/lib/lexers/abaqus.tes +++ b/lib/lexers/abaqus.tes @@ -7,7 +7,7 @@ } @[lexer.set.abaqus]{ - ESSETLEXERLANGUAGEabaqus + ESSETILEXERabaqus 1ESSETKEYWORDS *amplitude *assembly *beam *boundary *buckle *bulk *cload *conditions *conductivity *contact *damping *density *dload *dsflux *dsload *dynamic *el *elastic diff --git a/lib/lexers/ada.tes b/lib/lexers/ada.tes index f972f15..318a1e3 100644 --- a/lib/lexers/ada.tes +++ b/lib/lexers/ada.tes @@ -6,7 +6,7 @@ } @[lexer.set.ada]{ - ESSETLEXERLANGUAGEada + ESSETILEXERada 0ESSETKEYWORDS abort abstract accept access aliased all array at begin body case constant declare delay delta digits do else elsif end entry exception exit for function diff --git a/lib/lexers/asl.tes b/lib/lexers/asl.tes index 342cd35..9a5888c 100644 --- a/lib/lexers/asl.tes +++ b/lib/lexers/asl.tes @@ -6,7 +6,7 @@ } @[lexer.set.asl]{ - ESSETLEXERLANGUAGEcpp + ESSETILEXERcpp 0ESSETKEYWORDS AccessAs Acquire Add Alias And Arg0 Arg1 Arg2 Arg3 Arg4 Arg5 Arg6 BankField Break BreakPoint Buffer Case Concatenate ConcatenateResTemplate CondRefOf diff --git a/lib/lexers/asm.tes b/lib/lexers/asm.tes index eab13a7..816a7e2 100644 --- a/lib/lexers/asm.tes +++ b/lib/lexers/asm.tes @@ -5,7 +5,7 @@ } @[lexer.set.asm]{ - ESSETLEXERLANGUAGEasm + ESSETILEXERasm 0ESSETKEYWORDS aaa aad aam aas daa das ja jae jb jbe jc jcxz je jg jge jl jle jmp jna jnae jnb jnbe jnc jne jng jnge jnl jnle jno jnp jns jnz jo jp jpe jpo js jz jcxz diff --git a/lib/lexers/ave.tes b/lib/lexers/ave.tes index 279fdde..81b72b2 100644 --- a/lib/lexers/ave.tes +++ b/lib/lexers/ave.tes @@ -5,7 +5,7 @@ } @[lexer.set.ave]{ - ESSETLEXERLANGUAGEave + ESSETILEXERave 0ESSETKEYWORDS nil true false else for if while then elseif end av self in exit :M[color.comment],1M[color.set] diff --git a/lib/lexers/avs.tes b/lib/lexers/avs.tes index ca652bd..935ba90 100644 --- a/lib/lexers/avs.tes +++ b/lib/lexers/avs.tes @@ -6,7 +6,7 @@ } @[lexer.set.avs]{ - ESSETLEXERLANGUAGEavs + ESSETILEXERavs 0ESSETKEYWORDS true false return global 1ESSETKEYWORDS diff --git a/lib/lexers/awk.tes b/lib/lexers/awk.tes index e96066f..75cf3f0 100644 --- a/lib/lexers/awk.tes +++ b/lib/lexers/awk.tes @@ -5,7 +5,7 @@ } @[lexer.set.awk]{ - ESSETLEXERLANGUAGEperl + ESSETILEXERperl 0ESSETKEYWORDS BEGIN END if else while do for in break continue delete exit function return print printf sprintf system close getline next nextfile fflush atan2 cos exp int diff --git a/lib/lexers/baan.tes b/lib/lexers/baan.tes index 4d5b9d6..87634ca 100644 --- a/lib/lexers/baan.tes +++ b/lib/lexers/baan.tes @@ -6,7 +6,7 @@ } @[lexer.set.baan]{ - ESSETLEXERLANGUAGEbaan + ESSETILEXERbaan :M[color.comment],1M[color.set] :M[color.comment],2M[color.set] :M[color.number],3M[color.set] diff --git a/lib/lexers/bash.tes b/lib/lexers/bash.tes index b66d6e3..5dce149 100644 --- a/lib/lexers/bash.tes +++ b/lib/lexers/bash.tes @@ -11,7 +11,7 @@ } @[lexer.set.bash]{ - ESSETLEXERLANGUAGEbash + ESSETILEXERbash 0ESSETKEYWORDS alias ar asa awk banner basename bash bc bdiff break bunzip2 bzip2 cal calendar case cat cc cd chmod cksum clear cmp col comm compress continue cp cpio diff --git a/lib/lexers/batch.tes b/lib/lexers/batch.tes index 0a9890d..a3a2a80 100644 --- a/lib/lexers/batch.tes +++ b/lib/lexers/batch.tes @@ -7,7 +7,7 @@ } @[lexer.set.batch]{ - ESSETLEXERLANGUAGEbatch + ESSETILEXERbatch 0ESSETKEYWORDS rem set if exist errorlevel for in do break call chcp cd chdir choice cls country ctty date del erase dir echo exit goto loadfix loadhigh mkdir md move path diff --git a/lib/lexers/blitzbasic.tes b/lib/lexers/blitzbasic.tes index 3ec3037..fee1f96 100644 --- a/lib/lexers/blitzbasic.tes +++ b/lib/lexers/blitzbasic.tes @@ -5,7 +5,7 @@ } @[lexer.set.blitzbasic]{ - ESSETLEXERLANGUAGEblitzbasic + ESSETILEXERblitzbasic 0ESSETKEYWORDS abs accepttcpstream acos after and apptitle asc asin atan atan2 automidhandle autosuspend availvidmem backbuffer banksize before bin calldll case ceil diff --git a/lib/lexers/c.tes b/lib/lexers/c.tes index 434bf14..d4aeb52 100644 --- a/lib/lexers/c.tes +++ b/lib/lexers/c.tes @@ -37,7 +37,7 @@ until var verbatim verbinclude version warning weakgroup $ @ \ & < > # { } @[lexer.set.c]{ - ESSETLEXERLANGUAGEcpp + ESSETILEXERcpp 0ESSETKEYWORDS Q[lexer.c.basekeywords] _Alignas _Alignof _Atomic _Bool _Complex _Generic _Imaginary _Noreturn _Static_assert _Thread_local diff --git a/lib/lexers/caml.tes b/lib/lexers/caml.tes index d7b1838..0b681a1 100644 --- a/lib/lexers/caml.tes +++ b/lib/lexers/caml.tes @@ -6,7 +6,7 @@ } @[lexer.set.caml]{ - ESSETLEXERLANGUAGEcaml + ESSETILEXERcaml 0ESSETKEYWORDS and as assert asr begin class constraint do done downto else end exception external false for fun function functor if in include inherit initializer land lazy diff --git a/lib/lexers/ch.tes b/lib/lexers/ch.tes index 6781659..b0a1f4d 100644 --- a/lib/lexers/ch.tes +++ b/lib/lexers/ch.tes @@ -7,7 +7,7 @@ } @[lexer.set.ch]{ - ESSETLEXERLANGUAGEcpp + ESSETILEXERcpp 0ESSETKEYWORDS auto array bool break case char class complex ComplexInf ComplexNaN const continue default delete do double else enum export extern float for foreach goto if diff --git a/lib/lexers/cmake.tes b/lib/lexers/cmake.tes index 14d5a15..3b7c5f7 100644 --- a/lib/lexers/cmake.tes +++ b/lib/lexers/cmake.tes @@ -7,7 +7,7 @@ } @[lexer.set.cmake]{ - ESSETLEXERLANGUAGEcmake + ESSETILEXERcmake ! Commands ! 0ESSETKEYWORDS add_custom_command add_custom_target add_definitions add_dependencies diff --git a/lib/lexers/cobol.tes b/lib/lexers/cobol.tes index 3760b71..7d9b6cb 100644 --- a/lib/lexers/cobol.tes +++ b/lib/lexers/cobol.tes @@ -5,7 +5,7 @@ } @[lexer.set.cobol]{ - ESSETLEXERLANGUAGECOBOL + ESSETILEXERCOBOL 0ESSETKEYWORDS configuration data declaratives division environment environment-division file file-control function i-o i-o-control identification input input-output diff --git a/lib/lexers/cpp.tes b/lib/lexers/cpp.tes index d966e38..21e03d0 100644 --- a/lib/lexers/cpp.tes +++ b/lib/lexers/cpp.tes @@ -18,7 +18,7 @@ } @[lexer.set.cpp]{ - ESSETLEXERLANGUAGEcpp + ESSETILEXERcpp 0ESSETKEYWORDS Q[lexer.c.basekeywords] and and_eq bitand bitor catch class compl const_cast constexpr delete dynamic_cast diff --git a/lib/lexers/cs.tes b/lib/lexers/cs.tes index 1d97053..592332a 100644 --- a/lib/lexers/cs.tes +++ b/lib/lexers/cs.tes @@ -5,7 +5,7 @@ } @[lexer.set.cs]{ - ESSETLEXERLANGUAGEcpp + ESSETILEXERcpp 0ESSETKEYWORDS abstract as ascending base bool break by byte case catch char checked class const continue decimal default delegate descending do double else enum equals diff --git a/lib/lexers/d.tes b/lib/lexers/d.tes index 1b69df3..9a00fc9 100644 --- a/lib/lexers/d.tes +++ b/lib/lexers/d.tes @@ -5,7 +5,7 @@ } @[lexer.set.d]{ - ESSETLEXERLANGUAGEd + ESSETILEXERd 0ESSETKEYWORDS abstract alias align asm assert auto body bool break byte case cast catch cdouble cent cfloat char class const continue creal dchar debug default delegate diff --git a/lib/lexers/diff.tes b/lib/lexers/diff.tes index ff3c6af..a254f49 100644 --- a/lib/lexers/diff.tes +++ b/lib/lexers/diff.tes @@ -6,7 +6,7 @@ } @[lexer.set.diff]{ - ESSETLEXERLANGUAGEdiff + ESSETILEXERdiff :M[color.comment],1M[color.set] :M[color.keyword],2M[color.set] ! Command ! :M[color.preproc],3M[color.set] ! Source/Dest ! diff --git a/lib/lexers/docbook.tes b/lib/lexers/docbook.tes index cf9e3ab..ea60702 100644 --- a/lib/lexers/docbook.tes +++ b/lib/lexers/docbook.tes @@ -5,7 +5,7 @@ } @[lexer.set.docbook]{ - ESSETLEXERLANGUAGEhypertext + ESSETILEXERhypertext 0ESSETKEYWORDS abbrev abstract accel ackno acronym action address affiliation alt anchor answer appendix appendixinfo application area areaset areaspec arg article diff --git a/lib/lexers/eiffel.tes b/lib/lexers/eiffel.tes index af14ea0..c22f5df 100644 --- a/lib/lexers/eiffel.tes +++ b/lib/lexers/eiffel.tes @@ -5,7 +5,7 @@ } @[lexer.set.eiffel]{ - ESSETLEXERLANGUAGEcpp + ESSETILEXERcpp 0ESSETKEYWORDS struct unit integer real bool int long uint nibble byte bits bytes bit time string var instance event verilog vhdl on compute start expect check that routine diff --git a/lib/lexers/f77.tes b/lib/lexers/f77.tes index 22e7ca1..e06243c 100644 --- a/lib/lexers/f77.tes +++ b/lib/lexers/f77.tes @@ -6,7 +6,7 @@ } @[lexer.set.f77]{ - ESSETLEXERLANGUAGEf77 + ESSETILEXERf77 0ESSETKEYWORDS access action advance allocatable allocate apostrophe assign assignment associate asynchronous backspace bind blank blockdata call case character class close diff --git a/lib/lexers/f95.tes b/lib/lexers/f95.tes index 73cc766..7544375 100644 --- a/lib/lexers/f95.tes +++ b/lib/lexers/f95.tes @@ -7,7 +7,7 @@ } @[lexer.set.f95]{ - ESSETLEXERLANGUAGEfortran + ESSETILEXERfortran 0ESSETKEYWORDS access action advance allocatable allocate apostrophe assign assignment associate asynchronous backspace bind blank blockdata call case character class close diff --git a/lib/lexers/flagship.tes b/lib/lexers/flagship.tes index caaf140..485d351 100644 --- a/lib/lexers/flagship.tes +++ b/lib/lexers/flagship.tes @@ -5,7 +5,7 @@ } @[lexer.set.flagship]{ - ESSETLEXERLANGUAGEflagship + ESSETILEXERflagship 0ESSETKEYWORDS ? @ accept access all alternate announce ansi any append as assign autolock average begin bell bitmap blank box call cancel case century charset checkbox clear diff --git a/lib/lexers/flash.tes b/lib/lexers/flash.tes index 8e9b83f..27be2bf 100644 --- a/lib/lexers/flash.tes +++ b/lib/lexers/flash.tes @@ -7,7 +7,7 @@ } @[lexer.set.flash]{ - ESSETLEXERLANGUAGEcpp + ESSETILEXERcpp 0ESSETKEYWORDS add and break case catch class continue default delete do dynamic else eq extends false finally for function ge get gt if implements import in instanceof diff --git a/lib/lexers/freebasic.tes b/lib/lexers/freebasic.tes index 2e15ed3..16b7ace 100644 --- a/lib/lexers/freebasic.tes +++ b/lib/lexers/freebasic.tes @@ -6,7 +6,7 @@ } @[lexer.set.freebasic]{ - ESSETLEXERLANGUAGEfreebasic + ESSETILEXERfreebasic 0ESSETKEYWORDS append as asc asin asm atan2 atn beep bin binary bit bitreset bitset bload bsave byref byte byval call callocate case cbyte cdbl cdecl chain chdir chr cint diff --git a/lib/lexers/gap.tes b/lib/lexers/gap.tes index 75985f4..7a680c7 100644 --- a/lib/lexers/gap.tes +++ b/lib/lexers/gap.tes @@ -7,7 +7,7 @@ } @[lexer.set.gap]{ - ESSETLEXERLANGUAGEgap + ESSETILEXERgap 0ESSETKEYWORDS and break continue do elif else end fi for function if in local mod not od or quit rec repeat return then until while QUIT diff --git a/lib/lexers/go.tes b/lib/lexers/go.tes index 8e4900b..a637b5c 100644 --- a/lib/lexers/go.tes +++ b/lib/lexers/go.tes @@ -5,7 +5,7 @@ } @[lexer.set.go]{ - ESSETLEXERLANGUAGEcpp + ESSETILEXERcpp 0ESSETKEYWORDS bool byte break case chan complex64 complex128 const continue defer default else for func go goto fallthrough false float32 float64 if import int interface diff --git a/lib/lexers/gob.tes b/lib/lexers/gob.tes index e3e1e63..0d99982 100644 --- a/lib/lexers/gob.tes +++ b/lib/lexers/gob.tes @@ -8,7 +8,7 @@ } @[lexer.set.gob]{ - ESSETLEXERLANGUAGEcpp + ESSETILEXERcpp 0ESSETKEYWORDS Q[lexer.c.basekeywords] _Alignas _Alignof _Atomic _Bool _Complex _Generic _Imaginary _Noreturn _Static_assert _Thread_local diff --git a/lib/lexers/html.tes b/lib/lexers/html.tes index 79b6a4a..b09012d 100644 --- a/lib/lexers/html.tes +++ b/lib/lexers/html.tes @@ -19,7 +19,7 @@ } @[lexer.set.html]{ - ESSETLEXERLANGUAGEhypertext + ESSETILEXERhypertext 0ESSETKEYWORDS a abbr acronym address applet area b base basefont bdo big blockquote body br button caption center cite code col colgroup dd del dfn dir div dl dt em diff --git a/lib/lexers/idl.tes b/lib/lexers/idl.tes index fdfda09..9180ae0 100644 --- a/lib/lexers/idl.tes +++ b/lib/lexers/idl.tes @@ -6,7 +6,7 @@ } @[lexer.set.idl]{ - ESSETLEXERLANGUAGEcpp + ESSETILEXERcpp 0ESSETKEYWORDS aggregatable allocate appobject arrays async async_uuid auto_handle bindable boolean broadcast byte byte_count call_as callback char coclass code comm_status diff --git a/lib/lexers/inno.tes b/lib/lexers/inno.tes index ddd0e66..c963b1d 100644 --- a/lib/lexers/inno.tes +++ b/lib/lexers/inno.tes @@ -6,7 +6,7 @@ } @[lexer.set.inno]{ - ESSETLEXERLANGUAGEinno + ESSETILEXERinno 0ESSETKEYWORDS code components custommessages dirs files icons ini installdelete langoptions languages messages registry run setup types tasks uninstalldelete diff --git a/lib/lexers/java.tes b/lib/lexers/java.tes index 83560e5..a9a592a 100644 --- a/lib/lexers/java.tes +++ b/lib/lexers/java.tes @@ -7,7 +7,7 @@ } @[lexer.set.java]{ - ESSETLEXERLANGUAGEcpp + ESSETILEXERcpp 0ESSETKEYWORDS abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implements diff --git a/lib/lexers/js.tes b/lib/lexers/js.tes index 5968f9c..3e8ed8e 100644 --- a/lib/lexers/js.tes +++ b/lib/lexers/js.tes @@ -7,7 +7,7 @@ } @[lexer.set.js]{ - ESSETLEXERLANGUAGEcpp + ESSETILEXERcpp 0ESSETKEYWORDS abstract boolean break byte case catch char class const continue debugger default delete do double else enum export extends final finally float for function diff --git a/lib/lexers/kix.tes b/lib/lexers/kix.tes index 21e7ec9..f63b5c5 100644 --- a/lib/lexers/kix.tes +++ b/lib/lexers/kix.tes @@ -5,7 +5,7 @@ } @[lexer.set.kix]{ - ESSETLEXERLANGUAGEkix + ESSETILEXERkix 0ESSETKEYWORDS ? and beep big break call cd cls color cookie1 copy debug del dim display do until exit flushkb for each next function endfunction get gets global go gosub diff --git a/lib/lexers/lisp.tes b/lib/lexers/lisp.tes index e96ed41..c17196a 100644 --- a/lib/lexers/lisp.tes +++ b/lib/lexers/lisp.tes @@ -6,7 +6,7 @@ } @[lexer.set.lisp]{ - ESSETLEXERLANGUAGElisp + ESSETILEXERlisp 0ESSETKEYWORDS not defun + - * / = < > <= >= princ eval apply funcall quote identity function complement backquote lambda set setq setf defun defmacro gensym make symbol diff --git a/lib/lexers/lout.tes b/lib/lexers/lout.tes index cdadf02..cb161b7 100644 --- a/lib/lexers/lout.tes +++ b/lib/lexers/lout.tes @@ -5,7 +5,7 @@ } @[lexer.set.lout]{ - ESSETLEXERLANGUAGElout + ESSETILEXERlout 0ESSETKEYWORDS @OptGall @FontDef @Family @Face @Name @Metrics @ExtraMetrics @Mapping @Recode @Filter @FilterIn @FilterOut @FilterErr @Common @Rump @Meld @Insert @OneOf diff --git a/lib/lexers/lua.tes b/lib/lexers/lua.tes index 0330414..f0eeca4 100644 --- a/lib/lexers/lua.tes +++ b/lib/lexers/lua.tes @@ -6,7 +6,7 @@ } @[lexer.set.lua]{ - ESSETLEXERLANGUAGElua + ESSETILEXERlua 0ESSETKEYWORDS and break do else elseif end for function if in local nil not or repeat return then until while false true goto diff --git a/lib/lexers/make.tes b/lib/lexers/make.tes index eb5c383..2e1d661 100644 --- a/lib/lexers/make.tes +++ b/lib/lexers/make.tes @@ -7,7 +7,7 @@ } @[lexer.set.make]{ - ESSETLEXERLANGUAGEmakefile + ESSETILEXERmakefile :M[color.comment],1M[color.set] :M[color.preproc],2M[color.set] :M[color.variable],3M[color.set] diff --git a/lib/lexers/mako.tes b/lib/lexers/mako.tes index 381f380..5cbf9fd 100644 --- a/lib/lexers/mako.tes +++ b/lib/lexers/mako.tes @@ -6,7 +6,7 @@ } @[lexer.set.mako]{ - ESSETLEXERLANGUAGEhypertext + ESSETILEXERhypertext 0ESSETKEYWORDS a abbr acronym address applet area b base basefont bdo big blockquote body br button caption center cite code col colgroup dd del dfn dir div dl dt em diff --git a/lib/lexers/matlab.tes b/lib/lexers/matlab.tes index 3ad4d4c..d63a6f8 100644 --- a/lib/lexers/matlab.tes +++ b/lib/lexers/matlab.tes @@ -5,7 +5,7 @@ } @[lexer.set.matlab]{ - ESSETLEXERLANGUAGEmatlab + ESSETILEXERmatlab 0ESSETKEYWORDS break case catch continue else elseif end for function global if otherwise persistent return switch try while diff --git a/lib/lexers/mmixal.tes b/lib/lexers/mmixal.tes index ff54ba8..7f7df43 100644 --- a/lib/lexers/mmixal.tes +++ b/lib/lexers/mmixal.tes @@ -5,7 +5,7 @@ } @[lexer.set.mmixal]{ - ESSETLEXERLANGUAGEmmixal + ESSETILEXERmmixal 0ESSETKEYWORDS 2ADDU 4ADDU 8ADDU 16ADDU ADD ADDU AND ANDNH ANDNL ANDNMH ANDNML BDIF BEV BN BNN BNP BNZ BOD BP BSPEC BYTE BZ CMP CMPU CSEV CSN CSNN CSNP CSNZ CSOD CSP CSWAP diff --git a/lib/lexers/octave.tes b/lib/lexers/octave.tes index 5f2c5b3..2df769a 100644 --- a/lib/lexers/octave.tes +++ b/lib/lexers/octave.tes @@ -5,7 +5,7 @@ } @[lexer.set.octave]{ - ESSETLEXERLANGUAGEoctave + ESSETILEXERoctave 0ESSETKEYWORDS __FILE__ __LINE__ break case catch classdef continue do else elseif end end_try_catch end_unwind_protect endclassdef endenumeration endevents endfor endif diff --git a/lib/lexers/oscript.tes b/lib/lexers/oscript.tes index 652e3e0..949e564 100644 --- a/lib/lexers/oscript.tes +++ b/lib/lexers/oscript.tes @@ -5,7 +5,7 @@ } @[lexer.set.oscript]{ - ESSETLEXERLANGUAGEoscript + ESSETILEXERoscript 0ESSETKEYWORDS break breakif by case continue continueif default downto else elseif end for goto if in repeat switch to until while function return void dll inbyref inout diff --git a/lib/lexers/pascal.tes b/lib/lexers/pascal.tes index e78f383..66e705c 100644 --- a/lib/lexers/pascal.tes +++ b/lib/lexers/pascal.tes @@ -9,7 +9,7 @@ } @[lexer.set.pascal]{ - ESSETLEXERLANGUAGEpascal + ESSETILEXERpascal 0ESSETKEYWORDS absolute abstract and array as asm assembler automated begin case cdecl class const constructor delayed deprecated destructor dispid dispinterface div do diff --git a/lib/lexers/perl.tes b/lib/lexers/perl.tes index 7c966b4..3dd99ae 100644 --- a/lib/lexers/perl.tes +++ b/lib/lexers/perl.tes @@ -8,7 +8,7 @@ } @[lexer.set.perl]{ - ESSETLEXERLANGUAGEperl + ESSETILEXERperl 0ESSETKEYWORDS NULL __FILE__ __LINE__ __PACKAGE__ __DATA__ __END__ AUTOLOAD BEGIN CORE DESTROY END EQ GE GT INIT LE LT NE CHECK abs accept alarm and atan2 bind binmode diff --git a/lib/lexers/php.tes b/lib/lexers/php.tes index fe6acc3..e60c769 100644 --- a/lib/lexers/php.tes +++ b/lib/lexers/php.tes @@ -7,7 +7,7 @@ } @[lexer.set.php]{ - ESSETLEXERLANGUAGEhypertext + ESSETILEXERhypertext 0ESSETKEYWORDS a abbr acronym address applet area b base basefont bdo big blockquote body br button caption center cite code col colgroup dd del dfn dir div dl dt em diff --git a/lib/lexers/pike.tes b/lib/lexers/pike.tes index 4540fb1..9686fe2 100644 --- a/lib/lexers/pike.tes +++ b/lib/lexers/pike.tes @@ -5,7 +5,7 @@ } @[lexer.set.pike]{ - ESSETLEXERLANGUAGEcpp + ESSETILEXERcpp 0ESSETKEYWORDS constant enum if do for while else foreach case switch break continue return typeof catch class lambda import inherit static void int string float mixed object diff --git a/lib/lexers/pov.tes b/lib/lexers/pov.tes index 133e70e..257ce19 100644 --- a/lib/lexers/pov.tes +++ b/lib/lexers/pov.tes @@ -6,7 +6,7 @@ } @[lexer.set.pov]{ - ESSETLEXERLANGUAGEpov + ESSETILEXERpov 0ESSETKEYWORDS declare local include undef fopen fclose read write default version case range break debug error warning if ifdef ifndef switch while macro else end diff --git a/lib/lexers/powerpro.tes b/lib/lexers/powerpro.tes index bb0ac11..e487604 100644 --- a/lib/lexers/powerpro.tes +++ b/lib/lexers/powerpro.tes @@ -5,7 +5,7 @@ } @[lexer.set.powerpro]{ - ESSETLEXERLANGUAGEpowerpro + ESSETILEXERpowerpro 0ESSETKEYWORDS break do else elseif endfor endif for function global gt if ifelse ifx jump local lt quit static diff --git a/lib/lexers/purebasic.tes b/lib/lexers/purebasic.tes index d09df51..e9e20a7 100644 --- a/lib/lexers/purebasic.tes +++ b/lib/lexers/purebasic.tes @@ -5,7 +5,7 @@ } @[lexer.set.purebasic]{ - ESSETLEXERLANGUAGEpurebasic + ESSETILEXERpurebasic 0ESSETKEYWORDS and break case continue data datasection declare declarecdll declaredll default deftype dim else elseif end enddatasection endenumeration endif endinterface diff --git a/lib/lexers/r.tes b/lib/lexers/r.tes index 75f9a2f..9fb393e 100644 --- a/lib/lexers/r.tes +++ b/lib/lexers/r.tes @@ -7,7 +7,7 @@ } @[lexer.set.r]{ - ESSETLEXERLANGUAGEr + ESSETILEXERr 0ESSETKEYWORDS if else repeat while function for in next break TRUE FALSE NULL NA Inf NaN 1ESSETKEYWORDS diff --git a/lib/lexers/rc.tes b/lib/lexers/rc.tes index 940a11b..db2203d 100644 --- a/lib/lexers/rc.tes +++ b/lib/lexers/rc.tes @@ -7,7 +7,7 @@ } @[lexer.set.rc]{ - ESSETLEXERLANGUAGEcpp + ESSETILEXERcpp 0ESSETKEYWORDS ACCELERATORS ALT AUTO3STATE AUTOCHECKBOX AUTORADIOBUTTON BEGIN BITMAP BLOCK BUTTON CAPTION CHARACTERISTICS CHECKBOX CLASS COMBOBOX CONTROL CTEXT CURSOR diff --git a/lib/lexers/rebol.tes b/lib/lexers/rebol.tes index c2555e8..cef071c 100644 --- a/lib/lexers/rebol.tes +++ b/lib/lexers/rebol.tes @@ -6,7 +6,7 @@ } @[lexer.set.rebol]{ - ESSETLEXERLANGUAGErebol + ESSETILEXERrebol 0ESSETKEYWORDS about abs absolute add alert alias all alter and any any-block? any-function? any-string? any-type? any-word? append arccosine arcsine arctangent array diff --git a/lib/lexers/rust.tes b/lib/lexers/rust.tes index 96e457f..4ffd9b5 100644 --- a/lib/lexers/rust.tes +++ b/lib/lexers/rust.tes @@ -5,7 +5,7 @@ } @[lexer.set.rust]{ - ESSETLEXERLANGUAGErust + ESSETILEXERrust 0ESSETKEYWORDS if else repeat while function for in next break TRUE FALSE NULL NA Inf NaN 1ESSETKEYWORDS diff --git a/lib/lexers/scheme.tes b/lib/lexers/scheme.tes index d56f45d..31af808 100644 --- a/lib/lexers/scheme.tes +++ b/lib/lexers/scheme.tes @@ -7,7 +7,7 @@ } @[lexer.set.scheme]{ - ESSETLEXERLANGUAGElisp + ESSETILEXERlisp 0ESSETKEYWORDS + - * / = < > <= >= => abs acos and angle append apply asin assoc assoc assq assv atan begin boolean? caar cadr call-with-current-continuation call/cc diff --git a/lib/lexers/specman.tes b/lib/lexers/specman.tes index 6836405..3d83590 100644 --- a/lib/lexers/specman.tes +++ b/lib/lexers/specman.tes @@ -5,7 +5,7 @@ } @[lexer.set.specman]{ - ESSETLEXERLANGUAGEeiffel + ESSETILEXEReiffel 0ESSETKEYWORDS abs acos ascii asin asstring atan atan2 ave case choose choosen choosesets clustersize cos cosh count cron dataset dedup denormalize distribute distributed diff --git a/lib/lexers/spice.tes b/lib/lexers/spice.tes index 4e15a95..5178d01 100644 --- a/lib/lexers/spice.tes +++ b/lib/lexers/spice.tes @@ -6,7 +6,7 @@ } @[lexer.set.spice]{ - ESSETLEXERLANGUAGEspice + ESSETILEXERspice 0ESSETKEYWORDS ac alias alter alterparam append askvalues assertvalid autoscale break compose copy copytodoc dc delete destroy destroyvec diff display disto dowhile echo diff --git a/lib/lexers/swift.tes b/lib/lexers/swift.tes index 285b7af..4a20509 100644 --- a/lib/lexers/swift.tes +++ b/lib/lexers/swift.tes @@ -5,7 +5,7 @@ } @[lexer.set.swift]{ - ESSETLEXERLANGUAGEcpp + ESSETILEXERcpp 0ESSETKEYWORDS class deinit enum extension func import init internal let operator private protocol public static struct subscript typealias var break case continue default do diff --git a/lib/lexers/systemverilog.tes b/lib/lexers/systemverilog.tes index 76e7aad..3df1225 100644 --- a/lib/lexers/systemverilog.tes +++ b/lib/lexers/systemverilog.tes @@ -6,7 +6,7 @@ } @[lexer.set.systemverilog]{ - ESSETLEXERLANGUAGEverilog + ESSETILEXERverilog 0ESSETKEYWORDS alias always always_comb always_ff always_latch and assert assign assume automatic before begin bind bins binsof bit break buf bufif0 bufif1 byte case casex diff --git a/lib/lexers/tacl.tes b/lib/lexers/tacl.tes index bf24554..a0d5bc9 100644 --- a/lib/lexers/tacl.tes +++ b/lib/lexers/tacl.tes @@ -5,7 +5,7 @@ } @[lexer.set.tacl]{ - ESSETLEXERLANGUAGETACL + ESSETILEXERTACL 0ESSETKEYWORDS activate add adddsttransition adduser alter altpri assign attachseg backupcpu break builtins buscmd clear columnize comment compute copy dump copyvar diff --git a/lib/lexers/tal.tes b/lib/lexers/tal.tes index 2504183..247c451 100644 --- a/lib/lexers/tal.tes +++ b/lib/lexers/tal.tes @@ -5,7 +5,7 @@ } @[lexer.set.tal]{ - ESSETLEXERLANGUAGETAL + ESSETILEXERTAL 0ESSETKEYWORDS and assert baddr begin by call callable case cbaddr code cwaddr define do downto drop else end entry external fixed for forward goto if int interrupt label diff --git a/lib/lexers/tcl.tes b/lib/lexers/tcl.tes index 13e1bb1..d5fd022 100644 --- a/lib/lexers/tcl.tes +++ b/lib/lexers/tcl.tes @@ -6,7 +6,7 @@ } @[lexer.set.tcl]{ - ESSETLEXERLANGUAGEtcl + ESSETILEXERtcl 0ESSETKEYWORDS after append array auto_execok auto_import auto_load auto_load_index auto_qualify beep bgerror binary break case catch cd clock close concat continue dde diff --git a/lib/lexers/test.tes b/lib/lexers/test.tes index 9670b4c..cc719db 100644 --- a/lib/lexers/test.tes +++ b/lib/lexers/test.tes @@ -7,7 +7,7 @@ } @[lexer.set.test]{ - ESSETLEXERLANGUAGEcpp + ESSETILEXERcpp :M[color.comment],1M[color.set] :M[color.comment],2M[color.set] :M[color.comment],3M[color.set] diff --git a/lib/lexers/vala.tes b/lib/lexers/vala.tes index 3e2c457..85b9ceb 100644 --- a/lib/lexers/vala.tes +++ b/lib/lexers/vala.tes @@ -5,7 +5,7 @@ } @[lexer.set.vala]{ - ESSETLEXERLANGUAGEcpp + ESSETILEXERcpp 0ESSETKEYWORDS if else switch case default break continue return yield for foreach in do while try catch finally throw diff --git a/lib/lexers/vb.tes b/lib/lexers/vb.tes index bf8eae4..c37752b 100644 --- a/lib/lexers/vb.tes +++ b/lib/lexers/vb.tes @@ -12,7 +12,7 @@ } @[lexer.set.vb]{ - ESSETLEXERLANGUAGEvb + ESSETILEXERvb 0ESSETKEYWORDS addressof alias and as attribute base begin binary boolean byref byte byval call case cdbl cint clng compare const csng cstr currency date decimal declare diff --git a/lib/lexers/verilog.tes b/lib/lexers/verilog.tes index 33e47a9..23f874f 100644 --- a/lib/lexers/verilog.tes +++ b/lib/lexers/verilog.tes @@ -6,7 +6,7 @@ } @[lexer.set.verilog]{ - ESSETLEXERLANGUAGEverilog + ESSETILEXERverilog 0ESSETKEYWORDS always and assign automatic begin buf bufif0 bufif1 case casex casez cell cmos config deassign default defparam design disable edge else end endcase diff --git a/lib/lexers/vhdl.tes b/lib/lexers/vhdl.tes index a762b24..37fe9bf 100644 --- a/lib/lexers/vhdl.tes +++ b/lib/lexers/vhdl.tes @@ -6,7 +6,7 @@ } @[lexer.set.vhdl]{ - ESSETLEXERLANGUAGEvhdl + ESSETILEXERvhdl 0ESSETKEYWORDS access after alias all architecture array assert attribute begin block body buffer bus case component configuration constant disconnect downto else elsif end diff --git a/lib/lexers/vxml.tes b/lib/lexers/vxml.tes index 86980e7..60dc060 100644 --- a/lib/lexers/vxml.tes +++ b/lib/lexers/vxml.tes @@ -5,7 +5,7 @@ } @[lexer.set.vxml]{ - ESSETLEXERLANGUAGEhypertext + ESSETILEXERhypertext 0ESSETKEYWORDS assign audio block break catch choice clear disconnect else elseif emphasis enumerate error exit field filled form goto grammar help if initial link log menu meta diff --git a/lib/lexers/xml.tes b/lib/lexers/xml.tes index 3b6ae41..87ed9b7 100644 --- a/lib/lexers/xml.tes +++ b/lib/lexers/xml.tes @@ -14,7 +14,7 @@ } @[lexer.set.xml]{ - ESSETLEXERLANGUAGExml + ESSETILEXERxml 0ESSETKEYWORDS ! DTD keywords ! 5ESSETKEYWORDS diff --git a/lib/scite2co.lua b/lib/scite2co.lua index e03a59f..8e47ff2 100755 --- a/lib/scite2co.lua +++ b/lib/scite2co.lua @@ -112,11 +112,11 @@ io.write([=[} -- NOTE: The lexer encoded in the property file is not -- a SCLEX_* name but rather the lexer's module name -- as set by the LexerModule constructor. --- Therefore we must emit SCI_SETLEXERLANGUAGE calls here. +-- Therefore we must emit SCI_SETILEXER calls here. local lexer = expand(get_property_by_pattern("lexer.", file_patterns)) io.write([=[ @[lexer.set.]=]..language:lower()..[=[]{ - ESSETLEXERLANGUAGE]=]..lexer..[=[ + ESSETILEXER]=]..lexer..[=[ ]=]) -- print keyword definitions with word wrapping for i = 1, 9 do diff --git a/scintilla b/scintilla deleted file mode 160000 -Subproject aa3365e7a2c4de405dab8ecc27283b3a64935dc diff --git a/scintilla.am b/scintilla.am deleted file mode 100644 index c9cf4c6..0000000 --- a/scintilla.am +++ /dev/null @@ -1,43 +0,0 @@ -# Scintilla/Scinterm are cloned as submodules -# of this repository, so we may give a rule -# for building scintilla.a here. - -if INTERFACE_GTK -MAKE_SCINTILLA = $(MAKE) -C @SCINTILLA_PATH@/gtk \ - GTK3=yes CONFIGFLAGS='@LIBGTK_CFLAGS@' \ - CXXFLAGS='@SCINTILLA_CXXFLAGS@' -else -# FIXME: There is currently no way to override the standard optimization -# flags of Scinterm, so we pass them in CURSES_FLAGS. -MAKE_SCINTILLA = $(MAKE) -C @SCINTERM_PATH@ \ - CURSES_FLAGS='@PDCURSES_CFLAGS@ @XCURSES_CFLAGS@ @NCURSES_CFLAGS@ @SCINTILLA_CXXFLAGS@' -endif - -# Pass toolchain configuration to Scintilla. -# This is what allows cross compilation -MAKE_SCINTILLA += CC='@CC@' CXX='@CXX@' \ - AR='@AR@' RANLIB='@RANLIB@' - -# Build as phony target - we do not know -# scintilla.a's dependencies. -# If it's up to date, the additional recursive -# make call does not hurt. -.PHONY: make-scintilla -make-scintilla: - $(MAKE_SCINTILLA) - -# scintilla.a itself is not phony. -# This avoids unnecessary relinking if it is -# up to date. -# Also note the ; which defines this recipe as -# empty. -@SCINTILLA_PATH@/bin/scintilla.a : make-scintilla; - -.PHONY: clean-local-scintilla -clean-local-scintilla: - $(MAKE_SCINTILLA) clean - -# NOTE: using a separate `clean-local-scintilla` -# target allows us to add more custom rules to the -# including Automake file -clean-local: clean-local-scintilla diff --git a/src/Makefile.am b/src/Makefile.am index 194d8ee..76c5843 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -9,7 +9,7 @@ LIBSCITECO_INTERFACE = interface-curses/libsciteco-interface.la endif include $(top_srcdir)/bootstrap.am -include $(top_srcdir)/scintilla.am +include $(top_srcdir)/contrib/scintilla.am # FIXME: Common flags should be in configure.ac AM_CFLAGS = -std=gnu11 -Wall -Wno-initializer-overrides -Wno-unused-value @@ -74,7 +74,8 @@ sciteco_minimal_SOURCES = symbols-scintilla.c symbols-scilexer.c : sciteco-minimal$(EXEEXT) endif sciteco_minimal_LDADD = libsciteco-base.la \ - @SCINTILLA_PATH@/bin/scintilla.a + @SCINTILLA_PATH@/bin/scintilla.a \ + @LEXILLA_PATH@/bin/liblexilla.a # Scintilla is unfortunately still written in C++, so we must force # Automake to use the C++ linker when linking the binaries. # The following hack is actually advocated in the Automake manual. @@ -102,7 +103,7 @@ symbols-scintilla.c : @SCINTILLA_PATH@/include/Scintilla.h \ $(SCITECO_MINIMAL) -m -- @srcdir@/symbols-extract.tes \ -p "SCI_" -n teco_symbol_list_scintilla $@ $< -symbols-scilexer.c : @SCINTILLA_PATH@/include/SciLexer.h \ +symbols-scilexer.c : @LEXILLA_PATH@/include/SciLexer.h \ symbols-extract.tes $(SCITECO_MINIMAL) -m -- @srcdir@/symbols-extract.tes \ - -p "SCLEX_,SCE_" -n teco_symbol_list_scilexer $@ $< + -p "SCE_" -n teco_symbol_list_scilexer $@ $< diff --git a/src/cmdline.c b/src/cmdline.c index 9e73e4e..018998e 100644 --- a/src/cmdline.c +++ b/src/cmdline.c @@ -923,10 +923,11 @@ teco_state_scintilla_symbols_process_edit_cmd(teco_machine_main_t *ctx, teco_mac : &teco_symbol_list_scilexer; g_auto(teco_string_t) new_chars, new_chars_escaped; gboolean unambiguous = teco_symbol_list_auto_complete(list, symbol, &new_chars); + + teco_machine_stringbuilding_escape(stringbuilding_ctx, new_chars.data, new_chars.len, &new_chars_escaped); /* - * FIXME: Does not escape `,`. Also, <^Q,> is not allowed currently? + * FIXME: Does not escape `,`. */ - teco_machine_stringbuilding_escape(stringbuilding_ctx, new_chars.data, new_chars.len, &new_chars_escaped); if (unambiguous) teco_string_append_c(&new_chars_escaped, ','); diff --git a/src/interface-curses/interface.c b/src/interface-curses/interface.c index 5470264..825a312 100644 --- a/src/interface-curses/interface.c +++ b/src/interface-curses/interface.c @@ -57,7 +57,7 @@ #endif #include <Scintilla.h> -#include <ScintillaTerm.h> +#include <ScintillaCurses.h> #include "sciteco.h" #include "string-utils.h" @@ -262,7 +262,7 @@ teco_xterm_version(void) */ static void -teco_view_scintilla_notify(Scintilla *sci, int idFrom, void *notify, void *user_data) +teco_view_scintilla_notify(void *sci, int iMessage, SCNotification *notify, void *user_data) { teco_interface_process_notify(notify); } @@ -270,31 +270,31 @@ teco_view_scintilla_notify(Scintilla *sci, int idFrom, void *notify, void *user_ teco_view_t * teco_view_new(void) { - return (teco_view_t *)scintilla_new(teco_view_scintilla_notify); + return (teco_view_t *)scintilla_new(teco_view_scintilla_notify, NULL); } static inline void teco_view_noutrefresh(teco_view_t *ctx) { - scintilla_noutrefresh((Scintilla *)ctx); + scintilla_noutrefresh(ctx); } static inline WINDOW * teco_view_get_window(teco_view_t *ctx) { - return scintilla_get_window((Scintilla *)ctx); + return scintilla_get_window(ctx); } sptr_t teco_view_ssm(teco_view_t *ctx, unsigned int iMessage, uptr_t wParam, sptr_t lParam) { - return scintilla_send_message((Scintilla *)ctx, iMessage, wParam, lParam); + return scintilla_send_message(ctx, iMessage, wParam, lParam); } void teco_view_free(teco_view_t *ctx) { - scintilla_delete((Scintilla *)ctx); + scintilla_delete(ctx); } static struct { diff --git a/src/interface-gtk/interface.c b/src/interface-gtk/interface.c index 567f034..5b9f530 100644 --- a/src/interface-gtk/interface.c +++ b/src/interface-gtk/interface.c @@ -92,8 +92,8 @@ teco_bgr2rgb(guint32 bgr) */ static void -teco_view_scintilla_notify(ScintillaObject *sci, gint id, - struct SCNotification *notify, gpointer user_data) +teco_view_scintilla_notify(ScintillaObject *sci, gint iMessage, + SCNotification *notify, gpointer user_data) { teco_interface_process_notify(notify); } diff --git a/src/interface.c b/src/interface.c index 21a83ff..2c06cd0 100644 --- a/src/interface.c +++ b/src/interface.c @@ -27,9 +27,9 @@ #include <glib/gstdio.h> #include <Scintilla.h> -#include <SciLexer.h> #include "sciteco.h" +#include "string-utils.h" #include "undo.h" #include "view.h" #include "interface.h" @@ -112,7 +112,7 @@ teco_interface_stdio_vmsg(teco_msg_t type, const gchar *fmt, va_list ap) } void -teco_interface_process_notify(struct SCNotification *notify) +teco_interface_process_notify(SCNotification *notify) { #ifdef DEBUG g_printf("SCINTILLA NOTIFY: code=%d\n", notify->nmhdr.code); diff --git a/src/interface.h b/src/interface.h index c396225..ff98be0 100644 --- a/src/interface.h +++ b/src/interface.h @@ -149,7 +149,7 @@ gboolean teco_interface_event_loop(GError **error); */ /** @protected */ void teco_interface_stdio_vmsg(teco_msg_t type, const gchar *fmt, va_list ap); -void teco_interface_process_notify(struct SCNotification *notify); +void teco_interface_process_notify(SCNotification *notify); /** @pure */ void teco_interface_cleanup(void); diff --git a/src/parser.h b/src/parser.h index b594edc..21c0e20 100644 --- a/src/parser.h +++ b/src/parser.h @@ -405,7 +405,6 @@ typedef struct { typedef struct { unsigned int iMessage; uptr_t wParam; - sptr_t lParam; } teco_machine_scintilla_t; typedef enum { diff --git a/src/symbols.c b/src/symbols.c index 003d745..fc2ec5b 100644 --- a/src/symbols.c +++ b/src/symbols.c @@ -24,6 +24,9 @@ #include <glib.h> +#include <Scintilla.h> +#include <Lexilla.h> + #include "sciteco.h" #include "string-utils.h" #include "error.h" @@ -194,26 +197,13 @@ teco_scintilla_parse_symbols(teco_machine_scintilla_t *scintilla, const teco_str gint v = teco_symbol_list_lookup(&teco_symbol_list_scilexer, symbols[1], ""); if (v < 0) { g_set_error(error, TECO_ERROR, TECO_ERROR_FAILED, - "Unknown Scintilla Lexer symbol \"%s\"", + "Unknown Lexilla style symbol \"%s\"", symbols[1]); return FALSE; } scintilla->wParam = v; } - if (!symbols[2]) - return TRUE; - if (*symbols[2]) { - gint v = teco_symbol_list_lookup(&teco_symbol_list_scilexer, symbols[2], ""); - if (v < 0) { - g_set_error(error, TECO_ERROR, TECO_ERROR_FAILED, - "Unknown Scintilla Lexer symbol \"%s\"", - symbols[2]); - return FALSE; - } - scintilla->lParam = v; - } - return TRUE; } @@ -263,35 +253,40 @@ gboolean teco_state_scintilla_symbols_process_edit_cmd(teco_machine_main_t *ctx, /*$ ES scintilla message * -- Send Scintilla message - * [lParam[,wParam]]ESmessage[,wParam[,lParam]]$[lParam]$ -> result + * [lParam,][wParam,][message]ES[message][,wParam]$[lParam]$ -> result * - * Send Scintilla message with code specified by symbolic - * name <message>, <wParam> and <lParam>. - * <wParam> may be symbolic when specified as part of the - * first string argument. - * If not it is popped from the stack. + * Send Scintilla message with code specified by + * <message>, <wParam> and <lParam>. + * <message> and <wParam> may be a symbolic names when specified as + * part of the first string argument. + * If not, they are popped from the stack. * <lParam> may be specified as a constant string whose * pointer is passed to Scintilla if specified as the second * string argument. + * It is automatically null-terminated. * If the second string argument is empty, <lParam> is popped * from the stack instead. * Parameters popped from the stack may be omitted, in which * case 0 is implied. * The message's return value is pushed onto the stack. * - * All messages defined by Scintilla (as C macros) can be - * used by passing their name as a string to ES + * All messages defined by Scintilla (as C macros in Scintilla.h) + * can be used by passing their name as a string to ES * (e.g. ESSCI_LINESONSCREEN...). * The \(lqSCI_\(rq prefix may be omitted and message symbols * are case-insensitive. - * Only the Scintilla lexer symbols (SCLEX_..., SCE_...) - * may be used symbolically with the ES command as <wParam>, - * other values must be passed as integers on the stack. + * Only the Lexilla style names (SCE_...) + * may be used symbolically with the ES command as <wParam>. * In interactive mode, symbols may be auto-completed by * pressing Tab. * String-building characters are by default interpreted * in the string arguments. * + * As a special exception, you can and must specify a + * Lexilla lexer name as a string argument for the \fBSCI_SETILEXER\fP + * message, ie. in order to load a Lexilla lexer + * (this works similar to the old \fBSCI_SETLEXERLANGUAGE\fP message). + * * .BR Warning : * Almost all Scintilla messages may be dispatched using * this command. @@ -322,26 +317,36 @@ teco_state_scintilla_lparam_done(teco_machine_main_t *ctx, const teco_string_t * if (ctx->mode > TECO_MODE_NORMAL) return &teco_state_start; - if (teco_string_contains(str, '\0')) { - g_set_error_literal(error, TECO_ERROR, TECO_ERROR_FAILED, - "Scintilla lParam string must not contain null-byte."); - return NULL; - } + sptr_t lParam = 0; + + if (ctx->scintilla.iMessage == SCI_SETILEXER) { + if (teco_string_contains(str, '\0')) { + g_set_error_literal(error, TECO_ERROR, TECO_ERROR_FAILED, + "Lexer name must not contain null-byte."); + return NULL; + } - if (!ctx->scintilla.lParam) { - if (str->len > 0) { - ctx->scintilla.lParam = (sptr_t)str->data; - } else { - teco_int_t v; - if (!teco_expressions_pop_num_calc(&v, 0, error)) - return NULL; - ctx->scintilla.lParam = v; + lParam = (sptr_t)CreateLexer(str->data); + if (!lParam) { + g_set_error(error, TECO_ERROR, TECO_ERROR_FAILED, + "Lexilla lexer \"%s\" not found.", str->data); + return NULL; } + } else if (str->len > 0) { + /* + * NOTE: There may even be messages that read strings + * with embedded nulls. + */ + lParam = (sptr_t)str->data; + } else { + teco_int_t v; + if (!teco_expressions_pop_num_calc(&v, 0, error)) + return NULL; + lParam = v; } teco_expressions_push(teco_interface_ssm(ctx->scintilla.iMessage, - ctx->scintilla.wParam, - ctx->scintilla.lParam)); + ctx->scintilla.wParam, lParam)); return &teco_state_start; } @@ -77,12 +77,14 @@ teco_view_setup(teco_view_t *ctx) * a consistent look across UIs if no profile * is used. This makes writing UI-agnostic profiles * and color schemes easier. + * * FIXME: Some settings like fonts should probably * be set per UI (i.e. Scinterm doesn't use it, * GTK might try to use a system-wide default * monospaced font). */ - teco_view_ssm(ctx, SCI_SETCARETSTYLE, CARETSTYLE_BLOCK, 0); + teco_view_ssm(ctx, SCI_SETCARETSTYLE, + CARETSTYLE_BLOCK | CARETSTYLE_OVERSTRIKE_BLOCK | CARETSTYLE_BLOCK_AFTER, 0); teco_view_ssm(ctx, SCI_SETCARETPERIOD, 0, 0); teco_view_ssm(ctx, SCI_SETCARETFORE, 0xFFFFFF, 0); |