1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-06 23:56:28 +02:00

userdiff: add Octave

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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Boxuan Li 2019-05-18 11:46:23 +08:00 committed by Junio C Hamano
parent ab15ad1a3b
commit 91bf382fcf
7 changed files with 23 additions and 2 deletions

View File

@ -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 language.
- `objc` suitable for source code in the Objective-C language.

View File

@ -0,0 +1,5 @@
classdef RIGHT
properties
ChangeMe
end
end

4
t/t4018/matlab-function Normal file
View File

@ -0,0 +1,4 @@
function y = RIGHT()
x = 5;
y = ChangeMe + x;
end

View File

@ -0,0 +1,3 @@
%%% RIGHT section
# this is octave script
ChangeMe = 1;

View File

@ -0,0 +1,3 @@
## RIGHT section
# this is octave script
ChangeMe = 1;

3
t/t4018/matlab-section Normal file
View File

@ -0,0 +1,3 @@
%% RIGHT section
% this is understood by both matlab and octave
ChangeMe = 1;

View File

@ -58,7 +58,10 @@ 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 */