git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v6] userdiff: add Octave

From
Boxuan Li <liboxuan@connect.hku.hk>
Date
May 21, 2019, 14:57 UTC
Message-ID
<20190521145718.56693-1-liboxuan@connect.hku.hk>
In-Reply-To
<3b7a22e8-0310-3738-0476-b6d73f187331@kdbg.org>

Octave pattern is almost the same as matlab, except that '%%%' and '##' can also be used to begin code sections, in addition to '%%' that is understood by both. Octave pattern is merged into Matlab pattern. Test cases for the hunk header patterns of matlab and octave under t/t4018 are added.

Signed-off-by: Boxuan Li <liboxuan@connect.hku.hk>
Acked-by: Johannes Sixt <j6t@kdbg.org>
---
Thanks to review from Johannes, update from v5:
Fix grammar and style
---
 Documentation/gitattributes.txt | 2 +-
 t/t4018/matlab-class-definition | 5 +++++
 t/t4018/matlab-function         | 4 ++++
 t/t4018/matlab-octave-section-1 | 3 +++
 t/t4018/matlab-octave-section-2 | 3 +++
 t/t4018/matlab-section          | 3 +++
 userdiff.c                      | 7 ++++++-
 7 files changed, 25 insertions(+), 2 deletions(-)
 create mode 100644 t/t4018/matlab-class-definition
 create mode 100644 t/t4018/matlab-function
 create mode 100644 t/t4018/matlab-octave-section-1
 create mode 100644 t/t4018/matlab-octave-section-2
 create mode 100644 t/t4018/matlab-section
diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt
index 4fb20cd0e9..e387cc6dda 100644
--- a/Documentation/gitattributes.txt
+++ b/Documentation/gitattributes.txt
@@ -819,7 +819,7 @@ patterns are available:
 
 - `java` suitable for source code in the Java language.
 
-- `matlab` suitable for source code in the MATLAB language.
+- `matlab` suitable for source code in the MATLAB and Octave languages.
 
 - `objc` suitable for source code in the Objective-C language.
 
diff --git a/t/t4018/matlab-class-definition b/t/t4018/matlab-class-definition
new file mode 100644
index 0000000000..84daedfb4e
--- /dev/null
+++ b/t/t4018/matlab-class-definition
@@ -0,0 +1,5 @@
+classdef RIGHT
+    properties
+        ChangeMe
+    end
+end
diff --git a/t/t4018/matlab-function b/t/t4018/matlab-function
new file mode 100644
index 0000000000..897a9b13ff
--- /dev/null
+++ b/t/t4018/matlab-function
@@ -0,0 +1,4 @@
+function y = RIGHT()
+x = 5;
+y = ChangeMe + x;
+end
diff --git a/t/t4018/matlab-octave-section-1 b/t/t4018/matlab-octave-section-1
new file mode 100644
index 0000000000..3bb6c4670e
--- /dev/null
+++ b/t/t4018/matlab-octave-section-1
@@ -0,0 +1,3 @@
+%%% RIGHT section
+# this is octave script
+ChangeMe = 1;
diff --git a/t/t4018/matlab-octave-section-2 b/t/t4018/matlab-octave-section-2
new file mode 100644
index 0000000000..ab2980f7f2
--- /dev/null
+++ b/t/t4018/matlab-octave-section-2
@@ -0,0 +1,3 @@
+## RIGHT section
+# this is octave script
+ChangeMe = 1;
diff --git a/t/t4018/matlab-section b/t/t4018/matlab-section
new file mode 100644
index 0000000000..5ea59a5de0
--- /dev/null
+++ b/t/t4018/matlab-section
@@ -0,0 +1,3 @@
+%% RIGHT section
+% this is understood by both matlab and octave
+ChangeMe = 1;
diff --git a/userdiff.c b/userdiff.c
index 3a78fbf504..04270fb4d7 100644
--- a/userdiff.c
+++ b/userdiff.c
@@ -58,7 +58,12 @@ PATTERNS("java",
 	 "|[-+*/<>%&^|=!]="
 	 "|--|\\+\\+|<<=?|>>>?=?|&&|\\|\\|"),
 PATTERNS("matlab",
-	 "^[[:space:]]*((classdef|function)[[:space:]].*)$|^%%[[:space:]].*$",
+	 /*
+	  * Octave pattern is mostly the same as matlab, except that '%%%' and
+	  * '##' can also be used to begin code sections, in addition to '%%'
+	  * that is understood by both.
+	  */
+	 "^[[:space:]]*((classdef|function)[[:space:]].*)$|^(%%%?|##)[[:space:]].*$",
 	 "[a-zA-Z_][a-zA-Z0-9_]*|[-+0-9.e]+|[=~<>]=|\\.[*/\\^']|\\|\\||&&"),
 PATTERNS("objc",
 	 /* Negate C statements that can look like functions */
-- 
2.21.0.777.g83232e3864
Previous: Johannes SixtNext: Junio C Hamano
Message 19 of 22 in “doc/gitattributes: add Octave”
  1. doc/gitattributes: add OctaveBoxuan Li, May 10, 2019
  2. Philip OakleyMay 10, 2019
  3. Ævar Arnfjörð BjarmasonMay 10, 2019
  4. LI, BO XUANMay 11, 2019
  5. userdiff.c & doc/gitattributes.txt: add OctaveBoxuan Li, May 11, 2019
  6. userdiff.c & doc/gitattributes.txt: add OctaveBoxuan Li, May 11, 2019
  7. Junio C HamanoMay 15, 2019
  8. Johannes SixtMay 15, 2019
  9. LI, BO XUANMay 15, 2019
  10. Johannes SixtMay 15, 2019
  11. Junio C HamanoMay 16, 2019
  12. Johannes SixtMay 16, 2019
  13. Junio C HamanoMay 16, 2019
  14. LI, BO XUANMay 17, 2019
  15. Johannes SixtMay 17, 2019
  16. userdiff.c & doc/gitattributes.txt: add OctaveBoxuan Li, May 15, 2019
  17. userdiff: add OctaveBoxuan Li, May 18, 2019
  18. Johannes SixtMay 20, 2019
  19. userdiff: add OctaveBoxuan Li, May 21, 2019
  20. Junio C HamanoMay 28, 2019
  21. Johannes SixtMay 28, 2019
  22. userdiff: fix grammar and style issuesBoxuan Li, May 29, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.