diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 52245606..d1288955 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -594,6 +594,14 @@ JavaScript: filenames: - Jakefile +Kotlin: + type: programming + lexer: Kotlin + extensions: + - .kt + - .ktm + - .kts + LLVM: extensions: - .ll diff --git a/test/fixtures/Foo.kt b/test/fixtures/Foo.kt new file mode 100644 index 00000000..59291333 --- /dev/null +++ b/test/fixtures/Foo.kt @@ -0,0 +1,47 @@ +package addressbook + +class Contact( + val name : String, + val emails : List, + val addresses : List, + val phonenums : List +) + +class EmailAddress( + val user : String, + val host : String +) + +class PostalAddress( + val streetAddress : String, + val city : String, + val zip : String, + val state : USState?, + val country : Country +) { + assert {(state == null) xor (country == Countries["US"]) } +} + +class PhoneNumber( + val country : Country, + val areaCode : Int, + val number : Long +) + +object Countries { + fun get(id : CountryID) : Country = countryTable[id] + + private var table : Map? = null + private val countryTable : Map + get() { + if (table == null) { + table = HashMap() + for (line in TextFile("countries.txt").lines(stripWhiteSpace = true)) { + table[line] = Country(line) + } + } + return table + } +} + +class Country(val name : String) \ No newline at end of file