[
	{
		"name": "8th",
		"file_patterns": ["*.8th"],
		"line_comments": ["\\\\ ", "-- "],
		"block_comments": [["(*", "*)"]],
		"nested_blocks": true,
	},
	{
		"name": "ABAP",
		"file_patterns": ["*.abap"],
		"line_comments": ["*"],
	},
	{
		"name": "ABNF",
		"file_patterns": ["*.abnf"],
		"line_comments": [";"],
	},
	{
		"name": "ActionScript",
		"file_patterns": ["*.actionscript"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Ada",
		"file_patterns": ["*.ada", "*.adb", "*.ads"],
		"line_comments": ["--"],
	},
	{
		"name": "Agda",
		"file_patterns": ["*.agda", "*.lagda"],
		"line_comments": ["--"],
		"block_comments": [["{-", "-}"]],
		"nested_blocks": true,
	},
	{
		"name": "Alex",
		"file_patterns": ["*.x"],
	},
	{
		"name": "Alloy",
		"file_patterns": ["*.als"],
		"line_comments": ["//", "--"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "AngelScript",
		"file_patterns": ["*.as", "*.angelscript"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Apache Config",
		"file_patterns": [".htaccess", "*.conf", "httpd.conf", "apache2.conf"],
		"line_comments": ["#"],
	},
	{
		"name": "Apex",
		"file_patterns": ["*.apex", "*.apexcls", "*.trigger"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "APL",
		"file_patterns": ["*.apl", "*.aplf", "*.apls"],
		"line_comments": ["⍝"],
	},
	{
		"name": "AppleScript",
		"file_patterns": ["*.scpt", "*.applescript"],
		"line_comments": ["--", "#"],
	},
	{
		"name": "Arturo",
		"file_patterns": ["*.art"],
		"line_comments": [";"],
	},
	{
		"name": "AsciiDoc",
		"file_patterns": ["*.adoc", "*.asciidoc", "*.asc"],
		"line_comments": ["//"],
		"block_comments": [["////", "////"]],
	},
	{
		"name": "ASN.1",
		"file_patterns": ["*.asn1"],
		"line_comments": ["--"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "ASP",
		"file_patterns": ["*.asp", "*.asa"],
		"line_comments": ["'", "rem"],
	},
	{
		"name": "ASP.NET",
		"file_patterns": ["*.asax", "*.ascx", "*.asmx", "*.aspx", "*.master", "*.sitemap", "*.webinfo"],
		"block_comments": [["<!--", "-->"], ["<%--", "-->"]],
	},
	{
		"name": "Assembly",
		"file_patterns": ["*.asm", "*.s"],
		"line_comments": [";", "#", "//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Astro",
		"file_patterns": ["*.astro"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"], ["<!--", "-->"]],
	},
	{
		"name": "Ats",
		"file_patterns": ["*.dats", "*.hats", "*.sats", "*.atxt"],
		"line_comments": ["//"],
		"block_comments": [["(*", "*)"], ["/*", "*/"]],
	},
	{
		"name": "Austral",
		"file_patterns": ["*.aum", "*.aui"],
		"line_comments": ["--"],
		"block_comments": [["(*", "*)"]],
	},
	{
		"name": "AutoHotkey",
		"file_patterns": ["*.ahk", "*.ahkl", "*.ah2"],
		"line_comments": [";"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "AutoIt",
		"file_patterns": ["*.au3"],
		"line_comments": [";"],
		"block_comments": [["#comments-start", "#comments-end"], ["#cs", "#ce"]],
	},
	{
		"name": "Automake",
		"file_patterns": ["*.am"],
		"line_comments": ["#"],
	},
	{
		"name": "AWK",
		"file_patterns": ["*.awk", "*.gawk", "*.nawk"],
		"line_comments": ["#"],
		"shebangs": ["#!/bin/awk -f"],
	},
	{
		"name": "AXAML",
		"file_patterns": ["*.axaml"],
		"block_comments": [["<!--", "-->"]],
	},
	{
		"name": "Ballerina",
		"file_patterns": ["*.bal"],
		"line_comments": ["//", "#"],
	},
	{
		"name": "Bash",
		"file_patterns": ["*.bash", "*.sh", ".login", ".profile", ".bash_logout", ".bash_profile", ".bashrc", ".bash_aliases"],
		"line_comments": ["#"],
		"shebangs": ["#!/bin/bash", "#!/usr/bin/env bash", "#!/bin/sh", "#!/usr/bin/env sh"],
	},
	{
		"name": "Batch",
		"file_patterns": ["*.bat", "*.cmd"],
		"line_comments": ["rem", "::"],
	},
	{
		"name": "Bazel",
		"file_patterns": ["*.bzl", "*.bazel", "*.bzlmod", "BUILD", "BUILD.bazel", "build", "build.bazel", "WORKSPACE", "WORKSPACE.bazel", "workspace", "MODULE", "MODULE.bazel", "module"],
		"line_comments": ["#"],
	},
	{
		"name": "BCX/FreeBASIC",
		"file_patterns": ["*.bas", "*.bi"],
		"line_comments": ["'", "rem"],
		"block_comments": [["$comment", "$comment"]],
	},
	{
		"name": "Bean",
		"file_patterns": ["*.bean", "*.beancount"],
		"line_comments": [";"],
	},
	{
		"name": "Beef",
		"file_patterns": ["*.beef"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "BGT",
		"file_patterns": ["*.bgt"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "BibTeX",
		"file_patterns": ["*.bib", "*.bst"],
		"line_comments": ["%"],
	},
	{
		"name": "Bicep",
		"file_patterns": ["*.bicep", "*.bicepparam"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Bison",
		"file_patterns": ["*.y", "*.yy"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"keywords": ["%token", "%type", "%start", "yyparse"],
	},
	{
		"name": "BlitzBasic",
		"file_patterns": ["*.bb", "*.decls", "*.bb2"],
		"line_comments": [";"],
	},
	{
		"name": "Boo",
		"file_patterns": ["*.boo"],
		"line_comments": ["#"],
	},
	{
		"name": "BQN",
		"file_patterns": ["*.bqn"],
		"line_comments": ["#"],
	},
	{
		"name": "Brainfuck",
		"file_patterns": ["*.bf", "*.b"],
	},
	{
		"name": "BrightScript",
		"file_patterns": ["*.brs"],
		"line_comments": ["'", "rem"],
	},
	{
		"name": "Buck",
		"file_patterns": ["BUCK"],
		"line_comments": ["#"],
	},
	{
		"name": "C",
		"file_patterns": ["*.c", "*.h", "*.ec", "*.pgc"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "C Shell",
		"file_patterns": ["*.csh"],
		"line_comments": ["#"],
		"shebangs": ["#!/bin/csh"],
	},
	{
		"name": "C#",
		"file_patterns": ["*.cs", "*.csx", "*.cake"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "C++",
		"file_patterns": ["*.cpp", "*.hpp", "*.c++", "*.h++", "*.cc", "*.cxx", "*.hxx", "*.ino", "*.ipp", "*.cppm", "*.ixx", "*.c++m", "*.pcc", "*.tpp"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "C3",
		"file_patterns": ["*.c3"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"], ["<*", "*>"]],
		"nested_blocks": true,
	},
	{
		"name": "Cabal",
		"file_patterns": ["*.cabal", "cabal.project", "cabal.project.freeze"],
		"line_comments": ["--"],
		"block_comments": [["{-", "-}"]],
		"nested_blocks": true,
	},
	{
		"name": "Caddyfile",
		"file_patterns": ["Caddyfile", "*.caddyfile"],
		"line_comments": ["#"],
	},
	{
		"name": "Cairo",
		"file_patterns": ["*.Cairo"],
		"line_comments": ["//"],
	},
	{
		"name": "Cangjie",
		"file_patterns": ["*.cj"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "Carbon",
		"file_patterns": ["*.carbon"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Cassius",
		"file_patterns": ["*.cassius"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Ceylon",
		"file_patterns": ["*.ceylon"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "ChaiScript",
		"file_patterns": ["*.chai"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Chapel",
		"file_patterns": ["*.chpl"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "ChucK",
		"file_patterns": ["*.ck"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Circom",
		"file_patterns": ["*.circom"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Clojure",
		"file_patterns": ["*.clj", "*.cljs", "*.cljc", "*.edn"],
		"line_comments": [";"],
		"block_comments": [["(comment", ")"]],
	},
	{
		"name": "CMake",
		"file_patterns": ["*.cmake", "*.cmake.in", "*.cmake.rule", "CMakeLists.txt", "cmakelists.txt"],
		"line_comments": ["#"],
	},
	{
		"name": "COBOL",
		"file_patterns": ["*.cob", "*.cbl", "*.ccp", "*.cobol", "*.cpy"],
		"line_comments": ["*"],
	},
	{
		"name": "Cobra",
		"file_patterns": ["*.cobra"],
		"line_comments": ["#"],
		"block_comments": [["/#", "#/"]],
	},
	{
		"name": "CodeQL",
		"file_patterns": ["*.ql", "*.qll"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "CoffeeScript",
		"file_patterns": ["*.coffee", "*.cjsx"],
		"line_comments": ["#"],
		"block_comments": [["###", "###"]],
	},
	{
		"name": "Cogent",
		"file_patterns": ["*.cogent"],
		"line_comments": ["--"],
	},
	{
		"name": "ColdFusion",
		"file_patterns": ["*.cfm", "*.cfc"],
		"line_comments": ["//"],
		"block_comments": [["<!---", "--->"], ["/*", "*/"]],
	},
	{
		"name": "Common Lisp",
		"file_patterns": ["*.lisp", "*.lsp", "*.asd", "*.cl"],
		"line_comments": [";"],
		"block_comments": [["#|", "|#"]],
		"nested_blocks": true,
	},
	{
		"name": "Coq",
		"file_patterns": ["*.coq"],
		"block_comments": [["(*", "*)"]],
		"nested_blocks": true,
	},
	{
		"name": "Crystal",
		"file_patterns": ["*.cr"],
		"line_comments": ["#"],
		"shebangs": ["#!/usr/bin/crystal"],
	},
	{
		"name": "CSON",
		"file_patterns": ["*.cson"],
		"line_comments": ["#"],
		"block_comments": [["###", "###"]],
	},
	{
		"name": "CSS",
		"file_patterns": ["*.css", "*.postcss"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "CSV",
		"file_patterns": ["*.csv"],
	},
	{
		"name": "CUDA",
		"file_patterns": ["*.cu", "*.cuh", "*.ptx"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "CUE",
		"file_patterns": ["*.cue"],
		"line_comments": ["//"],
	},
	{
		"name": "Cython",
		"file_patterns": ["*.pyx", "*.pxd", "*.pyi", "*.pxi"],
		"line_comments": ["#"],
	},
	{
		"name": "D",
		"file_patterns": ["*.d", "*.di"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"], ["/+", "+/"]],
		"nested_blocks": true,
		"shebangs": ["#!/usr/bin/env rdmd", "#!/usr/bin/rdmd"],
	},
	{
		"name": "D2",
		"file_patterns": ["*.d2"],
		"line_comments": ["#"],
		"block_comments": [["\"\"\"", "\"\"\""]],
	},
	{
		"name": "Dafny",
		"file_patterns": ["*.dfy"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "DAML",
		"file_patterns": ["*.daml"],
		"line_comments": ["--"],
		"block_comments": [["{-", "-}"]],
		"nested_blocks": true,
	},
	{
		"name": "Dart",
		"file_patterns": ["*.dart"],
		"line_comments": ["//", "///"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Delphi/Object Pascal",
		"file_patterns": ["*.dpr", "*.dpk"],
		"line_comments": ["//"],
		"block_comments": [["(*", "*)"], ["{", "}"]],
	},	
	{
		"name": "Device Tree",
		"file_patterns": ["*.dts", "*.dtsi"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Dhall",
		"file_patterns": ["*.dhall"],
		"line_comments": ["--"],
		"block_comments": [["{-", "-}"]],
		"nested_blocks": true,
	},
	{
		"name": "Dockerfile",
		"file_patterns": ["*.dockerfile", "*.dockerignore", "Dockerfile"],
		"line_comments": ["#"],
	},
	{
		"name": "DotNet Resource",
		"file_patterns": ["*.resx"],
		"block_comments": [["<!--", "-->"]],
	},
	{
		"name": "Dream Maker",
		"file_patterns": ["*.dm", "*.dme"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "Dust.js",
		"file_patterns": ["*.dust"],
		"block_comments": [["{!", "!}"]],
	},
	{
		"name": "Dylan",
		"file_patterns": ["*.dylan", "*.lid"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "EBNF",
		"file_patterns": ["*.ebnf"],
		"line_comments": ["//"],
		"block_comments": [["(*", "*)"]],
	},
	{
		"name": "Ebuild",
		"file_patterns": ["*.ebuild", "*.eclass"],
		"line_comments": ["#"],
	},
	{
		"name": "EdgeQL",
		"file_patterns": ["*.edgeql"],
		"line_comments": ["#"],
	},
	{
		"name": "Effekt",
		"file_patterns": ["*.effekt"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Eiffel",
		"file_patterns": ["*.e"],
		"line_comments": ["--"],
		"keywords": ["class", "feature", "is", "do", "end", "require", "ensure", "invariant"],
	},
	{
		"name": "EJS",
		"file_patterns": ["*.ejs"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"], ["<!--", "-->"]],
	},
	{
		"name": "Elixir",
		"file_patterns": ["*.ex", "*.exs"],
		"line_comments": ["#"],
		"keywords": ["defmodule", "def", "defp", "do", "end", "|>"],
	},
	{
		"name": "Elm",
		"file_patterns": ["*.elm"],
		"line_comments": ["--"],
		"block_comments": [["{-", "-}"]],
		"nested_blocks": true,
	},
	{
		"name": "Elvish",
		"file_patterns": ["*.elv"],
		"line_comments": ["#"],
	},
	{
		"name": "Emacs Dev Env",
		"file_patterns": ["*.ede"],
		"line_comments": [";"],
	},
	{
		"name": "Emacs Lisp",
		"file_patterns": ["*.el"],
		"line_comments": [";"],
	},
	{
		"name": "EmberScript",
		"file_patterns": ["*.em"],
		"line_comments": ["#"],
		"block_comments": [["###", "###"]],
	},
	{
		"name": "Emojicode",
		"file_patterns": ["*.emojic", "*.🍇"],
		"line_comments": ["💭"],
		"block_comments": [["💭🔜", "🔚💭"], ["📗", "📗"], ["📘", "📘"]],
	},
	{
		"name": "Erlang",
		"file_patterns": ["*.erl", "*.hrl"],
		"line_comments": ["%"],
	},
	{
		"name": "Euphoria",
		"file_patterns": ["*.e", "*.ex", "*.exw", "*.ew", "*.eu"],
		"line_comments": ["--"],
		"block_comments": [["/*", "*/"]],
		"keywords": ["procedure", "function", "end procedure", "end function", "with", "without"],
	},
	{
		"name": "F#",
		"file_patterns": ["*.fs", "*.fsi", "*.fsx", "*.fsscript"],
		"line_comments": ["//"],
		"block_comments": [["(*", "*)"]],
		"nested_blocks": true,
	},
	{
		"name": "F*",
		"file_patterns": ["*.fst", "*.fsti"],
		"line_comments": ["//"],
		"block_comments": [["(*", "*)"]],
		"nested_blocks": true,
	},
	{
		"name": "Factor",
		"file_patterns": ["*.factor"],
		"line_comments": ["!", "#!"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Fantom",
		"file_patterns": ["*.fan"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Faust",
		"file_patterns": ["*.dsp"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"keywords": ["process =", "process=", "import(", "declare ", "library(", "os.", "ba.", "si."],
	},
	{
		"name": "Felix",
		"file_patterns": ["*.flx"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Fennel",
		"file_patterns": ["*.fnl"],
		"line_comments": [";"],
		"block_comments": [["#|", "|#"]],
		"nested_blocks": true,
	},
	{
		"name": "Fish",
		"file_patterns": ["*.fish"],
		"line_comments": ["#"],
		"shebangs": ["#!/bin/fish"],
	},
	{
		"name": "FlatBuffers Schema",
		"file_patterns": ["*.fbs"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Forth",
		"file_patterns": ["*.4th", "*.forth", "*.fr", "*.fth", "*.frt", "*.f83", "*.fb", "*.fpm", "*.e4", "*.rx", "*.ft"],
		"line_comments": ["\\ "],
		"block_comments": [["( ", ")"]],
	},
	{
		"name": "Fortran",
		"file_patterns": ["*.f", "*.for", "*.f77", "*.f90", "*.f95", "*.f03"],
		"line_comments": ["!", "C", "c"],
	},
	{
		"name": "FreeMarker",
		"file_patterns": ["*.ftl", "*.ftlh", "*.ftlx"],
		"block_comments": [["<#--", "-->"]],
	},
	{
		"name": "Futhark",
		"file_patterns": ["*.fut"],
		"line_comments": ["--"],
	},
	{
		"name": "GDB Script",
		"file_patterns": ["*.gdb"],
		"line_comments": ["#"],
	},
	{
		"name": "GDScript",
		"file_patterns": ["*.gd"],
		"line_comments": ["#"],
	},
	{
		"name": "Gettext",
		"file_patterns": ["*.po", "*.pot"],
		"line_comments": ["#"],
	},
	{
		"name": "Gherkin",
		"file_patterns": ["*.feature"],
		"line_comments": ["#"],
	},
	{
		"name": "Gleam",
		"file_patterns": ["*.gleam"],
		"line_comments": ["//", "///", "////"],
	},
	{
		"name": "GLSL",
		"file_patterns": ["*.glsl", "*.vert", "*.frag", "*.geom", "*.tesc", "*.tese", "*.comp", "*.rcall", "*.rmiss", "*.rchit"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "GML",
		"file_patterns": ["*.gml"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Go",
		"file_patterns": ["*.go", "*.tmpl", "*.gohtml", "*.gotmpl"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Gosu",
		"file_patterns": ["*.gs", "*.gsx"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Gradle",
		"file_patterns": ["*.gradle", "gradle.properties"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Grain",
		"file_patterns": ["*.gr"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "GraphQL",
		"file_patterns": ["*.graphql", "*.gql"],
		"line_comments": ["#"],
	},
	{
		"name": "Graphviz/DOT",
		"file_patterns": ["*.dot", "*.gv"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Groovy",
		"file_patterns": ["*.groovy", "*.grt", "*.gtpl", "*.gvy", "*.gy", "*.gsh"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Gwion",
		"file_patterns": ["*.gw"],
		"line_comments": ["#!"],
	},
	{
		"name": "Hack",
		"file_patterns": ["*.hh", "*.hhi", "*.hack"],
		"line_comments": ["//", "#"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Haml",
		"file_patterns": ["*.haml"],
		"line_comments": ["-#"],
	},
	{
		"name": "Hamlet",
		"file_patterns": ["*.hamlet"],
		"block_comments": [["<!--", "-->"]],
	},
	{
		"name": "Handlebars",
		"file_patterns": ["*.hbs", "*.handlebars"],
		"block_comments": [["{{!--", "--}}"]],
	},
	{
		"name": "Happy",
		"file_patterns": ["*.y"],
		"line_comments": ["--"],
		"block_comments": [["{-", "-}"]],
		"keywords": ["%name", "%tokentype", "%token", "%%"],
	},
	{
		"name": "Haskell",
		"file_patterns": ["*.hs", "*.lhs", "*.hsc", "*.hs-boot", ".ghci"],
		"line_comments": ["--"],
		"block_comments": [["{-", "-}"]],
		"nested_blocks": true,
	},
	{
		"name": "Haxe",
		"file_patterns": ["*.hx"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "HCL",
		"file_patterns": ["*.tf", "*.hcl", "*.tfvars"],
		"line_comments": ["#", "//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Headache",
		"file_patterns": ["*.ha"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "HLSL",
		"file_patterns": ["*.hlsl", "*.fx", "*.fxh", "*.hlsli"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "HolyC",
		"file_patterns": ["*.hc", "*.zc"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "HTML",
		"file_patterns": ["*.html", "*.htm", "*.xht", "*.xhtml"],
		"block_comments": [["<!--", "-->"]],
	},
	{
		"name": "Hy",
		"file_patterns": ["*.hy"],
		"line_comments": [";"],
	},
	{
		"name": "Icon",
		"file_patterns": ["*.icn"],
		"line_comments": ["#"],
	},
	{
		"name": "IDL",
		"file_patterns": ["*.idl", "*.widl"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Idris",
		"file_patterns": ["*.idr", "*.lidr"],
		"line_comments": ["--"],
		"block_comments": [["{-", "-}"]],
		"nested_blocks": true,
	},
	{
		"name": "Inform 7",
		"file_patterns": ["*.ni", "*.i7x"],
		"block_comments": [["[", "]"]],
	},
	{
		"name": "INI",
		"file_patterns": ["*.ini", "*.cfg", "*.prefs", ".editorconfig", ".gitconfig", "buildozer.spec"],
		"line_comments": [";", "#"],
	},
	{
		"name": "Inno Setup",
		"file_patterns": ["*.iss", "*.ish"],
		"line_comments": [";", "//"],
		"block_comments": [["{", "}"], ["(*", "*)"]],
	},
	{
		"name": "Io",
		"file_patterns": ["*.io"],
		"line_comments": ["//", "#"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Isabelle",
		"file_patterns": ["*.thy"],
		"line_comments": ["--"],
		"block_comments": [["{*", "*}"], ["(*", "*)"], ["‹", "›"], ["\\\\<open>", "\\\\<close>"]],
	},
	{
		"name": "J",
		"file_patterns": ["*.ijs"],
		"line_comments": ["NB."],
	},
	{
		"name": "Jai",
		"file_patterns": ["*.jai"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "Janet",
		"file_patterns": ["*.janet"],
		"line_comments": ["#"],
	},
	{
		"name": "Java",
		"file_patterns": ["*.java", "*.jav"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Java Server Pages",
		"file_patterns": ["*.jsp"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"], ["<!--", "-->"]],
	},
	{
		"name": "JavaScript",
		"file_patterns": ["*.js", "*.cjs", "*.jsx", "*.jscad", "*.jsfl", "*.mjs", "*.njs", "*.sjs", "*.ssjs", "*.xsjs", "*.xsjslib", "*.es", "*.es6", "*.jake", ".babelrc", ".eslintrc", ".prettierrc"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"shebangs": ["#!/usr/bin/node", "#!/usr/bin/env node"],
	},
	{
		"name": "JAWS Script",
		"file_patterns": ["*.jss", "*.jsh"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Jinja2",
		"file_patterns": ["*.j2", "*.jinja", "*.jinja2"],
		"line_comments": ["{#"],
		"block_comments": [["{#", "#}"]],
	},
	{
		"name": "jq",
		"file_patterns": ["*.jq"],
		"line_comments": ["#"],
	},
	{
		"name": "JSLT",
		"file_patterns": ["*.jslt"],
		"line_comments": ["//"],
	},
	{
		"name": "JSON",
		"file_patterns": ["*.json", "*.geojson", "*.ndjson", "*.jsonl"],
	},
	{
		"name": "JSON5",
		"file_patterns": ["*.json5"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "JSONC",
		"file_patterns": ["*.jsonc"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Jsonnet",
		"file_patterns": ["*.jsonnet", "*.libsonnet"],
		"line_comments": ["//", "#"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Julia",
		"file_patterns": ["*.jl"],
		"line_comments": ["#"],
		"block_comments": [["#=", "=#"]],
		"nested_blocks": true,
	},
	{
		"name": "Jupyter Notebook",
		"file_patterns": ["*.ipynb"],
	},
	{
		"name": "Just",
		"file_patterns": ["justfile", "Justfile"],
		"line_comments": ["#"],
		"shebangs": ["#!/usr/bin/env just --justfile"],
	},
	{
		"name": "K",
		"file_patterns": ["*.k"],
		"line_comments": ["/"],
	},
	{
		"name": "Kaitai Struct",
		"file_patterns": ["*.ksy"],
		"line_comments": ["#"],
	},
	{
		"name": "Kakoune script",
		"file_patterns": ["*.kak"],
		"line_comments": ["#"],
	},
	{
		"name": "Koka",
		"file_patterns": ["*.kk"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Korn Shell",
		"file_patterns": ["*.ksh"],
		"line_comments": ["#"],
		"shebangs": ["#!/bin/ksh"],
	},
	{
		"name": "Kotlin",
		"file_patterns": ["*.kt", "*.kts", "*.ktm"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "KV Language",
		"file_patterns": ["*.kv"],
		"line_comments": ["# "],
	},
	{
		"name": "LALRPOP",
		"file_patterns": ["*.lalrpop"],
		"line_comments": ["//"],
	},
	{
		"name": "Lauterbach CMM",
		"file_patterns": ["*.cmm"],
		"line_comments": [";"],
	},
	{
		"name": "LD Script",
		"file_patterns": ["*.ld", "*.lds"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Lean",
		"file_patterns": ["*.lean", "*.hlean"],
		"line_comments": ["--"],
		"block_comments": [["/-", "-/"]],
	},	
	{
		"name": "Less",
		"file_patterns": ["*.less"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Lex",
		"file_patterns": ["*.l", "*.lex"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"keywords": ["%%", "yy", "BEGIN", "ECHO"],
	},
	{
		"name": "LilyPond",
		"file_patterns": ["*.ly", "*.ily"],
		"line_comments": ["%"],
		"block_comments": [["%{", "%}"]],
	},
	{
		"name": "Lingua Franca",
		"file_patterns": ["*.lf"],
		"line_comments": ["//", "#"],
		"block_comments": [["/*", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "Liquid Templates",
		"file_patterns": ["*.liquid"],
		"block_comments": [["<!--", "-->"], ["{% comment %}", "{% endcomment %}"]],
	},
	{
		"name": "LiveScript",
		"file_patterns": ["*.ls"],
		"line_comments": ["#"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "LLVM IR",
		"file_patterns": ["*.ll", "*.bc"],
		"line_comments": [";"],
	},	
	{
		"name": "Logtalk",
		"file_patterns": ["*.lgt", "*.logtalk"],
		"line_comments": ["%"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Lolcode",
		"file_patterns": ["*.lol"],
		"line_comments": ["BTW"],
		"block_comments": [["OBTW", "TLDR"]],
	},
	{
		"name": "Lua",
		"file_patterns": ["*.lua", "*.wlua", "*.rockspec", ".luacheckrc"],
		"line_comments": ["--"],
		"block_comments": [["--[[", "--]]"]],
		"shebangs": ["#!/usr/bin/lua", "#!/usr/bin/env lua"],
	},
	{
		"name": "Luau",
		"file_patterns": ["*.luau", "default.project.json", "test.project.json", ".robloxrc"],
		"line_comments": ["--"],
		"block_comments": [["--[[", "--]]"]],
		"shebangs": ["#!/usr/bin/env luau"],
	},
	{
		"name": "M4",
		"file_patterns": ["*.m4"],
		"line_comments": ["#", "dnl"],
	},
	{
		"name": "Madlang",
		"file_patterns": ["*.mad"],
		"line_comments": ["#"],
		"block_comments": [["{#", "#}"]],
	},
	{
		"name": "Makefile",
		"file_patterns": ["*.mak", "*.make", "*.mk", "*.mkfile", "BSDmakefile", "GNUmakefile", "Kbuild", "Makefile", "Makefile.boot", "Makefile.frag", "Makefile.in", "Makefile.inc", "Makefile.wat", "makefile", "makefile.sco", "mkfile"],
		"line_comments": ["#"],
	},
	{
		"name": "Markdown",
		"file_patterns": ["*.md", "*.markdown", "*.mdx", "*.mdown", "*.mdwn", "*.mkd", "*.mkdn", "*.mkdown", "*.ronn"],
		"block_comments": [["<!--", "-->"]],
	},
	{
		"name": "Mathematica/Wolfram",
		"file_patterns": ["*.wl", "*.wls"],
		"block_comments": [["(*", "*)"]],
	},
	{
		"name": "MATLAB",
		"file_patterns": ["*.m"],
		"line_comments": ["%"],
		"block_comments": [["%{", "%}"]],
		"keywords": ["function", "classdef", "end", "disp", "plot", "elseif"],
	},
	{
		"name": "Maven",
		"file_patterns": ["pom.xml"],
		"block_comments": [["<!--", "-->"]],
	},
	{
		"name": "max",
		"file_patterns": ["*.maxpat"],
	},
	{
		"name": "Menhir",
		"file_patterns": ["*.menhir", "*.vy"],
		"line_comments": ["//"],
		"block_comments": [["(*", "*)"], ["/*", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "Mercury",
		"file_patterns": ["*.m"],
		"line_comments": ["%"],
		"block_comments": [["/*", "*/"]],
		"keywords": [":- module", ":- pred", ":- func", ":- type", "io.write_string"],
	},
	{
		"name": "Meson",
		"file_patterns": ["meson.build", "meson_options.txt"],
		"line_comments": ["#"],
	},
	{
		"name": "MessagePack",
		"file_patterns": ["*.msgpack"],
	},
	{
		"name": "Metal Shading Language",
		"file_patterns": ["*.metal"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Microsoft Developer Studio",
		"file_patterns": ["*.dsp"],
		"line_comments": ["#"],
		"keywords": ["# Microsoft Developer Studio", "TARGTYPE", "CFG=", "!IF", "PROP", "Package Owner"],
	},
	{
		"name": "Mint",
		"file_patterns": ["*.mint"],
	},
	{
		"name": "Mlatu",
		"file_patterns": ["*.mlt"],
		"line_comments": ["//"],
	},
	{
		"name": "Modelica",
		"file_patterns": ["*.mo", "*.mos"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Modula-2/3",
		"file_patterns": ["*.m3", "*.mi"],
		"block_comments": [["(*", "*)"]],
		"nested_blocks": true,
	},
	{
		"name": "Module Definition",
		"file_patterns": ["*.def"],
		"line_comments": [";"],
	},
	{
		"name": "Mojo",
		"file_patterns": ["*.mojo", "*.🔥"],
		"line_comments": ["#"],
		"block_comments": [["\"\"\"", "\"\"\""], ["'''", "'''"]],
	},
	{
		"name": "Monkey C",
		"file_patterns": ["*.mc"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Moo",
		"file_patterns": ["*.moo"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "MoonBit",
		"file_patterns": ["*.mbt", "*.mbti"],
		"line_comments": ["//"],
	},
	{
		"name": "MoonScript",
		"file_patterns": ["*.moon"],
		"line_comments": ["--"],
		"block_comments": [["--[[", "--]]"]],
	},
	{
		"name": "Motoko",
		"file_patterns": ["*.mot"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Move",
		"file_patterns": ["*.move"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "MSBuild",
		"file_patterns": ["*.csproj", "*.vbproj", "*.fsproj", "*.props", "*.targets"],
		"block_comments": [["<!--", "-->"]],
	},
	{
		"name": "Mustache",
		"file_patterns": ["*.mustache"],
		"block_comments": [["{{!", "}}"]],
	},
	{
		"name": "NASM",
		"file_patterns": ["*.nasm"],
		"line_comments": [";", "#"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Nearley",
		"file_patterns": ["*.ne"],
		"line_comments": ["#"],
	},
	{
		"name": "Nemerle",
		"file_patterns": ["*.n"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "Nextflow",
		"file_patterns": ["*.nextflow", "*.nf"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Nginx Config",
		"file_patterns": ["nginx.conf", "*.nginx"],
		"line_comments": ["#"],
	},
	{
		"name": "Nim",
		"file_patterns": ["*.nim"],
		"line_comments": ["#", "##"],
		"block_comments": [["#[", "]#"]],
		"nested_blocks": true,
	},
	{
		"name": "Ninja",
		"file_patterns": ["build.ninja"],
		"line_comments": ["#"],
	},
	{
		"name": "Nix",
		"file_patterns": ["*.nix"],
		"line_comments": ["#"],
		"block_comments": [["/*", "*/"]],
	},	
	{
		"name": "Not Quite Perl",
		"file_patterns": ["*.nqp"],
		"line_comments": ["#"],
		"block_comments": [["=begin", "=end"]],
	},
	{
		"name": "NSIS",
		"file_patterns": ["*.nsi", "*.nsh"],
		"line_comments": [";", "#"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "NuGet Config",
		"file_patterns": ["nuget.config", "packages.config", "nugetdefaults.config"],
		"block_comments": [["<!--", "-->"]],
	},
	{
		"name": "Nunjucks Templates",
		"file_patterns": ["*.njk"],
		"block_comments": [["{#", "#}"]],
	},
	{
		"name": "Nushell",
		"file_patterns": ["*.nu"],
		"line_comments": ["#"],
	},
	{
		"name": "NVGT",
		"file_patterns": ["*.nvgt", ".nvgtrc"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Oberon",
		"file_patterns": ["*.ob", "*.ob2", "*.obx", "*.oberon"],
		"line_comments": [],
		"block_comments": [["(*", "*)"]],
		"nested_blocks": true,
	},
	{
		"name": "Objective-C",
		"file_patterns": ["*.m"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"keywords": ["@interface", "@implementation", "@protocol", "@property", "@synthesize", "@end", "NSString", "#import", "NSObject"],
	},
	{
		"name": "Objective-C++",
		"file_patterns": ["*.mm"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Objective-J",
		"file_patterns": ["*.j", "*.sj"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "OCaml",
		"file_patterns": ["*.ml", "*.mli", "*.mll", "*.mly"],
		"block_comments": [["(*", "*)"]],
		"nested_blocks": true,
	},
	{
		"name": "Odin",
		"file_patterns": ["*.odin"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "Open Policy Agent",
		"file_patterns": ["*.rego"],
		"line_comments": ["#"],
	},
	{
		"name": "OpenCL",
		"file_patterns": ["*.ocl"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "OpenQASM",
		"file_patterns": ["*.qasm"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "OpenSCAD",
		"file_patterns": ["*.scad"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "OpenType Feature File",
		"file_patterns": ["*.fea"],
		"line_comments": ["#"],
	},
	{
		"name": "Org",
		"file_patterns": ["*.org"],
		"line_comments": ["#"],
	},
	{
		"name": "Oz",
		"file_patterns": ["*.oz"],
		"line_comments": ["%"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Pan",
		"file_patterns": ["*.pan"],
		"line_comments": ["#"],
	},
	{
		"name": "Pascal",
		"file_patterns": ["*.pas", "*.pp", "*.p", "*.inc"],
		"line_comments": ["//"],
		"block_comments": [["(*", "*)"], ["{", "}"]],
		"nested_blocks": true,
		"keywords": ["program", "begin", "end", "var", "procedure", "function", "uses"],
	},
	{
		"name": "Perl",
		"file_patterns": ["*.pl", "*.al", "*.perl", "*.plx", "*.pm", "rexfile", "ack", "cpanfile", "cpanfile.snapshot"],
		"line_comments": ["#"],
		"block_comments": [["=pod", "=cut"]],
		"shebangs": ["#!/usr/bin/perl", "#!/usr/bin/env perl"],
	},
	{
		"name": "Pest",
		"file_patterns": ["*.pest"],
		"line_comments": ["//"],
	},
	{
		"name": "PHP",
		"file_patterns": ["*.php", "*.php3", "*.php4", "*.php5", "*.phps", "*.phpt", "*.phtml"],
		"line_comments": ["//", "#"],
		"block_comments": [["/*", "*/"], ["<!--", "-->"]],
		"shebangs": ["#!/usr/bin/php", "#!/usr/bin/env php"],
	},
	{
		"name": "PicoLisp",
		"file_patterns": ["*.l"],
		"line_comments": ["#"],
		"keywords": ["de", "def", "dm", "class", "rel", "var"],
	},
	{
		"name": "Pike",
		"file_patterns": ["*.pike", "*.pmod"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "Pine Script",
		"file_patterns": ["*.pine"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "PKGBUILD",
		"file_patterns": ["PKGBUILD"],
		"line_comments": ["#"],
		"shebangs": ["#!/bin/bash", "#!/usr/bin/env bash", "#!/bin/sh", "#!/usr/bin/env sh"],
	},
	{
		"name": "PlantUML",
		"file_patterns": ["*.puml"],
		"line_comments": ["'"],
		"block_comments": [["/'", "'/"]],
	},
	{
		"name": "PogoScript",
		"file_patterns": ["*.pogo"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Poke",
		"file_patterns": ["*.pk"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Pony",
		"file_patterns": ["*.pony"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "PostCSS",
		"file_patterns": ["*.pcss", "*.sss"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "PostScript",
		"file_patterns": ["*.ps", "*.eps"],
		"line_comments": ["%"],
	},
	{
		"name": "PowerShell",
		"file_patterns": ["*.ps1", "*.psm1", "*.psd1", "*.ps1xml", "*.cdxml", "*.pssc", "*.psc1"],
		"line_comments": ["#"],
		"block_comments": [["<#", "#>"]],
	},
	{
		"name": "Prisma",
		"file_patterns": ["*.prisma"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Processing",
		"file_patterns": ["*.pde"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Prolog",
		"file_patterns": ["*.pro"],
		"line_comments": ["%"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Promela",
		"file_patterns": ["*.pml"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Protocol Buffers",
		"file_patterns": ["*.proto"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Pug",
		"file_patterns": ["*.pug", "*.jade"],
		"line_comments": ["//", "//-"],
	},
	{
		"name": "Puppet",
		"file_patterns": ["*.pp"],
		"line_comments": ["#"],
		"block_comments": [["/*", "*/"]],
		"keywords": ["class", "define", "node", "package", "service", "file", "exec", "=>"],
	},
	{
		"name": "PureBasic",
		"file_patterns": ["*.pb", "*.pbi", "*.pbf", "*.pbp"],
		"line_comments": [";"],
	},
	{
		"name": "PureScript",
		"file_patterns": ["*.purs"],
		"line_comments": ["--"],
		"block_comments": [["{-", "-}"]],
		"nested_blocks": true,
	},
	{
		"name": "Pyret",
		"file_patterns": ["*.arr"],
		"line_comments": ["#"],
		"block_comments": [["#|", "|#"]],
	},
	{
		"name": "Python",
		"file_patterns": ["*.py", "*.pyw", "*.py2", "*.py3", "*.pip", "*.pyz", "*.pyzw", ".gclient", "SConscript", "SConstruct", "Snakefile", "requirements.txt", "Pipfile", ".pythonrc", "py.typed"],
		"line_comments": ["#"],
		"block_comments": [["\"\"\"", "\"\"\""], ["'''", "'''"]],
		"shebangs": ["#!/usr/bin/python", "#!/usr/bin/env python", "#!/usr/bin/python3", "#!/usr/bin/env python3"],
	},
	{
		"name": "Q",
		"file_patterns": ["*.q"],
		"line_comments": ["/"],
	},
	{
		"name": "Q#",
		"file_patterns": ["*.qs"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "QCL",
		"file_patterns": ["*.qcl"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "QML",
		"file_patterns": ["*.qml"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "R",
		"file_patterns": ["*.r", "*.rmd", ".Rprofile"],
		"line_comments": ["#"],
		"keywords": ["<-", "function", "library", "data.frame", "ggplot", "lm"],
	},
	{
		"name": "Racket",
		"file_patterns": ["*.rkt", "*.rktd", "*.rktl", "*.rktm"],
		"line_comments": [";"],
		"block_comments": [["#|", "|#"]],
		"nested_blocks": true,
	},
	{
		"name": "Raku",
		"file_patterns": ["*.raku", "*.rakumod", "*.rakutest", "*.pm6", "*.pl6", "*.p6"],
		"line_comments": ["#"],
		"block_comments": [["#`(", ")"], ["=begin", "=end"]],
		"shebangs": ["#!/usr/bin/raku", "#!/usr/bin/perl6"],
	},
	{
		"name": "Rebol",
		"file_patterns": ["*.r", "*.reb", "*.rebol"],
		"line_comments": [";"],
		"keywords": ["REBOL", "context", "object!", "func"],
	},
	{
		"name": "Red",
		"file_patterns": ["*.red", "*.reds"],
		"line_comments": [";"],
		"block_comments": [["comment {", "}"]],
	},
	{
		"name": "ReScript",
		"file_patterns": ["*.res", "*.resi"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "reStructuredText",
		"file_patterns": ["*.rst"],
		"line_comments": [".."],
	},
	{
		"name": "REXX",
		"file_patterns": ["*.rexx", "*.rex"],
		"line_comments": [],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Ring",
		"file_patterns": ["*.ring", "*.rh"],
		"line_comments": ["#", "//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Robot Framework",
		"file_patterns": ["*.robot"],
		"line_comments": ["#"],
	},
	{
		"name": "Roc",
		"file_patterns": ["*.roc"],
		"line_comments": ["#"],
	},
	{
		"name": "Ruby",
		"file_patterns": ["*.rb", "*.builder", "*.eye", "*.gemspec", "*.god", "*.jbuilder", "*.mspec", "*.pluginspec", "*.podspec", "*.rabl", "*.rake", "*.rbuild", "*.rbw", "*.rbx", "*.ruby", "*.thor", "*.watchr", ".irbrc", ".pryrc", "Appraisals", "Berksfile", "Brewfile", "Buildfile", "Capfile", "Dangerfile", "Deliverfile", "Fastfile", "Gemfile", "Guardfile", "Jarfile", "Mavenfile", "Podfile", "Puppetfile", "Rakefile", "Snapfile", "Thorfile"],
		"line_comments": ["#"],
		"block_comments": [["=begin", "=end"]],
		"shebangs": ["#!/usr/bin/ruby", "#!/usr/bin/env ruby"],
	},
	{
		"name": "Rust",
		"file_patterns": ["*.rs", "*.rs.in"],
		"line_comments": ["//", "///", "//!"],
		"block_comments": [["/*", "*/"], ["/**", "*/"], ["/*!", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "SageMath",
		"file_patterns": ["*.sage", "*.sagews"],
		"line_comments": ["#"],
		"block_comments": [["\"\"\"", "\"\"\""], ["'''", "'''"]],
	},
	{
		"name": "Sass",
		"file_patterns": ["*.sass"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Scala",
		"file_patterns": ["*.scala", "*.sc", "build.sbt"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"keywords": ["object", "class", "trait", "def", "val", "var", "extends", "with"],
	},
	{
		"name": "Scheme",
		"file_patterns": ["*.scm", "*.ss"],
		"line_comments": [";"],
		"block_comments": [["#|", "|#"]],
		"nested_blocks": true,
	},
	{
		"name": "SCSS",
		"file_patterns": ["*.scss"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Sed",
		"file_patterns": ["*.sed"],
		"line_comments": ["#"],
	},
	{
		"name": "Shen",
		"file_patterns": ["*.shen"],
		"line_comments": ["\\\\"],
		"block_comments": [["\\\\*", "*\\\\"]],
	},
	{
		"name": "Slim",
		"file_patterns": ["*.slim"],
		"line_comments": ["/", "//"],
	},
	{
		"name": "Slint",
		"file_patterns": ["*.slint"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Smalltalk",
		"file_patterns": ["*.st"],
		"block_comments": [["\"", "\""]],
	},
	{
		"name": "Smarty",
		"file_patterns": ["*.tpl"],
		"block_comments": [["{{*", "*}}"]],
	},
	{
		"name": "SNOBOL",
		"file_patterns": ["*.sno", "*.snob", "*.snobol"],
		"line_comments": ["*"],
	},
	{
		"name": "Solidity",
		"file_patterns": ["*.sol"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},	
	{
		"name": "SpiderBasic",
		"file_patterns": ["*.sb", "*.sbi", "*.sbf", "*.sbp"],
		"line_comments": [";"],
	},
	{
		"name": "SQF",
		"file_patterns": ["*.sqf"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "SQL",
		"file_patterns": ["*.sql"],
		"line_comments": ["--"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Squirrel",
		"file_patterns": ["*.nut"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Stan",
		"file_patterns": ["*.stan"],
		"line_comments": ["//", "#"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Standard ML",
		"file_patterns": ["*.sml", "*.sig", "*.fun"],
		"line_comments": [],
		"block_comments": [["(*", "*)"]],
		"nested_blocks": true,
	},
	{
		"name": "Stata",
		"file_patterns": ["*.do"],
		"line_comments": ["//", "*"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Stylus",
		"file_patterns": ["*.styl"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "SuperCollider",
		"file_patterns": ["*.sc", "*.scd"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"keywords": ["SinOsc", "SynthDef", "Server", "~", ".ar", ".kr"],
	},
	{
		"name": "Svelte",
		"file_patterns": ["*.svelte"],
		"block_comments": [["<!--", "-->"]],
	},
	{
		"name": "SVG",
		"file_patterns": ["*.svg"],
		"block_comments": [["<!--", "-->"]],
	},
	{
		"name": "Swift",
		"file_patterns": ["*.swift", "*.swiftpm"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "Swig",
		"file_patterns": ["*.swg", "*.i"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "TC Shell",
		"file_patterns": ["*.tcsh"],
		"line_comments": ["#"],
	},
	{
		"name": "Tcl",
		"file_patterns": ["*.tcl", "*.tk"],
		"line_comments": ["#"],
	},
	{
		"name": "Teal",
		"file_patterns": ["*.tl"],
		"line_comments": ["--"],
		"block_comments": [["--[[", "--]]"]],
	},
	{
		"name": "Templ",
		"file_patterns": ["*.templ"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Tera",
		"file_patterns": ["*.tera"],
		"block_comments": [["<!--", "-->"], ["{#", "#}"]],
	},
	{
		"name": "TeX/LaTeX",
		"file_patterns": ["*.tex", "*.sty", "*.bbx", "*.cbx", "*.lbx", ".latexmkrc"],
		"line_comments": ["%"],
	},
	{
		"name": "Textile",
		"file_patterns": ["*.textile"],
	},
	{
		"name": "Thrift",
		"file_patterns": ["*.thrift"],
		"line_comments": ["#", "//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "TLA+",
		"file_patterns": ["*.tla"],
		"line_comments": ["\\\\"],
		"block_comments": [["(*", "*)"]],
	},
	{
		"name": "Tmux",
		"file_patterns": ["*.tmux"],
		"line_comments": ["#"],
	},
	{
		"name": "TOML",
		"file_patterns": ["*.toml"],
		"line_comments": ["#"],
	},
	{
		"name": "Twig",
		"file_patterns": ["*.twig"],
		"block_comments": [["{#", "#}"]],
	},
	{
		"name": "txt2tags",
		"file_patterns": ["*.t2t"],
		"line_comments": ["%"],
	},
	{
		"name": "TypeScript",
		"file_patterns": ["*.ts", "*.tsx", "*.d.ts", "*.cts", "*.mts", "*.d.cts", "*.d.mts"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "Umka",
		"file_patterns": ["*.um"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Unison",
		"file_patterns": ["*.u", "*.uu"],
		"line_comments": ["--"],
		"block_comments": [["{-", "-}"]],
		"nested_blocks": true,
	},
	{
		"name": "UnrealScript",
		"file_patterns": ["*.uc"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "Uxntal",
		"file_patterns": ["*.tal"],
		"line_comments": ["(", ")"],
	},
	{
		"name": "V",
		"file_patterns": ["*.v"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"nested_blocks": true,
	},	
	{
		"name": "Vala",
		"file_patterns": ["*.vala", "*.vapi"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "Vale",
		"file_patterns": ["*.vale"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Verilog",
		"file_patterns": ["*.vh", "*.sv", "*.svh"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "VHDL",
		"file_patterns": ["*.vhd", "*.vhdl"],
		"line_comments": ["--"],
	},
	{
		"name": "Vim script",
		"file_patterns": ["*.vim"],
		"line_comments": ["\""],
	},
	{
		"name": "Visual Basic/Visual Basic .NET",
		"file_patterns": ["*.vb", "*.cls", "*.frm", "*.frx", "*.vba", "*.vbhtml", "*.vbs"],
		"line_comments": ["'"],
	},
	{
		"name": "Vue",
		"file_patterns": ["*.vue"],
		"line_comments": ["//"],
		"block_comments": [["<!--", "-->"], ["/*", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "WebAssembly",
		"file_patterns": ["*.wat", "*.wasm"],
		"line_comments": [";;"],
		"block_comments": [["(;", ";)"]],
		"nested_blocks": true,
	},
	{
		"name": "WebIDL",
		"file_patterns": ["*.webidl"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Wenyan",
		"file_patterns": ["*.wy"],
		"line_comments": ["注曰"],
		"block_comments": [["批曰", "也"]],
	},
	{
		"name": "WGSL",
		"file_patterns": ["*.wgsl"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Windows Registry Entry",
		"file_patterns": ["*.reg"],
		"line_comments": [";", "#"],
	},
	{
		"name": "Windows Resource File",
		"file_patterns": ["*.rc"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"nested_blocks": true,
	},
	{
		"name": "WiX",
		"file_patterns": ["*.wxs"],
		"block_comments": [["<!--", "-->"]],
	},
	{
		"name": "Wren",
		"file_patterns": ["*.wren"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "XML",
		"file_patterns": ["*.xml"],
		"block_comments": [["<!--", "-->"]],
	},
	{
		"name": "Yacc",
		"file_patterns": ["*.y", "*.yacc"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
		"keywords": ["%token", "%type", "%start", "yyparse"],
	},
	{
		"name": "YAML",
		"file_patterns": ["*.yaml", "*.yml", "*.yaml.tmpl", "*.yaml-tmpl", ".yamllint"],
		"line_comments": ["#"],
	},
	{
		"name": "ZenCode",
		"file_patterns": ["*.zs"],
		"line_comments": ["//", "#"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "Zig",
		"file_patterns": ["*.zig"],
		"line_comments": ["//", "///", "//!"],
	},
	{
		"name": "ZoKrates",
		"file_patterns": ["*.zok"],
		"line_comments": ["//"],
		"block_comments": [["/*", "*/"]],
	},
	{
		"name": "ZSH",
		"file_patterns": ["*.zsh", ".zlogin", ".zlogout", ".zprofile", ".zshenv", ".zshrc"],
		"line_comments": ["#"],
		"shebangs": ["#!/bin/zsh"],
	},
]
