All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Add Pascal/Delphi (.pas file) funcname pattern.
@ 2008-08-01 19:45 Avery Pennarun
  2008-08-01 20:16 ` Junio C Hamano
  2008-08-01 20:20 ` Petr Baudis
  0 siblings, 2 replies; 6+ messages in thread
From: Avery Pennarun @ 2008-08-01 19:45 UTC (permalink / raw)
  To: gitster, git; +Cc: Avery Pennarun

Finds classes, records, functions, procedures, and sections.  Most lines
need to start at the first column, or else there's no way to differentiate
a procedure's definition from its declaration.

Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
---

The Ruby funcname pattern patch inspired me.  Although unlike him, I didn't
check with anyone else for confirmation.  How many Pascal programmers can
there possibly be? :)

 diff.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/diff.c b/diff.c
index cbf2547..c73ba69 100644
--- a/diff.c
+++ b/diff.c
@@ -1380,6 +1380,10 @@ static struct builtin_funcname_pattern {
 			"^[ 	]*\\(\\([ 	]*"
 			"[A-Za-z_][A-Za-z_0-9]*\\)\\{2,\\}"
 			"[ 	]*([^;]*\\)$" },
+	{ "pas", "\\(^\\(procedure\\|function\\|constructor\\|"
+			"destructor\\|interface\\|implementation\\|"
+			"type|initialization|finalization\\).*$\\)"
+			"\\|\\(^.*=[ \t]*\\(class\\|record\\).*$\\)" },
 	{ "tex", "^\\(\\\\\\(sub\\)*section{.*\\)$" },
 };
 
-- 
1.6.0.rc1.34.g23b24.dirty

^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [PATCH] Add Pascal/Delphi (.pas file) funcname pattern.
@ 2008-08-01 21:00 Avery Pennarun
  0 siblings, 0 replies; 6+ messages in thread
From: Avery Pennarun @ 2008-08-01 21:00 UTC (permalink / raw)
  To: gitster, git, pasky; +Cc: Avery Pennarun

Finds classes, records, functions, procedures, and sections.  Most lines
need to start at the first column, or else there's no way to differentiate
a procedure's definition from its declaration.

Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
---
 diff.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)
 
Changes since v1:

- Tried using '\n' to separate the two parts of the regex, but it doesn't
  work.  Seems the lines are combined with AND instead of OR.  Also can't
  reduce the number of parens since only the part in parens is returned
  as the result string.
  
- Rename 'pas' type to 'pascal'

- Remove unnecessary 'type' match.

diff --git a/diff.c b/diff.c
index cbf2547..2f88e6d 100644
--- a/diff.c
+++ b/diff.c
@@ -1380,6 +1380,12 @@ static struct builtin_funcname_pattern {
 			"^[ 	]*\\(\\([ 	]*"
 			"[A-Za-z_][A-Za-z_0-9]*\\)\\{2,\\}"
 			"[ 	]*([^;]*\\)$" },
+	{ "pascal", "^\\(\\(procedure\\|function\\|constructor\\|"
+			"destructor\\|interface\\|implementation\\|"
+			"initialization\\|finalization\\)[ \t]*.*\\)$"
+			"\\|"
+			"^\\(.*=[ \t]*\\(class\\|record\\).*\\)$" 
+			},
 	{ "tex", "^\\(\\\\\\(sub\\)*section{.*\\)$" },
 };
 
-- 
1.5.6

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-08-01 21:01 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-01 19:45 [PATCH] Add Pascal/Delphi (.pas file) funcname pattern Avery Pennarun
2008-08-01 20:16 ` Junio C Hamano
2008-08-01 20:38   ` Avery Pennarun
2008-08-01 20:20 ` Petr Baudis
2008-08-01 20:40   ` Avery Pennarun
  -- strict thread matches above, loose matches on Subject: below --
2008-08-01 21:00 Avery Pennarun

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.