[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/csharp-mode 8ec64b4 136/459: Merge pull request #57 fro
From: |
ELPA Syncer |
Subject: |
[elpa] externals/csharp-mode 8ec64b4 136/459: Merge pull request #57 from josteink/imenu-fixes |
Date: |
Sun, 22 Aug 2021 13:59:13 -0400 (EDT) |
branch: externals/csharp-mode
commit 8ec64b453d47b26dfd66ceb19772cc4166cc86ff
Merge: 0a61f21 f367ef6
Author: Jostein Kjønigsen <jostein@kjonigsen.net>
Commit: Jostein Kjønigsen <jostein@kjonigsen.net>
Merge pull request #57 from josteink/imenu-fixes
Imenu fixes
---
csharp-mode-tests.el | 30 ++++++++++++++++++++++++++++++
csharp-mode.el | 7 ++++++-
test-files/imenu-comment-test.cs | 16 ++++++++++++++++
test-files/imenu-generics-test.cs | 19 +++++++++++++++++++
4 files changed, 71 insertions(+), 1 deletion(-)
diff --git a/csharp-mode-tests.el b/csharp-mode-tests.el
index 0fb7661..e44803c 100644
--- a/csharp-mode-tests.el
+++ b/csharp-mode-tests.el
@@ -166,6 +166,36 @@
(result (csharp--imenu-remove-param-names-from-paramlist
test-value)))
(should (equal expected-value result)))))
+(ert-deftest imenu-parsing-supports-generic-parameters ()
+ (let* ((find-file-hook '()) ;; avoid vc-mode file-hooks when opening!
+ (buffer (find-file-read-only
"./test-files/imenu-generics-test.cs"))
+ (beginning-of-buffer)
+ (imenu-index (csharp--imenu-create-index-helper nil "" t t)) ;;
same line as in `csharp-imenu-create-index'.
+ (class-entry (cadr imenu-index))
+ (class-entries (cdr class-entry))
+ (imenu-items (mapconcat 'car class-entries " ")))
+
+ ;; ("(top)" "method void NoGeneric(this IAppBuilder, params object[])"
"method void OneGeneric<T>(this IAppBuilder, params object[])" "method void
TwoGeneric<T1,T2>(this IAppBuilder, params object[])" "(bottom)")
+ (should (string-match-p "NoGeneric" imenu-items))
+ (should (string-match-p "OneGeneric<T>" imenu-items))
+ (should (string-match-p "TwoGeneric<T1,T2>" imenu-items))
+ (kill-buffer buffer)))
+
+(ert-deftest imenu-parsing-supports-comments ()
+ (let* ((find-file-hook '()) ;; avoid vc-mode file-hooks when opening!
+ (buffer (find-file-read-only
"./test-files/imenu-comment-test.cs"))
+ (beginning-of-buffer)
+ (imenu-index (csharp--imenu-create-index-helper nil "" t t)) ;;
same line as in `csharp-imenu-create-index'.
+ (class-entry (cadr imenu-index))
+ (class-entries (cdr class-entry))
+ (imenu-items (mapconcat 'car class-entries " ")))
+
+ ;; ("(top)" "method void NoGeneric(this IAppBuilder, params object[])"
"method void OneGeneric<T>(this IAppBuilder, params object[])" "method void
TwoGeneric<T1,T2>(this IAppBuilder, params object[])" "(bottom)")
+ (should (string-match-p "HasNoComment" imenu-items))
+ (should (string-match-p "HasComment" imenu-items))
+ (should (string-match-p "HasCommentToo" imenu-items))
+ (kill-buffer buffer)))
+
(defvar csharp-hook1 nil)
(defvar csharp-hook2 nil)
diff --git a/csharp-mode.el b/csharp-mode.el
index 21ea1e5..e774a55 100644
--- a/csharp-mode.el
+++ b/csharp-mode.el
@@ -284,6 +284,8 @@
;; - Fix all runtime warnings
;; - Fix error with string-values in #region directives.
;;
+;; 0.8.12 2015 November 29nth
+;; - Fix issues with imenu indexing.
(require 'cc-mode)
(require 'cl-lib)
@@ -1483,9 +1485,12 @@ Most other csharp functions are not instrumented.
"\\(?:override[ \t\n\r\f\v]+\\)?" ;; optional
"\\([[:alpha:]_][^\t\(\n]+\\)" ;; 2. return type -
possibly generic
"[ \t\n\r\f\v]+"
- "\\([[:alpha:]_][[:alnum:]_]*\\)" ;; 3. name of func
+ "\\([[:alpha:]_][[:alnum:]_]*" ;; 3. begin name of func
+ "\\(?:<\\(?:[[:alpha:]][[:alnum:]]*[, ]?\\)*>\\)?" ;; (with optional
generic type parameter(s)
+ "\\)" ;; 3. end of name of func
"[ \t\n\r\f\v]*"
"\\(\([^\)]*\)\\)" ;; 4. params w/parens
+ "\\(?:[ \t]*/[/*].*\\)?" ;; optional comment at
end of line
"[ \t\n\r\f\v]*"
))
diff --git a/test-files/imenu-comment-test.cs b/test-files/imenu-comment-test.cs
new file mode 100644
index 0000000..a7a959672
--- /dev/null
+++ b/test-files/imenu-comment-test.cs
@@ -0,0 +1,16 @@
+using System;
+
+public class MyClass
+{
+ public void HasComment() // test
+ {
+ }
+
+ public void HasNoComment()
+ {
+ }
+
+ public void HasCommentToo() /* test yes */
+ {
+ }
+}
diff --git a/test-files/imenu-generics-test.cs
b/test-files/imenu-generics-test.cs
new file mode 100644
index 0000000..cd6fec1
--- /dev/null
+++ b/test-files/imenu-generics-test.cs
@@ -0,0 +1,19 @@
+using System;
+
+class ImenuMatcherTests
+{
+ private void OneGeneric<T>(this IAppBuilder builder, params object[] args)
+ {
+ Console.WriteLine("TODO: something");
+ }
+
+ private void TwoGeneric<T1,T2>(this IAppBuilder builder, params object[]
args)
+ {
+ Console.WriteLine("TODO: something");
+ }
+
+ private void NoGeneric(this IAppBuilder builder, params object[] args)
+ {
+ Console.WriteLine("TODO: something");
+ }
+}
- [elpa] externals/csharp-mode 6efd459 127/459: Stylistic fixes, (continued)
- [elpa] externals/csharp-mode 6efd459 127/459: Stylistic fixes, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 3b54997 130/459: Merge pull request #55 from josteink/derive-from-prog-mode, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode a553430 146/459: Merge pull request #66 from shoover/explicit-interface-property, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 157299a 013/459: Update TFS module., ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 3651a40 119/459: Use cl-lib equivalent, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 91fff08 124/459: Fontify conversion operators definitions. Fontify base interfaces names for 'interface' and 'struct' declarations., ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 9e78a26 128/459: Derive from prog-mode, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 6e3cdc1 129/459: Add a regression test, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 0a61f21 131/459: Bump version., ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode f367ef6 135/459: Cleanup test-code for imenu-fixes., ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 8ec64b4 136/459: Merge pull request #57 from josteink/imenu-fixes,
ELPA Syncer <=
- [elpa] externals/csharp-mode 8c5bae2 139/459: Fixup, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode d0d7ec3 140/459: Merge pull request #58 from josteink/compilation-mode-fixes, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 49f7342 148/459: Make future editing sane., ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode ffe87f9 150/459: Tests: refactor imenu-tests, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode b4fb58a 153/459: Update changelog., ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode c314c65 157/459: Highlight text after #region or #pragma as comment, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 60e8171 159/459: Start update changelog and prepare for new version., ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 8aeb816 164/459: Fix compiler warnings., ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 775fafd 166/459: Make assess-package available for testing., ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode acaa9bb 169/459: Make another fontification-test assess-based., ELPA Syncer, 2021/08/22