diff --git a/data/fixtures/scopes/csharp/class.iteration.block.scope b/data/fixtures/scopes/csharp/class.iteration.block.scope new file mode 100644 index 0000000000..57d63603d3 --- /dev/null +++ b/data/fixtures/scopes/csharp/class.iteration.block.scope @@ -0,0 +1,27 @@ +public class Outer_class { + public class Inner_class { } +} +--- + +[#1 Range] = +[#1 Domain] = 0:0-2:1 + >-------------------------- +0| public class Outer_class { +1| public class Inner_class { } +2| } + -< + + +[#2 Range] = +[#2 Domain] = 0:26-2:0 + > +0| public class Outer_class { +1| public class Inner_class { } +2| } + < + + +[#3 Range] = +[#3 Domain] = 1:28-1:31 + >---< +1| public class Inner_class { } diff --git a/data/fixtures/scopes/csharp/class.iteration.document.scope b/data/fixtures/scopes/csharp/class.iteration.document.scope new file mode 100644 index 0000000000..c65bf081ec --- /dev/null +++ b/data/fixtures/scopes/csharp/class.iteration.document.scope @@ -0,0 +1,18 @@ +// starting content +public class BankAccount {} +// ending content +--- + +[#1 Range] = +[#1 Domain] = 0:0-2:17 + >------------------- +0| // starting content +1| public class BankAccount {} +2| // ending content + -----------------< + + +[#2 Range] = +[#2 Domain] = 1:26-1:26 + >< +1| public class BankAccount {} diff --git a/data/fixtures/scopes/csharp/className.iteration.block.scope b/data/fixtures/scopes/csharp/className.iteration.block.scope new file mode 100644 index 0000000000..57d63603d3 --- /dev/null +++ b/data/fixtures/scopes/csharp/className.iteration.block.scope @@ -0,0 +1,27 @@ +public class Outer_class { + public class Inner_class { } +} +--- + +[#1 Range] = +[#1 Domain] = 0:0-2:1 + >-------------------------- +0| public class Outer_class { +1| public class Inner_class { } +2| } + -< + + +[#2 Range] = +[#2 Domain] = 0:26-2:0 + > +0| public class Outer_class { +1| public class Inner_class { } +2| } + < + + +[#3 Range] = +[#3 Domain] = 1:28-1:31 + >---< +1| public class Inner_class { } diff --git a/data/fixtures/scopes/csharp/className.iteration.document.scope b/data/fixtures/scopes/csharp/className.iteration.document.scope new file mode 100644 index 0000000000..c65bf081ec --- /dev/null +++ b/data/fixtures/scopes/csharp/className.iteration.document.scope @@ -0,0 +1,18 @@ +// starting content +public class BankAccount {} +// ending content +--- + +[#1 Range] = +[#1 Domain] = 0:0-2:17 + >------------------- +0| // starting content +1| public class BankAccount {} +2| // ending content + -----------------< + + +[#2 Range] = +[#2 Domain] = 1:26-1:26 + >< +1| public class BankAccount {} diff --git a/data/fixtures/scopes/csharp/className.scope b/data/fixtures/scopes/csharp/className.scope index f3a44acc12..db75e2a87d 100644 --- a/data/fixtures/scopes/csharp/className.scope +++ b/data/fixtures/scopes/csharp/className.scope @@ -1,8 +1,7 @@ public class BankAccount {} --- -[Content] = -[Domain] = 0:13-0:24 +[Content] = 0:13-0:24 >-----------< 0| public class BankAccount {} @@ -18,4 +17,8 @@ public class BankAccount {} >-< 0| public class BankAccount {} +[Domain] = 0:0-0:27 + >---------------------------< +0| public class BankAccount {} + [Insertion delimiter] = " " diff --git a/queries/csharp.scm b/queries/csharp.scm index cfb109115c..7d25069167 100644 --- a/queries/csharp.scm +++ b/queries/csharp.scm @@ -1,6 +1,21 @@ (if_statement) @ifStatement + (class_declaration -name: (identifier) @className) @class + name: (identifier) @className +) @class @_.domain +(compilation_unit) @class.iteration @className.iteration +;; Treat interior of all bodies as iteration scopes for class and classname, eg +;;!! private static void foo() { } +;;! *** +(_ + body: (_ + . + "{" @class.iteration.start.endOf @className.iteration.start.endOf + "}" @class.iteration.end.startOf @className.iteration.end.startOf + . + ) +) + ( (string_literal) @string @textFragment (#child-range! @textFragment 0 -1 true true)