Merge branch 'ln/userdiff-elixir'
The patterns to detect function boundary for Elixir language has been added. * ln/userdiff-elixir: userdiff: add Elixir to supported userdiff languagesmaint
commit
376e7309e1
|
@ -812,6 +812,8 @@ patterns are available:
|
||||||
|
|
||||||
- `dts` suitable for devicetree (DTS) files.
|
- `dts` suitable for devicetree (DTS) files.
|
||||||
|
|
||||||
|
- `elixir` suitable for source code in the Elixir language.
|
||||||
|
|
||||||
- `fortran` suitable for source code in the Fortran language.
|
- `fortran` suitable for source code in the Fortran language.
|
||||||
|
|
||||||
- `fountain` suitable for Fountain documents.
|
- `fountain` suitable for Fountain documents.
|
||||||
|
|
|
@ -32,6 +32,7 @@ diffpatterns="
|
||||||
csharp
|
csharp
|
||||||
css
|
css
|
||||||
dts
|
dts
|
||||||
|
elixir
|
||||||
fortran
|
fortran
|
||||||
fountain
|
fountain
|
||||||
golang
|
golang
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
defmodule RIGHT do
|
||||||
|
end
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# ChangeMe; do not pick up 'end' line
|
|
@ -0,0 +1,6 @@
|
||||||
|
defmodule Test do
|
||||||
|
test "RIGHT" do
|
||||||
|
assert true == true
|
||||||
|
assert ChangeMe
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,5 @@
|
||||||
|
def function(RIGHT, arg) do
|
||||||
|
# comment
|
||||||
|
# comment
|
||||||
|
ChangeMe
|
||||||
|
end
|
|
@ -0,0 +1,5 @@
|
||||||
|
defmacro foo(RIGHT) do
|
||||||
|
# Code
|
||||||
|
# Code
|
||||||
|
ChangeMe
|
||||||
|
end
|
|
@ -0,0 +1,9 @@
|
||||||
|
defmodule RIGHT do
|
||||||
|
@moduledoc """
|
||||||
|
Foo bar
|
||||||
|
"""
|
||||||
|
|
||||||
|
def ChangeMe(a) where is_map(a) do
|
||||||
|
a
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,8 @@
|
||||||
|
defmodule Foo do
|
||||||
|
def fun(RIGHT) do
|
||||||
|
# Code
|
||||||
|
# Code
|
||||||
|
# Code
|
||||||
|
ChangeMe
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,9 @@
|
||||||
|
defmodule MyApp.RIGHT do
|
||||||
|
@moduledoc """
|
||||||
|
Foo bar
|
||||||
|
"""
|
||||||
|
|
||||||
|
def ChangeMe(a) where is_map(a) do
|
||||||
|
a
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,5 @@
|
||||||
|
defp function(RIGHT, arg) do
|
||||||
|
# comment
|
||||||
|
# comment
|
||||||
|
ChangeMe
|
||||||
|
end
|
|
@ -0,0 +1,6 @@
|
||||||
|
defprotocol RIGHT do
|
||||||
|
@doc """
|
||||||
|
Calculates the size (and not the length!) of a data structure
|
||||||
|
"""
|
||||||
|
def size(data, ChangeMe)
|
||||||
|
end
|
|
@ -0,0 +1,5 @@
|
||||||
|
defimpl RIGHT do
|
||||||
|
# Docs
|
||||||
|
# Docs
|
||||||
|
def foo(ChangeMe), do: :ok
|
||||||
|
end
|
12
userdiff.c
12
userdiff.c
|
@ -32,6 +32,18 @@ PATTERNS("dts",
|
||||||
/* Property names and math operators */
|
/* Property names and math operators */
|
||||||
"[a-zA-Z0-9,._+?#-]+"
|
"[a-zA-Z0-9,._+?#-]+"
|
||||||
"|[-+*/%&^|!~]|>>|<<|&&|\\|\\|"),
|
"|[-+*/%&^|!~]|>>|<<|&&|\\|\\|"),
|
||||||
|
PATTERNS("elixir",
|
||||||
|
"^[ \t]*((def(macro|module|impl|protocol|p)?|test)[ \t].*)$",
|
||||||
|
/* Atoms, names, and module attributes */
|
||||||
|
"|[@:]?[a-zA-Z0-9@_?!]+"
|
||||||
|
/* Numbers with specific base */
|
||||||
|
"|[-+]?0[xob][0-9a-fA-F]+"
|
||||||
|
/* Numbers */
|
||||||
|
"|[-+]?[0-9][0-9_.]*([eE][-+]?[0-9_]+)?"
|
||||||
|
/* Operators and atoms that represent them */
|
||||||
|
"|:?(\\+\\+|--|\\.\\.|~~~|<>|\\^\\^\\^|<?\\|>|<<<?|>?>>|<<?~|~>?>|<~>|<=|>=|===?|!==?|=~|&&&?|\\|\\|\\|?|=>|<-|\\\\\\\\|->)"
|
||||||
|
/* Not real operators, but should be grouped */
|
||||||
|
"|:?%[A-Za-z0-9_.]\\{\\}?"),
|
||||||
IPATTERN("fortran",
|
IPATTERN("fortran",
|
||||||
"!^([C*]|[ \t]*!)\n"
|
"!^([C*]|[ \t]*!)\n"
|
||||||
"!^[ \t]*MODULE[ \t]+PROCEDURE[ \t]\n"
|
"!^[ \t]*MODULE[ \t]+PROCEDURE[ \t]\n"
|
||||||
|
|
Loading…
Reference in New Issue