From e7a1d14c76ca29bf564080e8892a68c531dc3ac3 Mon Sep 17 00:00:00 2001 From: laalsaas Date: Mon, 5 Feb 2024 03:46:28 +0100 Subject: [PATCH 1/3] Acknowledgements: add support for MPL --- src/assets/build_assets/acknowledgements.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/assets/build_assets/acknowledgements.rs b/src/assets/build_assets/acknowledgements.rs index c4fde919..4697604b 100644 --- a/src/assets/build_assets/acknowledgements.rs +++ b/src/assets/build_assets/acknowledgements.rs @@ -95,6 +95,9 @@ fn include_license_in_acknowledgments(license_text: &str) -> bool { // Apache 2.0 "Apache License Version 2.0, January 2004 http://www.apache.org/licenses/", "Licensed under the Apache License, Version 2.0 (the \"License\");", + + // MPL + "Mozilla Public License, version 2.0", ]; license_contains_marker(license_text, &markers) From edb2342c24f7d0edcb8466a28edf31f6af3f4a2c Mon Sep 17 00:00:00 2001 From: laalsaas Date: Mon, 5 Feb 2024 03:45:39 +0100 Subject: [PATCH 2/3] Add Prolog Syntax Highlighting --- .gitmodules | 3 + CHANGELOG.md | 1 + assets/syntaxes/02_Extra/Prolog | 1 + .../syntaxes/02_Extra/Prolog.sublime-syntax | 137 ++++++++++++++++++ .../syntax-tests/highlighted/Prolog/test.pro | 34 +++++ tests/syntax-tests/source/Prolog/test.pro | 34 +++++ 6 files changed, 210 insertions(+) create mode 160000 assets/syntaxes/02_Extra/Prolog create mode 100644 assets/syntaxes/02_Extra/Prolog.sublime-syntax create mode 100644 tests/syntax-tests/highlighted/Prolog/test.pro create mode 100644 tests/syntax-tests/source/Prolog/test.pro diff --git a/.gitmodules b/.gitmodules index 7c8a7724..c347ff33 100644 --- a/.gitmodules +++ b/.gitmodules @@ -260,3 +260,6 @@ [submodule "assets/syntaxes/02_Extra/vscode-wgsl"] path = assets/syntaxes/02_Extra/vscode-wgsl url = https://github.com/PolyMeilex/vscode-wgsl.git +[submodule "assets/syntaxes/02_Extra/Prolog"] + path = assets/syntaxes/02_Extra/Prolog + url = https://github.com/alnkpa/sublimeprolog diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cc0e773..8dde694a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,6 +43,7 @@ - Added auto detect syntax for `.jsonc` #2795 (@mxaddict) - Added auto detect syntax for `.aws/{config,credentials}` #2795 (@mxaddict) - Add syntax mapping for Wireguard config #2874 (@cyqsimon) +- Add Prolog syntax, see #2848 (@laalsaas) ## Themes diff --git a/assets/syntaxes/02_Extra/Prolog b/assets/syntaxes/02_Extra/Prolog new file mode 160000 index 00000000..9e8e142e --- /dev/null +++ b/assets/syntaxes/02_Extra/Prolog @@ -0,0 +1 @@ +Subproject commit 9e8e142e55557465511338d5b26ca585cb729310 diff --git a/assets/syntaxes/02_Extra/Prolog.sublime-syntax b/assets/syntaxes/02_Extra/Prolog.sublime-syntax new file mode 100644 index 00000000..3867d12a --- /dev/null +++ b/assets/syntaxes/02_Extra/Prolog.sublime-syntax @@ -0,0 +1,137 @@ +%YAML 1.2 +--- +# http://www.sublimetext.com/docs/3/syntax.html +name: SWI-Prolog +comment: This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. +file_extensions: + - pro + - prolog + - swiplrc +scope: source.prolog +contexts: + main: + - include: comments + - match: (?<=:-)\s* + push: + - meta_scope: meta.clause.body.prolog + - match: (\.) + captures: + 1: keyword.control.clause.bodyend.prolog + pop: true + - include: comments + - include: builtin + - include: controlandkeywords + - include: atom + - include: variable + - include: constants + - match: . + scope: meta.clause.body.prolog + - match: '^\s*([a-z][a-zA-Z0-9_]*)(\(?)(?=.*:-.*)' + captures: + 1: entity.name.function.clause.prolog + 2: punctuation.definition.parameters.begin + push: + - meta_scope: meta.clause.head.prolog + - match: ((\)?))\s*(:-) + captures: + 1: punctuation.definition.parameters.end + 3: keyword.control.clause.bodybegin.prolog + pop: true + - include: atom + - include: variable + - include: constants + - match: '^\s*([a-z][a-zA-Z0-9_]*)(\(?)(?=.*-->.*)' + captures: + 1: entity.name.function.dcg.prolog + 2: punctuation.definition.parameters.begin + push: + - meta_scope: meta.dcg.head.prolog + - match: ((\)?))\s*(-->) + captures: + 1: punctuation.definition.parameters.end + 3: keyword.control.dcg.bodybegin.prolog + pop: true + - include: atom + - include: variable + - include: constants + - match: (?<=-->)\s* + push: + - meta_scope: meta.dcg.body.prolog + - match: (\.) + captures: + 1: keyword.control.dcg.bodyend.prolog + pop: true + - include: comments + - include: controlandkeywords + - include: atom + - include: variable + - include: constants + - match: . + scope: meta.dcg.body.prolog + - match: '^\s*([a-zA-Z][a-zA-Z0-9_]*)(\(?)(?!.*(:-|-->).*)' + captures: + 1: entity.name.function.fact.prolog + 2: punctuation.definition.parameters.begin + push: + - meta_scope: meta.fact.prolog + - match: ((\)?))\s*(\.)(?!\d+) + captures: + 1: punctuation.definition.parameters.end + 3: keyword.control.fact.end.prolog + pop: true + - include: atom + - include: variable + - include: constants + atom: + - match: '(?) + captures: + 1: keyword.control.if.prolog + push: + - meta_scope: meta.if.prolog + - match: (;) + captures: + 1: keyword.control.else.prolog + pop: true + - include: main + - include: builtin + - include: comments + - include: atom + - include: variable + - match: . + scope: meta.if.body.prolog + - match: "!" + scope: keyword.control.cut.prolog + - match: (\s(is)\s)|=:=|=?\\?=|\\\+|@?>|@?=?<|\+|\*|\- + scope: keyword.operator.prolog + variable: + - match: "(? Date: Mon, 5 Feb 2024 03:48:07 +0100 Subject: [PATCH 3/3] Mention SumblimeSuntaxConvertor in assets-doc --- doc/assets.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/assets.md b/doc/assets.md index a06a1e67..85f17f58 100644 --- a/doc/assets.md +++ b/doc/assets.md @@ -15,7 +15,9 @@ in the `.sublime-syntax` format. 2. If the Sublime Text syntax is only available as a `.tmLanguage` file, open the file in Sublime Text and convert it to a `.sublime-syntax` file via *Tools* -> *Developer* -> - *New Syntax from XXX.tmLanguage...*. Save the new file in the `assets/syntaxes` folder. + *New Syntax from XXX.tmLanguage...*. Alternatively, you can use the + [Sublime Syntax Convertor](https://github.com/aziz/SublimeSyntaxConvertor). + Save the new file in the `assets/syntaxes` folder. If only `.tmLanguage.json` or `.tmLanguage.yml` file is available, use [PackageDev](https://packagecontrol.io/packages/PackageDev) to convert it to `.tmLanguage.plist` format and then rename the converted file to `.tmLanguage` file.