// SYNTAX TEST "Packages/Scala/Scala.sublime-syntax"
// <- source.scala comment.line.double-slash.scala
package fubar
// ^^^^ keyword.control
// ^^^^^ entity.name.namespace.header.scala
package fubar {
// ^^^^ keyword.control.scala
// ^^^^^ entity.name.namespace.scoped.scala
// ^ punctuation.section.block.begin.scala
// <- meta.namespace.scala
}
// ^ punctuation.section.block.end.scala
import fubar.{Unit, Foo}
// ^^^ keyword.other.import
// <- meta.import.scala
// ^ punctuation.separator.scala
def foo: Baz = 42
//^ storage.type.function.scala
// ^^^ entity.name.function.scala
// ^^^ support.class
// ^ keyword.operator.assignment.scala
// ^^ constant.numeric.integer.decimal.scala
def foo: Baz => Bar = 42;
// ^^^ support.class
// ^^^ support.class
// ^ keyword.operator.assignment.scala
// ^ punctuation.terminator.scala
def foo(a: Int, b: Bar): Baz = 42
//^ storage.type.function.scala
// ^^^ entity.name.function.scala
// ^ variable.parameter
// ^^^ storage.type.primitive.scala
// ^^^ support.class
// ^^^ support.class
// ^ keyword.operator.assignment.scala
// ^^ constant.numeric.integer.decimal.scala
def +(a: Int)
// ^^^ storage.type.function.scala
// ^ entity.name.function.scala
def `this is a test`(a: Int)
// ^^^ storage.type.function.scala
// ^^^^^^^^^^^^^^^^ entity.name.function.scala
def ::(a: Int)
// ^^^ storage.type.function.scala
// ^^ entity.name.function.scala
def foo_+(a: Int)
// ^^^ storage.type.function.scala
// ^^^^^ entity.name.function.scala
def foo_2(a: Int)
// ^^^ storage.type.function.scala
// ^^^^^ entity.name.function.scala
def foo42_+(a: Int)
// ^^^ storage.type.function.scala
// ^^^^^^^ entity.name.function.scala
def __many_underscores__+(a: Int)
// ^^^ storage.type.function.scala
// ^^^^^^^^^^^^^^^^^^^^^ entity.name.function.scala
def foo42_+_abc(a: Int)
// ^^^ storage.type.function.scala
// ^^^^^^^ entity.name.function.scala
// ^^^^ - entity.name.function
def +_foo()
// ^^^^ - entity.name.function
def foo[A]
// ^^^ storage.type.function.scala
// ^^^ entity.name.function.scala
// ^ support.class
def foo(implicit bar: Int): Unit
// ^^^^^^^^ storage.modifier.other
// ^ punctuation.ascription.scala
// ^ punctuation.ascription.scala
val foo: Unit; 42
// ^^^ storage.type.stable.scala
// ^^^ variable.other.constant.scala
// ^^^^ storage.type.primitive.scala
// ^ punctuation.terminator.scala
// ^^ constant.numeric.integer.decimal.scala
var foo: Unit
// ^^^ storage.type.volatile.scala
// ^^^ variable.other.readwrite.scala
// ^^^^ storage.type.primitive.scala
class Foo[A](a: Bar) extends Baz with Bin
// ^^^^^^^^^ meta.class.identifier.scala
// ^^ storage.type.class.scala
// ^^^ entity.name.class
// ^ support.class
// ^ variable.parameter
// ^^^ support.class
// ^^^^^^^ keyword.declaration.scala
// ^^^ entity.other.inherited-class.scala
// ^^^^ keyword.declaration.scala
// ^^^ entity.other.inherited-class.scala
class Foo private[this] (a: Int)(b: String)
// ^^^^^^^ storage.modifier.access
// ^^^^ variable.language.scala
// ^ variable.parameter
// ^ variable.parameter
class Foo(x: Int = 42)
// ^ - support
// ^ keyword.operator.assignment.scala
// ^^ constant.numeric
def foo(x: Int = 42)
// ^ - support
// ^ keyword.operator.assignment.scala
// ^^ constant.numeric
trait Foo
// ^^ storage.type.class.scala
// ^^^ entity.name.class
object Foo
// ^^^ storage.type.class.scala
// ^^^ entity.name.class
type Foo = Bar
// ^^^^ storage.type.scala
// ^^^ entity.name.type.scala
// ^ keyword.operator.assignment.scala
// ^^^ support.class.scala
type Foo = Bar => Baz
// ^^^^ storage.type.scala
// ^^^ entity.name.type.scala
// ^ keyword.operator.assignment.scala
// ^^^ support.class.scala
// ^^^ support.class.scala
type Foo[A, B, C] = Bar
// ^ support.class
// ^ punctuation.separator.scala
// ^ support.class
// ^ punctuation.separator.scala
// ^ support.class
// ^ keyword.operator.assignment.scala
type Foo = Bar {
def baz: Int
// ^^^ entity.name.function
}
type Foo = Bar[A] forSome { type A }
// ^^^^^^^ keyword.declaration.scala
type Foo
Bar
// ^^^ support.constant
// floating point numbers
42D 42d
//^ - constant
// ^^^ constant.numeric.float.decimal.scala
// ^ storage.type.numeric.scala
// ^ - constant
// ^^^ constant.numeric.float.decimal.scala
// ^ storage.type.numeric.scala
// ^ - constant
42F 42f
//^ - constant
// ^^^ constant.numeric.float.decimal.scala
// ^ storage.type.numeric.scala
// ^ - constant
// ^^^ constant.numeric.float.decimal.scala
// ^ storage.type.numeric.scala
// ^ - constant
.045 .045e2 .045e-2 .045e+2 .045e2f .045e-2f .045e+2f
//^ - constant
// ^ punctuation.separator.decimal.scala
// ^^^^ constant.numeric.float.decimal.scala
// ^ - constant
// ^^^^^^ constant.numeric.float.decimal.scala
// ^ punctuation.separator.decimal.scala
// ^ - constant
// ^^^^^^^ constant.numeric.float.decimal.scala
// ^ punctuation.separator.decimal.scala
// ^ - constant
// ^^^^^^^ constant.numeric.float.decimal.scala
// ^ punctuation.separator.decimal.scala
// ^ - constant
// ^^^^^^^ constant.numeric.float.decimal.scala
// ^ punctuation.separator.decimal.scala
// ^ storage.type.numeric.scala
// ^ - constant
// ^^^^^^^^ constant.numeric.float.decimal.scala
// ^ punctuation.separator.decimal.scala
// ^ storage.type.numeric.scala
// ^ - constant
// ^^^^^^^^ constant.numeric.float.decimal.scala
// ^ punctuation.separator.decimal.scala
// ^ storage.type.numeric.scala
// ^ - constant
0.045 0.045e2 0.045e-2 0.045e+2 0.045e2f 0.045e-2f 0.045e+2f
//^ - constant
// ^^^^^ constant.numeric.float.decimal.scala
// ^ punctuation.separator.decimal.scala
// ^ - constant
// ^^^^^^^ constant.numeric.float.decimal.scala
// ^ punctuation.separator.decimal.scala
// ^ - constant
// ^^^^^^^^ constant.numeric.float.decimal.scala
// ^ punctuation.separator.decimal.scala
// ^ - constant
// ^^^^^^^^ constant.numeric.float.decimal.scala
// ^ punctuation.separator.decimal.scala
// ^ - constant
// ^^^^^^^^ constant.numeric.float.decimal.scala
// ^ punctuation.separator.decimal.scala
// ^ storage.type.numeric.scala
// ^ - constant
// ^^^^^^^^^ constant.numeric.float.decimal.scala
// ^ punctuation.separator.decimal.scala
// ^ storage.type.numeric.scala
// ^ - constant
// ^^^^^^^^^ constant.numeric.float.decimal.scala
// ^ punctuation.separator.decimal.scala
// ^ storage.type.numeric.scala
// ^ - constant
1e2 1e-2 1e+2 1e2f 1e-2f 1e+2f
//^ - constant
// ^^^ constant.numeric.float.decimal.scala
// ^ - constant
// ^^^^ constant.numeric.float.decimal.scala
// ^ - constant
// ^^^^ constant.numeric.float.decimal.scala
// ^ - constant
// ^^^^ constant.numeric.float.decimal.scala
// ^ storage.type.numeric.scala
// ^ - constant
// ^^^^^ constant.numeric.float.decimal.scala
// ^ storage.type.numeric.scala
// ^ - constant
// ^^^^^ constant.numeric.float.decimal.scala
// ^ storage.type.numeric.scala
// decimal integers
42 42L 42l
//^ - constant
// ^^ constant.numeric.integer.decimal.scala
// ^ - constant
// ^^^ constant.numeric.integer.decimal.scala
// ^ storage.type.numeric.scala
// ^ - constant
// ^^^ constant.numeric.integer.decimal.scala
// ^ storage.type.numeric.scala
// ^ - constant
// hexadecimal integers
0x0aF9123 0x42L 0x42l
//^ - constant
// ^^ punctuation.definition.numeric.base.scala
// ^^^^^^^^^ constant.numeric.integer.hexadecimal.scala
// ^ - constant
// ^^ punctuation.definition.numeric.base.scala
// ^^^^^ constant.numeric.integer.hexadecimal.scala
// ^ storage.type.numeric.scala
// ^ - constant
// ^^ punctuation.definition.numeric.base.scala
// ^^^^^ constant.numeric.integer.hexadecimal.scala
// ^ storage.type.numeric.scala
// ^ - constant
// characters
'a'
// ^^^ constant.character.literal.scala
'\u1221'
// ^^^^^^^^ constant.character.literal.scala
true
// ^^^^ constant.language.scala
false
// ^^^^^ constant.language.scala
null
// ^^^^ constant.language.scala
Nil
// ^^^ support.constant.scala
None
// ^^^^ support.constant.scala
this
// ^^^^ variable.language.scala
super
// ^^^^^ variable.language.scala
"testing"
// ^ punctuation.definition.string.begin.scala
// ^^^^^^^^^ string.quoted.double.scala
// ^ punctuation.definition.string.end.scala
"escaped chars: \u1221 \125 \n"
// ^^^^^^ constant.character.escape.scala
// ^^^ constant.character.escape.scala
// ^^ constant.character.escape.scala
"bad escaping: \p"
// ^ invalid.illegal.lone-escape.scala
"""escaped in triple: \u1221 \125 \n"""
//^^^ punctuation.definition.string.begin.scala
// ^^^^^^ constant.character.escape.scala
// ^^^ - constant.character.escape.scala
// ^^ - constant.character.escape.scala
// ^^^ punctuation.definition.string.end.scala
"""testing"""
// ^^^^^^^^^^^^^ string.quoted.triple.scala
s"testing $a ${42}"
// ^^^^^^^^^ string.quoted.interpolated.scala
// ^ support.function
// ^^ variable.other
// ^^ punctuation.definition.expression
// ^^ constant.numeric.integer.decimal.scala
// ^ punctuation.definition.expression
s"""testing $a ${42}"""
// ^^^^^^^^^^^ string.quoted.triple.interpolated.scala
// ^ support.function
// ^^ variable.other
// ^^ punctuation.definition.expression
// ^^ constant.numeric.integer.decimal.scala
// ^ punctuation.definition.expression
// ^^^ string.quoted.triple.interpolated.scala
f"formatted: x: $x%+,.3f ca"
// ^ support.function
// ^ variable.other.scala - string
// ^^^^^^ constant.other.formatting.scala
f"formatted: date: $x%T "
// ^ support.function
// ^ variable.other.scala
// ^^ constant.other.formatting.scala
Unit
// ^^^^ storage.type.primitive.scala
Byte
// ^^^^ storage.type.primitive.scala
Short
// ^^^^^ storage.type.primitive.scala
Int
// ^^^ storage.type.primitive.scala
Long
// ^^^^ storage.type.primitive.scala
Float
// ^^^^^ storage.type.primitive.scala
Double
// ^^^^^^ storage.type.primitive.scala
Boolean
// ^^^^^^^ storage.type.primitive.scala
String
// ^^^^^^ support.constant
// this is a comment
// ^^^^^^^^^^^^^^^^^^^^ comment.line.double-slash.scala
/*
// <- comment.block.scala
*/
/**
// <- comment.block.documentation.scala
*
// ^ punctuation.definition.comment.scala
*/
/**/0xff
//^^^^ comment.block.empty.scala
// ^^^^ - comment
if
// ^^ keyword.control.flow.scala
else
// ^^^^ keyword.control.flow.scala
do
// ^^ keyword.control.flow.scala
while
// ^^^^^ keyword.control.flow.scala
for
// ^^^ keyword.control.flow.scala
yield
// ^^^^^ keyword.control.flow.scala
match
// ^^^^^ keyword.control.flow.scala
{
case =>
// ^^^^ keyword.other.declaration.scala
}
macro
// ^^^^^ keyword.other.scala
type
// ^^^^ storage.type.scala
return
// ^^^^^^ keyword.control.flow.jump.scala
throw
// ^^^^^ keyword.control.flow.jump.scala
catch
// ^^^^^ keyword.control.exception.scala
finally
// ^^^^^^^ keyword.control.exception.scala
???
// ^^^ keyword.other.scala
try
// ^^^ keyword.control.exception.scala
forSome
// ^^^^^^^ keyword.declaration.scala
new
// ^^^ keyword.other.scala
extends
// ^^^^^^^ invalid.keyword.dangling-extends.scala
with
// ^^^^ invalid.keyword.dangling-with.scala
class
// ^^^^^ storage.type.class.scala
trait
// ^^^^^ storage.type.class.scala
object
// ^^^^^^ storage.type.class.scala
def
// ^^^ storage.type.function.scala
val
// ^^^ storage.type.stable.scala
var
// ^^^ storage.type.volatile.scala
import
// ^^^^^^ keyword.other.import.scala
package
// ^^^^^^^ keyword.control.scala
private
// ^^^^^^^ storage.modifier.access
protected
// ^^^^^^^^^ storage.modifier.access
abstract
// ^^^^^^^^ storage.modifier.other
final
// ^^^^^ storage.modifier.other
lazy
// ^^^^ storage.modifier.other
sealed
// ^^^^^^ storage.modifier.other
implicit
// ^^^^^^^^ storage.modifier.other
override
// ^^^^^^^^ storage.modifier.other
a :: b :: Nil
// ^^^^^^^^^ source.scala
// ^^^ support.constant.scala
(a :: b :: Nil)
// ^^^^^^^^^ source.scala
// ^^^ support.constant.scala
a: Int
// ^^ source.scala
// ^^^ storage.type.primitive.scala
(a: Int)
// ^ source.scala
// ^^^ storage.type.primitive.scala
a: Foo
// ^^^ support.class
{
case (abc: Foo, cba @ _) =>
// ^^^^ keyword.other.declaration.scala
// ^^^ variable.parameter
// ^^^ support.class
// ^^^ variable.parameter
// ^ variable.language.underscore.scala
// ^^ storage.type.function.arrow.case.scala
case abc @ `abc` =>
// ^^^ variable.parameter
// ^ keyword.operator.at.scala
// ^ punctuation.definition.identifier.scala
// ^ punctuation.definition.identifier.scala
// ^^ storage.type.function.arrow.case.scala
// ^^^^^ - variable.parameter
case foo: (Int => Boolean) :: _ =>
// ^ variable.language.underscore.scala
case /* testing */ =>
// ^^^^^^^^^^^^^ comment.block.scala
case // testing
// ^^^^^^^^^^ comment.line.double-slash.scala
=>
case 42 =>
// ^^ constant.numeric.integer.decimal.scala
case 'a' =>
// ^^^ constant.character.literal.scala
case 'foo =>
// ^^^^ constant.other.symbol
case "foo" =>
// ^^^^^ string.quoted.double.scala
case """foo""" =>
// ^^^^^^^^^ string.quoted.triple.scala
case q"""..$foo""" =>
// ^^^^^^ string.quoted.triple.interpolated.scala
// ^^^^ variable.other
// ^^^ string.quoted.triple.interpolated.scala
case =>
// ^^^^^^ text.xml
// ^^^ entity.name.tag
case true =>
// ^^^ constant.language.scala
case _ ⇒ _
// ^ - keyword
case _ if stuff =>
// ^^ keyword.control.flow.scala
// ^^^^^ - entity.name
}
val abc @ `abc`
// ^^^ storage.type.stable.scala
// ^^^ variable.other.constant.scala
// ^ keyword.operator.at.scala
// ^ punctuation.definition.identifier.scala
// ^ punctuation.definition.identifier.scala
// ^^^^^ - entity.name
_
// ^ - keyword
val ble @ `abc` = _
// ^^^ storage.type.stable.scala
// ^^^ variable.other.constant.scala
// ^ keyword.operator.at.scala
// ^^^^^ - entity.name
// ^ keyword.operator.assignment.scala
// ^ - keyword
case object Thingy extends Other
// ^^^^ storage.type.class.scala
// ^^^^^^ storage.type.class.scala
// ^^^^^^ entity.name.class.scala
// ^^^^^^^ keyword.declaration.scala
// ^^^^^ entity.other.inherited-class.scala
case object Thingy extends (Foo => Bar)
// ^^^^ storage.type.class.scala
// ^^^^^^ storage.type.class.scala
// ^^^^^^ entity.name.class.scala
// ^^^^^^^ keyword.declaration.scala
// ^^^ support.class
{
case class
// ^^^^ storage.type.class.scala
// ^^^^^ storage.type.class.scala
}
case class Thingy(abc: Int) extends Other
// ^^^^^^^^^^^^^^^^^ meta.class.identifier.scala
// ^^^^ storage.type.class.scala
// ^^^^^ storage.type.class.scala
// ^^^^^^ entity.name.class.scala
// ^^^ variable.parameter
// ^^^^^^^ keyword.declaration.scala
// ^^^^^ entity.other.inherited-class.scala
//
for {
// ^^^ keyword.control.flow.scala
a <- _
// ^ variable.parameter
// ^^ keyword.operator.assignment.scala
// ^ - keyword
a ← _
// ^ variable.parameter
// ^ keyword.operator.assignment.scala
// ^ - entity.name
(b, c @ _) <- _
// ^ variable.parameter
// ^ variable.parameter
// ^ keyword.operator.at.scala
// ^ variable.language.underscore.scala
// ^^ keyword.operator.assignment.scala
// ^ - keyword
_
// ^ - entity.name
testing = _
// ^^^^^^^ variable.parameter
// ^ keyword.operator.assignment.scala
// ^ - variable.operator.scala
testing = {
// ^^^^^^^ variable.parameter
testing = false
// ^^^^^^^ - entity.name
// ^ keyword.operator.assignment.scala
}
testing = (
// ^^^^^^^ variable.parameter
testing = false
// ^^^^^^^ - variable.parameter
)
val testing = 42
// ^^^ storage.type.stable.scala
// ^^^^^^^ variable.parameter
} abc
// ^^^ - variable.parameter
for (a <- _; (b, c @ _) ← d; val abc = e) f
// ^^^ keyword.control.flow.scala
// ^ variable.parameter
// ^ - keyword
// ^ variable.parameter
// ^ variable.parameter
// ^ keyword.operator.at.scala
// ^ variable.language.underscore.scala
// ^ keyword.operator.assignment.scala
// ^ - variable.parameter
// ^^^ storage.type.stable.scala
// ^^^ variable.parameter
// ^ - variable.parameter
// ^ - variable.parameter
for {
sss <- { {} }
// ^^^ variable.parameter
qqq <- stuff
// ^^^ variable.parameter
}
for {
back <- Traverse[Option]
// ^^^^ variable.parameter
// ^^^^^^^^ support.constant
// ^^^^^^^^ meta.generic.scala
// ^ punctuation.definition.generic.begin.scala
// ^^^^^^ support.class
// ^ punctuation.definition.generic.end.scala
.traverse[Free, Stuff](res) { r => }
// ^^^^^^^^ - entity.name
// ^^^ - entity.name
// ^ - entity.name
}
val baseSettings: Seq[Def.Setting[_]] = _
// ^^^^^^^^^^^^ variable.other.constant.scala
// ^^^ support.class
// ^ variable.language.underscore.scala - keyword
for {
r <- blah
} yield r.copy(foo = a)
// ^ - variable
// ^^^^ - variable
// ^ punctuation.section.group.begin.scala
// ^^^ - variable
// ^ punctuation.section.group.end.scala
{
case foo.Bar => 42
// ^^^ - variable
// ^ punctuation.accessor.scala
case Bar.foo => 42
// ^^^ - variable
// ^ punctuation.accessor.scala
}
val Foo = 42
// ^^^ variable.other.constant.scala
val * = 42
// ^ variable.other.constant.scala
val *: abc = 42
// ^ variable.other.constant.scala
// ^ invalid.ascription.following-operator.scala
// ^^^ support.type.scala
val foo_::: abc
// ^^^^^^ variable.other.constant.scala
// ^ invalid.ascription.following-operator.scala
val ::: abc
// ^ invalid.ascription.following-operator.scala
val :: : abc
// ^^ variable.other.constant.scala
// ^ punctuation.ascription.scala - invalid
val foo_:::: = 42
// ^^^^^^^^ variable.other.constant.scala
// ^ - invalid
val :::: = 42
// ^^^^ variable.other.constant.scala
// ^ - invalid
val foo_: : abc
// ^^^^^ variable.other.constant.scala
// ^ - invalid
// ^ - invalid
val foo_:: : abc
// ^^^^^^ variable.other.constant.scala
// ^ - invalid
// ^ - invalid
val * : abc = 42
// ^ variable.other.constant.scala
// ^ punctuation.ascription.scala - invalid
// ^^^ support.type.scala
val (Foo, x) = 42
// ^^^ support.constant.scala
// ^ variable.other.constant.scala
{
Set[Foo[A, A] forSome { type A }, A]
// ^ support.class
}
def foo: Int
// ^^^ entity.name.function
// fubar
// <- source.scala comment.line.double-slash
new Foo
// ^^^ support.class.scala
new (Foo ~> Bar)
// ^^^ support.class.scala
// ^^ support.type.scala
// ^^^ support.class.scala
class Foo(val bar: Baz) extends AnyVal
// ^^^ storage.type.scala
// ^^^^^^^ keyword.declaration.scala
// ^^^^^^ entity.other.inherited-class.scala
class Foo(implicit bar: Baz) extends AnyVal
// ^^^^^^^^ storage.modifier.other
// ^^^^^^^ keyword.declaration.scala
// ^^^^^^ entity.other.inherited-class.scala
val Stuff(f1, v1) = ???
// ^^^^^ support.constant.scala
new Foo(new Foo)
// ^^^ keyword.other.scala
new Foo.Bar.Baz
// ^ punctuation.accessor.scala
// ^^^ support.class.scala
// ^ punctuation.accessor.scala
// ^^^ support.class.scala
new Foo#Bar#Baz
// ^ punctuation.accessor.scala
// ^^^ support.class.scala
// ^ punctuation.accessor.scala
// ^^^ support.class.scala
type Foo = Foo.Bar
// ^ punctuation.accessor.scala
type Foo = Foo#Bar
// ^ punctuation.accessor.scala
class Foo[+A]
// ^ keyword.operator
class Foo[-A]
// ^ keyword.operator
class Foo[A <: Int]
// ^^ keyword.operator
class Foo[A >: Int]
// ^^ keyword.operator
class Foo[A <% Int]
// ^^ keyword.operator
class Foo[A: Int]
// ^ keyword.operator
type Foo <: Bar
// ^^ keyword.operator
// ^^^ support.class
type Foo >: Bar
// ^^ keyword.operator
// ^^^ support.class
{ a => ??? }
// ^ variable.parameter
{ (a, b) => ??? }
// ^ punctuation.section.group.begin.scala
// ^ variable.parameter.scala
// ^ variable.parameter.scala
// ^ punctuation.section.group.end.scala
{ a: Int => ??? }
// ^ variable.parameter
// ^^^ storage.type.primitive.scala
{ (a: Int, b: Int) => ??? }
// ^ variable.parameter
// ^^^ storage.type.primitive.scala
// ^ variable.parameter
// ^^^ storage.type.primitive.scala
(a) => ???
// ^ variable.parameter
(a, b) => ???
// ^ variable.parameter
// ^ variable.parameter
(a: Int) => ???
// ^ variable.parameter
// ^^^ storage.type.primitive.scala
(a: Int, b: Int) => ???
// ^ variable.parameter
// ^^^ storage.type.primitive.scala
// ^ variable.parameter
// ^^^ storage.type.primitive.scala
(a: Int, b: Int) ⇒ ???
// ^ variable.parameter
// ^^^ storage.type.primitive.scala
// ^ variable.parameter
// ^^^ storage.type.primitive.scala
// ^ storage.type.function.arrow
a => ???
// ^ variable.parameter
a: Int => ???
// ^ variable.parameter
// ^^^ storage.type.primitive.scala
{
case _ if thing =>
// ^^^^ keyword.other.declaration.scala
// ^^^^^ - variable.parameter
// ^^ - keyword
}
a =>a
// ^ variable.parameter
a =>42
// ^ variable.parameter
// ^^ constant.numeric.integer.decimal.scala
(a: Int => Boolean) => 42
// ^^ keyword.operator.arrow.scala
// ^^^^^^^ storage.type
(a: Foo[A] forSome { type A }) => 42
// ^ variable.parameter
// ^^^ support.class
// ^^^^^^^ keyword.declaration.scala
()
// ^^ constant.language.scala
{
case () => ()
// ^^ constant.language.scala
}
Foo()
// ^^^ support.constant.scala
// ^^ - constant.language.scala
Foo[A]()
// ^^ - constant.language.scala
foo[A]()
// ^^ - constant.language.scala
foo() bar ()
// ^^ - constant.language.scala
// ^^ constant.language.scala
foo()()
// ^^ - constant.language.scala
foo(())()
// ^^ constant.language.scala
// ^^ - constant.language.scala
() => 42
// ^^ - constant.language.scala
// ^^ storage.type.function.arrow
"testing /*comments*/"
// ^^^^^^^^^^^^ string.quoted.double
// ^^^^^^^^^^^^ - comment
cb: ((Throwable \/ Unit) => Unit) => 42
// ^^ variable.parameter
// ^^ support.type.scala
// ^^ storage.type.function.arrow
def foo(a: A <:< B)
// ^^^ support.type.scala
def foo(a: A >:> B)
// ^^^ support.type.scala
def foo(a: A =:= B)
// ^^^ support.type.scala
def foo(a: A =:= B = null)
// ^ keyword.operator.assignment.scala
// ^^^^ constant.language.scala
def foo(a: A :: B)
// ^^ support.type.scala
class Foo(a: A <:< B)
// ^^^ support.type.scala
class Foo(a: A >:> B)
// ^^^ support.type.scala
class Foo(a: A =:= B)
// ^^^ support.type.scala
class Foo(a: A =:= B = null)
// ^ keyword.operator.assignment.scala
// ^^^^ constant.language.scala
class Foo(a: A :: B)
// ^^ support.type.scala
import foo
// <- meta.import.scala
import foo, bar
// ^ punctuation.separator.scala
import foo; import bar
// ^ punctuation.terminator.scala
// ^^^^^^ keyword.other.import.scala
import foo.bar
// ^ punctuation.accessor.dot.scala
import foo.{bar, bar => baz, bar=>baz}
// ^^^^^^^^^^^^^^^^^ meta.import.selector.scala
// ^^ keyword.operator.arrow.scala
// ^^ keyword.operator.arrow.scala
import foo.{
bar => bin
// ^^^ meta.import.scala
// ^^^ meta.import.scala
}
import foo._
// ^ variable.language.underscore.scala
import foo.{Foo => _}
// ^ variable.language.underscore.scala
for {} yield ()
// ^^^^^ keyword.control.flow.scala
// ^^ constant.language.scala
42.bar
// ^ - constant.numeric.scala
baz[m.type]
// ^^^^ keyword.other.scala
foo: m.type
// ^^^^ keyword.other.scala
===
// ^^^ - keyword
offset >= 0
// ^^ - keyword
{
case chunk #: h =>
// ^ variable.parameter
}
val chunk #: h = ???
// ^ variable.other.constant.scala
for {
if things >= stuff
// ^^^^^^ - variable.parameter
// ^^^^^ - variable.parameter
}
for (if things >= stuff)
// ^^^^^^ - variable.parameter
// ^^^^^ - variable.parameter
_
// ^ variable.language.underscore.scala
foo._1
// ^ - variable.language.scala
foo_=
// ^ - keyword
foo_
// ^ - variable.language
foo({ _ => () })
// ^ variable.language.underscore.scala
// ^^ storage.type.function.arrow
foo({ _: Unit => () })
// ^ variable.language.underscore.scala
// ^^ storage.type.function.arrow
stuff: _*
// ^^ keyword.operator.varargs.scala
{
case _ @ _* =>
// ^^ keyword.operator.varargs.scala
}
val _ @ _* = things
// ^^ keyword.operator.varargs.scala
s"testing ${things} and more!"
// ^^^^^^ - string
// ^^^^^^ source.scala.embedded
foo.bar
// ^ punctuation.accessor.scala
(foo, bar)
// ^ punctuation.separator.scala
{
case (foo, bar) =>
// ^ punctuation.separator.scala
}
val (foo, bar) = ???
// ^ punctuation.separator.scala
foo eq bar
// ^^ keyword.operator.comparison.scala
foo ne bar
// ^^ keyword.operator.comparison.scala
new Config()
// ^^ - constant
val A: Foo = stuff
// ^ variable.other.constant.scala
type Maybe[A] = { type Inner = A; def x: Int }
// ^^ storage.type.function.scala
// ^ entity.name.function.scala
for {
// ^^^ keyword.control.flow.scala
stuff = sequenceU.map(_.flatten) // thingy
_ <- fooinConns.map(_.map(t => { }))
// ^^ keyword.operator.assignment.scala
} yield ()
new Foo with Bar with Baz
// ^^^^ keyword.declaration.scala
// ^^^ support.class.scala
// ^^^^ keyword.declaration.scala
// ^^^ support.class.scala
type Thing = Foo with Bar with Baz
// ^^^^ keyword.declaration.scala
// ^^^ support.class.scala
Foo[Foo with Bar]
// ^^^^ keyword.declaration.scala
// ^^^ support.class.scala
xs: Foo with Bar
// ^^^^ keyword.declaration.scala
// ^^^ support.class.scala
classTag[U]
// ^^^^^ - storage.type
s"before ${classTag[U] stuff} after"
// ^^^^^^ string.quoted.interpolated.scala
// ^^^^^ - storage.type
// ^^^^^ string.quoted.interpolated.scala
{
case Stuff(thing, other) =>
// ^^^^^ variable.parameter.scala
// ^^^^^ variable.parameter.scala
}
{
case (x, y: Int => String) => ()
// ^^ keyword.operator.arrow.scala
// ^^^^^^ support.class.scala
}
{
case (foo.bar, _) => ()
// ^^^ - variable
}
val Stuff(thing, other) = ???
// ^^^^^ variable.other.constant.scala
// ^^^^^ variable.other.constant.scala
x: List[Int] => ()
// ^ variable.parameter.scala
// ^^ storage.type.function.arrow.lambda.scala
/** private */ class Foo
// ^^^^^ storage.type.class
foo
// ^^^ - comment
/*
/*
test
// ^^^^ comment.block.scala
*/
test
// ^^^^ comment.block.scala
*/
test
// ^^^^ - comment
/**
/**
test
// ^^^^ comment.block.documentation.scala
*/
test
// ^^^^ comment.block.documentation.scala
*/
test
// ^^^^ - comment
def <(a: Int) = 42
// ^ entity.name.function.scala
// ^ variable.parameter.scala
// ^^^^^ text.xml entity.name.tag.xml
// ^^^ text.xml entity.other.attribute-name.localname.xml
// ^ text.xml string.quoted.double.xml punctuation.definition.string.begin.xml
// ^^ text.xml string.quoted.double.xml
// ^ text.xml string.quoted.double.xml punctuation.definition.string.end.xml
// ^^^^^^^^^^^^^^^^^^^^^^ - comment
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ text.xml meta.tag.xml
// ^ text.xml meta.tag.xml
// ^ text.xml string.quoted.single.xml punctuation.definition.string.begin.xml
// ^ text.xml string.quoted.single.xml punctuation.definition.string.end.xml
// ^^ source.scala constant.numeric.integer.decimal.scala
{
42 + "thing"
// ^^^^^^^^^^^^ - text.xml
// ^^ source.scala constant.numeric.integer.decimal.scala
// ^^^^^^^ source.scala string.quoted.double.scala
// comments!
// ^^^^^^^^^^^^ source.scala comment.line.double-slash.scala
// ^^^^^^^^^ - text.xml text.xml
// ^^^^^^^^^ text.xml meta.tag.xml
// ^^^^^^ entity.name.tag.xml
}
"stuff"
// ^^^^^^^ - string
// ^^^^^^^^^^^^^^^^^ comment.block.xml
more tags!
/* not a comment */
// ^^^^^^^^^^^^^^^^^^^ - comment
// invalid.illegal.bad-closing-tag.xml
// ^^^^^^^^^^^^^^^^^^^^^ invalid.illegal.reserved-proc-instr.xml
// ^^^^^^^^ - invalid
// ^^ punctuation.definition.tag.begin.xml
// ^^^ entity.name.tag.xml
// ^^^^^^^ string.quoted.double.xml
// ^^ punctuation.definition.tag.end.xml
// ^^^^^^^^^^^^^^^^^^^^^^ - comment
// ^^^^^^^^^^^^^^^^^^^^^^^^ text.xml meta.tag.xml
// ^ punctuation.definition.tag.begin.xml
// ^ invalid.illegal.bad-ampersand.xml
// ^ invalid.illegal.missing-entity.xml
// ^ invalid.illegal.missing-entity.xml
// ^^ punctuation.definition.tag.end.xml
// ^^^^^^^^^^^^^^^^ text.xml meta.tag.xml
// ^ punctuation.definition.tag.begin.xml
// ^^^ constant.character.entity.xml
// ^ punctuation.definition.tag.begin.xml
&
// ^^^^^ constant.character.entity.xml - meta.tag.xml
class Test1
(a: String)
// ^ variable.parameter.scala
class Test1
(a: String)
// ^ - variable
class Test1
(val a: String) {
"string"
// ^^^^^^^^ string.quoted.double.scala
}
def test
(arg: String) = arg
// ^^^ variable.parameter.scala
def test
(arg: String)
(arg: String) = arg
// ^^^ variable.parameter.scala
// the following test is paired together
def foo: Map[Bar]
def connectionMap: Unit
// ^^^ storage.type.function.scala
def foo: Map[Bar]=42
// ^^ constant.numeric.integer.decimal.scala
x: Foo.Bar => ()
// ^ variable.parameter.scala
// ^^ storage.type.function.arrow.lambda.scala
x: Foo#Bar => ()
// ^ variable.parameter.scala
// ^^ storage.type.function.arrow.lambda.scala
object Stuff {
case
}
thing
// ^^^^^ - variable
s"thingy "
// ^ punctuation.definition.string.begin.scala
def thing(): Other
def boo: Int
// ^^^ storage.type.function.scala
// ^^^ entity.name.function.scala
for {
abc = () => 42
// ^^ storage.type.function.arrow.lambda.scala
}
for (
abc = () => 42
// ^^ storage.type.function.arrow.lambda.scala
)
new {
"foo"
// ^^^^^ string.quoted.double.scala
}
def foo(a: String*, b: (Int => String)*, c: Int*): Negative*
// ^ keyword.operator.varargs.scala
// ^ keyword.operator.varargs.scala
// ^ keyword.operator.varargs.scala
// ^ - support
def foo[A[_] <: B](a: Int + String): Unit
// ^ punctuation.definition.generic.begin.scala
// ^ punctuation.definition.generic.begin.scala
// ^ punctuation.definition.generic.end.scala
// ^ punctuation.definition.generic.end.scala
// ^^^^^^^^^^^ meta.generic.scala
// ^ punctuation.section.group.begin.scala
// ^ support.type.scala - keyword
// ^ punctuation.section.group.end.scala
class Foo(a: String*)
// ^ keyword.operator.varargs.scala
class Foo(a: String* )
// ^ - keyword
def foo(a: String* )
// ^ - keyword
trait AlgebraF[F[_]] { type f[x] = Algebra[F,x] }
// ^^^^ storage.type.scala
// ^ keyword.operator.assignment.scala
class Foo @Inject()(a: String)
// ^^^^^^ meta.annotation.identifier
// ^- meta.annotation
// ^ variable.parameter.scala
class Foo @Inject() @Provided(scope = "test")(a: String)
// ^^^^^^ meta.annotation.identifier
// ^- meta.annotation
// ^^^^^^^ meta.annotation.identifier
// ^^^^^^^ meta.annotation.parameters
// ^- meta.annotation
// ^ variable.parameter.scala
class Foo @Inject(z = "a")(a: String)
// ^^^^^^ variable.annotation
// ^^^^^^^ meta.annotation.parameters
// ^ variable.parameter.scala
class Foo[A] @Inject()(a: String)
// ^ support.class
// ^^^^^^ meta.annotation.identifier
// ^- meta.annotation
// ^ variable.parameter.scala
// annotation examples from: http://www.scala-lang.org/files/archive/spec/2.11/11-annotations.html
@deprecated("Use D", "1.0") class C { ... }
// <- meta.annotation
// ^^ variable.annotation
// ^ meta.annotation.parameters.scala punctuation.section.arguments.annotation.begin.scala
// ^^ string
// ^ meta.annotation
// ^ - meta.annotation
@transient @volatile var m: Int
// ^^ variable.annotation
// ^ variable.annotation
String @local
// ^ punctuation.definition.annotation
// ^^ variable.annotation
(e: @unchecked) match { ... }
// ^^ variable.annotation
// ^^^^^ keyword.control.flow
// more complex:
@scala.beans.BeanProperty
// <- meta.annotation
// <- meta.annotation.identifier
//^^^^^^^^^^^^^^^^^^^^^^^ meta.annotation.identifier
// ^^^^^^^^^^^^ variable.annotation
// ^ punctuation.accessor
(e: Int @unchecked) match { ... }
// ^^ storage.type.primitive
// ^^ variable.annotation
// ^^^^^ keyword.control.flow
@obsolete("this class is horrible don't use it", alpha=3)
// ^^ variable.annotation
// ^ string
// ^ constant.numeric.integer
trait Function0[@specialized(Unit, Int, Double) T] {
// ^^ variable.annotation
// ^^ storage.type.primitive
// ^ support.class
// ^ punctuation.definition.annotation
// ^ meta.annotation
// ^ meta.annotation.parameters
// ^ - meta.annotation
// ^ punctuation.separator.arguments.annotation
def apply: T
}
x: Foo @volatile with Bar @foo.bar @bar with Baz
// ^^ variable.annotation
// ^^ keyword.declaration
// ^^^ support.class
// ^^^^^ - variable.annotation
// ^^^ variable.annotation
// ^^^ variable.annotation
// ^^^ support.class
extends
// ^^^^^^^ invalid.keyword.dangling-extends.scala
with
// ^^^^ invalid.keyword.dangling-with.scala
class Foo with Bar
// ^^^^ invalid.keyword.with-before-extends.scala
class Foo extends Bar extends Baz
// ^^^^^^^ invalid.keyword.extends-after-extends.scala
class Foo extends Bar[A with B](42)
// ^ support.class.scala
// ^^^^ keyword.declaration.scala
// ^ support.class.scala
// ^^ constant.numeric.integer.decimal.scala
class Foo extends Bar { val x = 42 } with Baz
// ^ punctuation.section.braces.begin.scala
// ^ punctuation.section.braces.end.scala
// ^^^^ keyword.declaration.scala
// ^^^ entity.other.inherited-class.scala
class Foo { val x = 42 } extends Bar with Baz
// ^ punctuation.section.braces.begin.scala
// ^ punctuation.section.braces.end.scala
// ^^^^^^^ keyword.declaration.scala
// ^^^ entity.other.inherited-class.scala
class Foo {
// <- meta.class.body.scala
}
class Foo extends Bar {
// <- meta.class.body.scala
}
{
// ^ punctuation.section.block.begin.scala
// <- meta.block.scala
}
// ^ punctuation.section.block.end.scala
(
// ^ punctuation.section.group.begin.scala
// <- meta.group.scala
)
// ^ punctuation.section.group.end.scala
[
// ^ punctuation.definition.generic.begin.scala
// <- meta.generic.scala
]
// ^ punctuation.definition.generic.end.scala
class Foo extends Bar(42)
// ^ punctuation.section.parens.begin.scala
// ^ punctuation.section.parens.end.scala
class Foo extends (Int => String)
// ^ punctuation.definition.parens.begin.scala
// ^ punctuation.definition.parens.end.scala
class Foo extends Bar[Int]
// ^ punctuation.definition.generic.begin.scala
// ^ punctuation.definition.generic.end.scala
object Underscore_
// ^^^^^^ storage.type.class.scala
// ^^^^^^^^^^^ entity.name.class.scala
match {
case _
//^^^^ - meta.pattern
// ^ meta.pattern.scala
=> 42
// ^^ - meta.block.case.first
// ^^ - meta.pattern
// ^^ meta.block.case.first.scala
{
// <- - meta.block.case
}
case _ => 42
// ^^ - meta.block.case.non-first
// ^^ - meta.pattern
// ^^ meta.block.case.non-first.scala
case _ => 42
// ^^ - meta.block.case.non-first
// ^^ meta.block.case.non-first.scala
}
class Foo
extends Bar
// ^^^^^^^ keyword.declaration.scala
// ^^^ entity.other.inherited-class.scala
class Foo extends Bar
with Baz
// ^^^^ keyword.declaration.scala
// ^^^ entity.other.inherited-class.scala
class Foo extends Bar
with Baz
with Bin
// ^^^^ keyword.declaration.scala
// ^^^ entity.other.inherited-class.scala
def foo
42
// ^^ constant.numeric.integer.decimal.scala
def foo()
42
// ^^ constant.numeric.integer.decimal.scala
def foo():
42
// ^^ constant.numeric.integer.decimal.scala
val foo: Thing =42
// ^^ constant.numeric.integer.decimal.scala
var foo: Thing =42
// ^^ constant.numeric.integer.decimal.scala
class Foo extends Bar with {
import Thing._
// ^^^^^^ keyword.other.import.scala
}
class Foo extends Bar.Baz with bin.Baz
// ^^^^^^^ entity.other.inherited-class.scala
// ^ punctuation.accessor.scala
// ^^^^^^^ entity.other.inherited-class.scala
// ^ punctuation.accessor.scala
final case class
{
final case =>
// ^^^^^ - variable
}
val ~ = 42
// ^ variable.other.constant.scala
val \/- = 42
// ^^^ variable.other.constant.scala
type ~[+A] = A
// ^ keyword.operator
type ~[A <: B] = A
// ^^ keyword.operator
type ~[A >: B] = A
// ^^ keyword.operator
+()
// ^^ - constant
for {
// abc <-
} yield thing
// ^^^^^ - variable
for (
// abc <-
) yield thing
// ^^^^^ - variable
for {
abc /* <- */
} yield thing
// ^^^^^ - variable
for {
"abc <-"
} yield thing
// ^^^^^ - variable
for {
abc /* abc */ <-
// ^^^ variable.parameter.scala
} yield thing
// ^^^^^ - variable
John Smith]]>
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ string.unquoted.cdata.xml
// ^ - invalid
// ^^^^^^^^^ punctuation.definition.string.begin.xml
// ^^^^^^ - entity
// ^^^ punctuation.definition.string.end.xml
// ^ - invalid
//^^^^^ text.xml meta.tag.xml
//^ punctuation.definition.tag.begin
// ^^^ entity.name.tag
// ^ punctuation.definition.tag.end
// ^ - text.xml text.xml
John Smith]]>
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ text.xml string.unquoted.cdata.xml
// ^ - invalid
// ^^^^^^^^^ punctuation.definition.string.begin.xml
// ^^^^^^ - entity
// ^^^ punctuation.definition.string.end.xml
// ^ - invalid
//^^^^^^ text.xml meta.tag.xml
//^^ punctuation.definition.tag.begin
// ^^^ entity.name.tag
// ^ punctuation.definition.tag.end
case class
// ^^^^ storage.type.class.scala
new Monad[Catenable] with Traverse
// ^ punctuation.definition.generic.begin.scala
// ^^^^^^^^^^^ meta.generic.scala
// ^ punctuation.definition.generic.end.scala
// ^^^^ keyword.declaration.scala
// ^^^^^^^^ support.class.scala
final class A
final class B[A[_] <: B](a: B)
// ^^^^^ storage.modifier.other.scala
// ^^^^^ storage.type.class.scala
// ^ entity.name.class.scala
// ^^^^^^^^^^^ meta.generic.scala
// ^ punctuation.definition.generic.begin.scala
// ^ punctuation.definition.generic.begin.scala
// ^ punctuation.definition.generic.end.scala
// ^^ keyword.operator.bound.scala
// ^ punctuation.definition.generic.end.scala
// ^ punctuation.section.group.begin.scala
// ^ punctuation.section.group.end.scala
abc match {
case $foo(bar) => ()
// ^^^^ - variable
}
sealed trait Foo
sealed trait Bar
// ^^^^^^ storage.modifier.other.scala
// ^^^^^ storage.type.class.scala
// ^^^ entity.name.class.scala
package object foo extends Bar with Baz
// ^^^^^^^ keyword.declaration.scala
// ^^^ entity.other.inherited-class.scala
// ^^^^ keyword.declaration.scala
// ^^^ entity.other.inherited-class.scala
new RangeColumn(range) with LongColumn { def apply(row: Int) = a + row }
// ^^^^ keyword.declaration.scala
// ^^^^^^^^^^ support.class.scala
// ^^^ storage.type.function.scala
implicit def M: Monad[M]
implicit def Monad
// ^^^^^^^^ storage.modifier.other.scala
// ^^^ storage.type.function.scala
// ^ entity.name.function.scala
type Foo =
Bar
// ^^^ support.class.scala
type Foo =
Bar
// ^^^ support.constant.scala - support.class
type Foo = Unit
type Bar = Unit
// ^^^ entity.name.type.scala
// ^ keyword.operator.assignment.scala
type =?>[A] = Any
// ^^^ entity.name.type.scala
// ^^^ meta.generic.scala
// ^ punctuation.definition.generic.begin.scala
// ^ punctuation.definition.generic.end.scala
val x: Foo @> Bar
// ^^ support.type.scala
val x: = 42
// ^^ constant.numeric.integer.decimal.scala
object Foo
IO
// ^^ support.constant.scala
class Foo()
IO
// ^^ support.constant.scala
val a' = 42
// ^ - entity.name
val ' = 42
// ^ - entity.name
type Foo = Monad[OptionT[IO, ?]]
// ^ variable.language.hole.scala
type Foo = Monad[OptionT[IO, *]]
// ^ variable.language.hole.scala
type Foo = Monad[λ[α => OptionT[IO, α]]]
// ^ keyword.operator.type-lambda.scala
type Foo = Monad[Lambda[α => OptionT[IO, α]]]
// ^^^^^^ keyword.operator.type-lambda.scala
import scalaz._,
Scalaz._
// ^^^^^^ meta.import.scala
import scalaz._
Scalaz._
// ^^^^^^ support.constant.scala - meta.import
for {
// ^ punctuation.section.block.begin.scala
_ <_
} yield true
// ^ punctuation.section.block.end.scala
// ^^^^^ keyword.control.flow.scala
x: ResourceError \/ Resource
// ^^^^^^^^^^^^^ support.class.scala
// ^^ support.type.scala
// ^^^^^^^^ support.class.scala
type TS1 = trans.TransSpec1
import library._
// ^^^^^^ - support.type
type Foo = Thing { val a: Int }
// ^ punctuation.definition.block.begin.scala
// ^ punctuation.definition.block.end.scala
type Foo = (Bar op (Baz))
// ^ punctuation.definition.group.begin.scala
// ^ punctuation.definition.group.begin.scala
// ^ punctuation.definition.group.end.scala
// ^ punctuation.definition.group.end.scala
def identity: CFId
override final def equals(other: Any): Boolean
// ^^^^^^^^ - support.type
def blam(other: Foo forSome { val or: Repr }) =
// ^ keyword.operator.assignment.scala
type P = Repr.this
// ^^^^ variable.language.scala
type P = Repr.super
// ^^^^^ variable.language.scala
a match {
// ^ punctuation.section.block.begin.scala
case x: b if Foo =>
// ^^ keyword.control.flow.scala
// ^^^ support.constant.scala
}
val foo: Abc if bar = 42
// ^^ invalid.keyword.if-in-val-match.scala
val (a: Foo, b: Bar) = ()
// ^^^ support.class.scala
// ^^^ support.class.scala
if (true)
new BitSet
else
// ^^^^ keyword.control.flow.scala
()
Data.Boolean()
// ^^ - constant
prop { k: Int Refined RPositive => }
tail: _ *
// ^^^ keyword.operator.varargs.scala
val Message(
Address(from),
// ^^^^ variable.other.constant.scala
Address(to),
// ^^ variable.other.constant.scala
subject,
// ^^^^^^^ variable.other.constant.scala
Content(tpe, value)) = m
// ^^^ variable.other.constant.scala
// ^^^^^ variable.other.constant.scala
{
case Foo() =>
// ^^ - constant
// ^ punctuation.section.group.begin.scala
// ^ punctuation.section.group.end.scala
case foo(abc) =>
// ^^^ support.constant.scala
// ^^^ - variable
// ^ punctuation.section.group.begin.scala
// ^ punctuation.section.group.end.scala
case foo() =>
// ^^^ - variable
// ^^ - constant
// ^ punctuation.section.group.begin.scala
// ^ punctuation.section.group.end.scala
}
val Foo() = 42
// ^^ - constant
// ^ punctuation.section.group.begin.scala
// ^ punctuation.section.group.end.scala
val foo() = 42
// ^^^ support.constant.scala - entity
// ^^ - constant
// ^ punctuation.section.group.begin.scala
// ^ punctuation.section.group.end.scala
val (Foo(), _) = 42
// ^^ - constant
// ^ punctuation.section.group.begin.scala
// ^ punctuation.section.group.end.scala
val (foo(), _) = 42
// ^^^ support.constant.scala - entity
// ^^ - constant
// ^ punctuation.section.group.begin.scala
// ^ punctuation.section.group.end.scala
for {
_<- fu
// ^ variable.language.underscore.scala
// ^^ keyword.operator.assignment.scala
_← fu
// ^ variable.language.underscore.scala
// ^ keyword.operator.assignment.scala
_= fu
// ^ variable.language.underscore.scala
// ^ keyword.operator.assignment.scala
}
for (_<- fu; _← fu; _= fu)
// ^ punctuation.section.group.begin.scala
// ^ variable.language.underscore.scala
// ^^ keyword.operator.assignment.scala
// ^ variable.language.underscore.scala
// ^ keyword.operator.assignment.scala
// ^ variable.language.underscore.scala
// ^ keyword.operator.assignment.scala
// ^ punctuation.section.group.end.scala
raw"foo\nbar\rbaz"
// ^^^ string.quoted.raw.interpolated.scala support.function.scala
// ^ string.quoted.raw.interpolated.scala punctuation.definition.string.begin.scala
// ^^^^^^^^^^^^^ string.quoted.raw.interpolated.scala
// ^^ string.quoted.raw.interpolated.scala
// ^^ string.quoted.raw.interpolated.scala
// ^ string.quoted.raw.interpolated.scala punctuation.definition.string.end.scala
case (foo => } abc
// ^^^ - variable
val x: Any
// ^^^ storage.type.primitive.scala
val x: AnyRef
// ^^^^^^ storage.type.primitive.scala
val x: AnyVal
// ^^^^^^ storage.type.primitive.scala
val x: Nothing
// ^^^^^^^ storage.type.primitive.scala
fold(a => b, { case c => d })
// ^^ storage.type.function.arrow.lambda.scala
// ^^ storage.type.function.arrow.case.scala
gzis =>/* foo */
// ^^ storage.type.function.arrow.lambda.scala
// ^^^^^^^^^ comment.block.scala
gzis =>// foo
// ^^ storage.type.function.arrow.lambda.scala
// ^^ comment.line.double-slash.scala punctuation.definition.comment.scala
s"testing '$foo' bar"
// ^ string.quoted.interpolated.scala - variable
// ^ string.quoted.interpolated.scala - variable
class Context(var abc: Boolean, val fed: Int)
// ^^^ storage.type.volatile.scala
// ^^^ variable.parameter.scala
// ^^^ storage.type.scala
// ^^^ variable.parameter.scala
(abc)()
// ^^ - constant
type S = Map
evalNT
// ^^^^^^ - support.type
type S = Map x
evalNT
// ^^^^^^ support.type.scala
type S = Map x y
evalNT
// ^^^^^^ - support.type
type S = Map x y z
evalNT
// ^^^^^^ support.type.scala
type S = Map x y z q
evalNT
// ^^^^^^ - support.type
new Foo
evalNT
// ^^^^^^ - support.type.scala
def c: String
override def d = "blah"
// ^^^^^^^^ storage.modifier.other.scala
new DataCodec {
import PreciseKeys._
// ^^^^^^ meta.import.scala keyword.other.import.scala
// ^^^^^^^^^^^ meta.import.scala
// ^ meta.import.scala punctuation.accessor.dot.scala
// ^ meta.import.scala variable.language.underscore.scala
} foo
bar
// ^^^ - support
type Foo = (Bar, Baz) => Result
// ^^ keyword.operator.arrow.scala
// ^^^^^^ support.class.scala
{
case _: NumberFormatException =>
val col = foo
// ^^^ storage.type.stable.scala
// ^^^ variable.other.constant.scala
// ^ keyword.operator.assignment.scala
case _: (NumberFormatException => Bar) => Bar
// ^^^ support.class.scala
}
new AsyncException else data(i)
// ^^^^ keyword.control.flow.scala
// ^^^^ - support
type Foo = this.Bar
// ^^^ support.class.scala
type Foo = super.Bar
// ^^^ support.class.scala
new Foo().bar
// ^ punctuation.section.group.begin.scala
// ^ punctuation.section.group.end.scala
// ^^^ - support
new Foo[A].bar
// ^ punctuation.definition.generic.begin.scala
// ^ punctuation.definition.generic.end.scala
// ^^^ - support
val foo: () => Unit
// ^^ - constant
type T = Foo => (Bar, Baz)
// ^^^ support.class.scala
// ^^^ support.class.scala
// ^^^ support.class.scala
new Array[Long]()
// ^ punctuation.section.group.begin.scala
// ^ punctuation.section.group.end.scala
val foo: Bar = baz
// ^ punctuation.ascription.scala
// ^ - punctuation
val (foo: Bar) = baz
// ^ punctuation.ascription.scala
{
case foo: Bar => baz
// ^ punctuation.ascription.scala
}
foo: Bar
// ^ punctuation.ascription.scala
(foo: Bar) => 42
// ^ punctuation.ascription.scala
def foo(bar: Baz): Unit
// ^ punctuation.ascription.scala
class Foo(bar: Baz)
// ^ punctuation.ascription.scala
val firstA :: firstB :: Nil = results
// ^^^^^^ variable.other.constant.scala
// ^^ - entity
// ^^^^^^ variable.other.constant.scala
// ^^ - entity
// ^^^ support.constant.scala - entity
val (firstA :: firstB :: Nil) :: (secondA :: secondB :: Nil) :: Nil = results
// ^^^^^^ variable.other.constant.scala
// ^^ - entity
// ^^^^^^ variable.other.constant.scala
// ^^ - entity
// ^^^ support.constant.scala - entity
// ^^^^^^^ variable.other.constant.scala
// ^^ - entity
// ^^^^^^ variable.other.constant.scala
// ^^^ support.constant.scala - entity
// ^^ - entity
// ^^^ support.constant.scala - entity
{
case (firstA :: firstB :: Nil) :: (secondA :: secondB :: Nil) :: Nil => results
// ^^^^^^ variable.parameter.scala
// ^^ - variable
// ^^^^^^ variable.parameter.scala
// ^^ - variable
// ^^^ support.constant.scala - variable
// ^^ - variable
// ^^^^^^^ variable.parameter.scala
// ^^ - variable
// ^^^^^^^ variable.parameter.scala
// ^^ - variable
// ^^^ support.constant.scala - variable
// ^^ - variable
// ^^^ support.constant.scala - variable
// ^^^^^^^ - variable
}
val JsonStreamEq:
protected
// ^^^^^^^^^ storage.modifier.access.scala
foo == bar
// ^^ keyword.operator.comparison.scala
foo != bar
// ^^ keyword.operator.comparison.scala
foo eq bar
// ^^ keyword.operator.comparison.scala
foo ne bar
// ^^ keyword.operator.comparison.scala