in src/main/java/com/maddyhome/idea/vim/extension/matchit/Matchit.kt [208:235]
fun getMatchitPatterns(virtualFile: VirtualFile?): LanguagePatterns? {
// fileType is only populated for files supported by the user's IDE + language plugins.
// Checking the file's name or extension is a simple fallback which also makes unit testing easier.
val fileTypeName = virtualFile?.fileType?.name
val fileName = virtualFile?.nameWithoutExtension
val fileExtension = virtualFile?.extension
return if (fileTypeName in htmlLikeFileTypes) {
this.htmlPatterns
} else if (fileTypeName == "JAVA" || fileExtension == "java") {
this.javaPatterns
} else if (fileTypeName == "Ruby" || fileExtension == "rb") {
this.rubyPatterns
} else if (fileTypeName == "RHTML" || fileExtension == "erb") {
this.rubyAndHtmlPatterns
} else if (fileTypeName == "PHP" || fileExtension == "php") {
this.phpPatterns
} else if (fileTypeName == "C++" || fileTypeName == "C#" || fileTypeName == "ObjectiveC" || fileExtension == "c") {
// "C++" also covers plain C.
this.cPatterns
} else if (fileTypeName == "Makefile" || fileName == "Makefile") {
this.gnuMakePatterns
} else if (fileTypeName == "CMakeLists.txt" || fileName == "CMakeLists") {
this.cMakePatterns
} else {
return null
}
}