octokit / octokit.js

The all-batteries-included GitHub SDK for Browsers, Node.js, and Deno.
MIT License
6.93k stars 1.01k forks source link

GIST Object Error #1046

Closed shanalikhan closed 5 years ago

shanalikhan commented 5 years ago

I am trying to create GIST with the following Object. Getting error but it was working fine in previous versions.

private GIST_JSON_EMPTY: GitHubApi.GistsCreateParams = {
    description: "Visual Studio Code Sync Settings Gist",
    public: false,
    files: {
      "settings.json" : {
        content: "// Empty"
      },
      "launch.json": {
        content: "// Empty"
      },
      "keybindings.json": {
        content: "// Empty"
      },
      "extensions.json": {
        content: "// Empty"
      },
      "locale.json": {
        content: "// Empty"
      },
      "keybindingsMac.json": {
        content: "// Empty"
      },
      cloudSettings: {
        content: "// Empty"
      }
    }
  };

I dont see any example for this: https://octokit.github.io/rest.js/#api-Gists-create

Getting typescript error :

{
    "resource": "/home/shan/Documents/code-settings-sync/src/service/githubService.ts",
    "owner": "typescript",
    "code": "2322",
    "severity": 8,
    "message": "Type '{ \"settings.json\": { content: string; }; \"launch.json\": { content: string; }; \"keybindings.json\": { content: string; }; \"extensions.json\": { content: string; }; \"locale.json\": { content: string; }; \"keybindingsMac.json\": { ...; }; cloudSettings: { ...; }; }' is not assignable to type 'GistsCreateParamsFiles'.\n  Object literal may only specify known properties, and '\"settings.json\"' does not exist in type 'GistsCreateParamsFiles'.",
    "source": "ts",
    "startLineNumber": 22,
    "startColumn": 7,
    "endLineNumber": 24,
    "endColumn": 8,
    "relatedInformation": [
        {
            "startLineNumber": 17019,
            "startColumn": 5,
            "endLineNumber": 17019,
            "endColumn": 10,
            "message": "The expected type comes from property 'files' which is declared here on type 'GistsCreateParams'",
            "resource": "/home/shan/Documents/code-settings-sync/node_modules/@octokit/rest/index.d.ts"
        }
    ]
}
gr2m commented 5 years ago

Can you find out what the exact version was when your code broke? That will make it simpler to find the cause of the problem.

shanalikhan commented 5 years ago

I have to find out.

Here is the package history if your team wants to spend time to look. I think last i changed from v11 to 15. https://github.com/shanalikhan/code-settings-sync/commits/v3.2/package.json

gr2m commented 5 years ago

There were plenty of breaking changes between v11 and v15, make sure to look trough all the release notes for v12, v13, v14 and v15 https://github.com/octokit/rest.js/releases

shanalikhan commented 5 years ago

Yes i know and i have fixed them all in my project. Can u tell me the code written to create gist that is throwing exception is changed? Because this is the standard request for github for creating gist

Get Outlook for iOShttps://aka.ms/o0ukef


From: Gregor Martynus notifications@github.com Sent: Wednesday, October 10, 2018 11:21:53 PM To: octokit/rest.js Cc: Shan Khan; Author Subject: Re: [octokit/rest.js] GIST Object Error (#1046)

There were plenty of breaking changes between v11 and v15, make sure to look trough all the release notes for v12, v13, v14 and v15 https://github.com/octokit/rest.js/releases

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/octokit/rest.js/issues/1046#issuecomment-428678458, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AIXjnKp9waGL0Tk8ElVQLcNvd6W23w1aks5ujjrBgaJpZM4XU_zE.

gr2m commented 5 years ago

It looks like a typescript error. The code is fine, it looks like a problem with the typescript definitions, I’m not an expert on that, these have mostly been contributed by others. I’ll ask for help but it would be great if you could give a look yourself

shanalikhan commented 5 years ago

FYI :

https://github.com/shanalikhan/code-settings-sync/issues/634

gr2m commented 5 years ago

Looks like you resolved it?

shanalikhan commented 5 years ago

No.

I had to put

private GIST_JSON_EMPTY: any = {

For temporary fix.

gr2m commented 5 years ago

I won’t have time to look into this any time soon, I’d appreciate help to get this fixed /cc @octokit/ts

tcbyrd commented 5 years ago

@gr2m Looks like the types are being generated with this files type:

  export type GistsCreateParamsFiles = {
    content?: string;
  };
  export type GistsUpdateParamsFiles = {
    content?: string;
    filename?: string;
  };

But the filename is the key of an object, with a content field that's a string, so I think that should be:

  export type GistsCreateParamsFiles = {
    [key: string]: {
      content?: string;
    }
  };
  export type GistsUpdateParamsFiles = {
      [key: string]: {
        content?: string;
      }
  };

Any thoughts on why the script generates the wrong type?

gr2m commented 5 years ago

I’m not sure, here is the current route definition for .gists.create()

https://github.com/octokit/rest.js/blob/be612882777b5e4952c3d8ab11b26bdb7f83baed/plugins/rest-api-endpoints/routes.json#L1466-L1484

I think here is the part that we might want to look into in scripts/generate-types.js

https://github.com/octokit/rest.js/blob/be612882777b5e4952c3d8ab11b26bdb7f83baed/scripts/generate-types.js#L97-L104

gr2m commented 5 years ago

I’ve looked into this and the challenge is that the current definition for .gists.create() we get from octokit/routes says that the files parameter is an object with a content property. What it should say instead is that files is an object with members of various keys, and these members have a property content. I’m not sure

  1. how this would be expressed in the current syntax of ocotkit/routes
  2. how to parse the docs to end up in that syntax. Worst case (or if this is the only case where this kind of parameter exists) we could define an override.

Either way, next step would be to create an issue https://github.com/octokit/routes discussing the definition for the "Create a gist" endpoint

shanalikhan commented 5 years ago

any update on this?

gr2m commented 5 years ago

I’m afraid not.

If you like to override the typescript definition locally, here is a list of all possible languages

JSON
[
  {
    "name": "1C Enterprise",
    "aliases": [
      "1c-enterprise"
    ]
  },
  {
    "name": "ABAP",
    "aliases": [
      "abap"
    ]
  },
  {
    "name": "ABNF",
    "aliases": [
      "abnf"
    ]
  },
  {
    "name": "AGS Script",
    "aliases": [
      "ags-script",
      "ags"
    ]
  },
  {
    "name": "AMPL",
    "aliases": [
      "ampl"
    ]
  },
  {
    "name": "ANTLR",
    "aliases": [
      "antlr"
    ]
  },
  {
    "name": "API Blueprint",
    "aliases": [
      "api-blueprint"
    ]
  },
  {
    "name": "APL",
    "aliases": [
      "apl"
    ]
  },
  {
    "name": "ASN.1",
    "aliases": [
      "asn.1"
    ]
  },
  {
    "name": "ASP",
    "aliases": [
      "asp",
      "aspx",
      "aspx-vb"
    ]
  },
  {
    "name": "ATS",
    "aliases": [
      "ats",
      "ats2"
    ]
  },
  {
    "name": "ActionScript",
    "aliases": [
      "actionscript",
      "actionscript 3",
      "actionscript3",
      "as3"
    ]
  },
  {
    "name": "Ada",
    "aliases": [
      "ada",
      "ada95",
      "ada2005"
    ]
  },
  {
    "name": "Adobe Font Metrics",
    "aliases": [
      "adobe-font-metrics",
      "acfm",
      "adobe composite font metrics",
      "adobe multiple font metrics",
      "amfm"
    ]
  },
  {
    "name": "Agda",
    "aliases": [
      "agda"
    ]
  },
  {
    "name": "Alloy",
    "aliases": [
      "alloy"
    ]
  },
  {
    "name": "Alpine Abuild",
    "aliases": [
      "alpine-abuild",
      "abuild",
      "apkbuild"
    ]
  },
  {
    "name": "AngelScript",
    "aliases": [
      "angelscript"
    ]
  },
  {
    "name": "Ant Build System",
    "aliases": [
      "ant-build-system"
    ]
  },
  {
    "name": "ApacheConf",
    "aliases": [
      "apacheconf",
      "aconf",
      "apache"
    ]
  },
  {
    "name": "Apex",
    "aliases": [
      "apex"
    ]
  },
  {
    "name": "Apollo Guidance Computer",
    "aliases": [
      "apollo-guidance-computer"
    ]
  },
  {
    "name": "AppleScript",
    "aliases": [
      "applescript",
      "osascript"
    ]
  },
  {
    "name": "Arc",
    "aliases": [
      "arc"
    ]
  },
  {
    "name": "AsciiDoc",
    "aliases": [
      "asciidoc"
    ]
  },
  {
    "name": "AspectJ",
    "aliases": [
      "aspectj"
    ]
  },
  {
    "name": "Assembly",
    "aliases": [
      "assembly",
      "asm",
      "nasm"
    ]
  },
  {
    "name": "Asymptote",
    "aliases": [
      "asymptote"
    ]
  },
  {
    "name": "Augeas",
    "aliases": [
      "augeas"
    ]
  },
  {
    "name": "AutoHotkey",
    "aliases": [
      "autohotkey",
      "ahk"
    ]
  },
  {
    "name": "AutoIt",
    "aliases": [
      "autoit",
      "au3",
      "AutoIt3",
      "AutoItScript"
    ]
  },
  {
    "name": "Awk",
    "aliases": [
      "awk"
    ]
  },
  {
    "name": "Ballerina",
    "aliases": [
      "ballerina"
    ]
  },
  {
    "name": "Batchfile",
    "aliases": [
      "batchfile",
      "bat",
      "batch",
      "dosbatch",
      "winbatch"
    ]
  },
  {
    "name": "Befunge",
    "aliases": [
      "befunge"
    ]
  },
  {
    "name": "Bison",
    "aliases": [
      "bison"
    ]
  },
  {
    "name": "BitBake",
    "aliases": [
      "bitbake"
    ]
  },
  {
    "name": "Blade",
    "aliases": [
      "blade"
    ]
  },
  {
    "name": "BlitzBasic",
    "aliases": [
      "blitzbasic",
      "b3d",
      "blitz3d",
      "blitzplus",
      "bplus"
    ]
  },
  {
    "name": "BlitzMax",
    "aliases": [
      "blitzmax",
      "bmax"
    ]
  },
  {
    "name": "Bluespec",
    "aliases": [
      "bluespec"
    ]
  },
  {
    "name": "Boo",
    "aliases": [
      "boo"
    ]
  },
  {
    "name": "Brainfuck",
    "aliases": [
      "brainfuck"
    ]
  },
  {
    "name": "Brightscript",
    "aliases": [
      "brightscript"
    ]
  },
  {
    "name": "Bro",
    "aliases": [
      "bro"
    ]
  },
  {
    "name": "C",
    "aliases": [
      "c"
    ]
  },
  {
    "name": "C#",
    "aliases": [
      "c#",
      "csharp"
    ]
  },
  {
    "name": "C++",
    "aliases": [
      "c++",
      "cpp"
    ]
  },
  {
    "name": "C-ObjDump",
    "aliases": [
      "c-objdump"
    ]
  },
  {
    "name": "C2hs Haskell",
    "aliases": [
      "c2hs-haskell",
      "c2hs"
    ]
  },
  {
    "name": "CLIPS",
    "aliases": [
      "clips"
    ]
  },
  {
    "name": "CMake",
    "aliases": [
      "cmake"
    ]
  },
  {
    "name": "COBOL",
    "aliases": [
      "cobol"
    ]
  },
  {
    "name": "COLLADA",
    "aliases": [
      "collada"
    ]
  },
  {
    "name": "CSON",
    "aliases": [
      "cson"
    ]
  },
  {
    "name": "CSS",
    "aliases": [
      "css"
    ]
  },
  {
    "name": "CSV",
    "aliases": [
      "csv"
    ]
  },
  {
    "name": "CWeb",
    "aliases": [
      "cweb"
    ]
  },
  {
    "name": "Cabal Config",
    "aliases": [
      "cabal-config",
      "Cabal"
    ]
  },
  {
    "name": "Cap'n Proto",
    "aliases": [
      "cap'n-proto"
    ]
  },
  {
    "name": "CartoCSS",
    "aliases": [
      "cartocss",
      "Carto"
    ]
  },
  {
    "name": "Ceylon",
    "aliases": [
      "ceylon"
    ]
  },
  {
    "name": "Chapel",
    "aliases": [
      "chapel",
      "chpl"
    ]
  },
  {
    "name": "Charity",
    "aliases": [
      "charity"
    ]
  },
  {
    "name": "ChucK",
    "aliases": [
      "chuck"
    ]
  },
  {
    "name": "Cirru",
    "aliases": [
      "cirru"
    ]
  },
  {
    "name": "Clarion",
    "aliases": [
      "clarion"
    ]
  },
  {
    "name": "Clean",
    "aliases": [
      "clean"
    ]
  },
  {
    "name": "Click",
    "aliases": [
      "click"
    ]
  },
  {
    "name": "Clojure",
    "aliases": [
      "clojure"
    ]
  },
  {
    "name": "Closure Templates",
    "aliases": [
      "closure-templates",
      "soy"
    ]
  },
  {
    "name": "Cloud Firestore Security Rules",
    "aliases": [
      "cloud-firestore-security-rules"
    ]
  },
  {
    "name": "CoNLL-U",
    "aliases": [
      "conll-u",
      "CoNLL",
      "CoNLL-X"
    ]
  },
  {
    "name": "CoffeeScript",
    "aliases": [
      "coffeescript",
      "coffee",
      "coffee-script"
    ]
  },
  {
    "name": "ColdFusion",
    "aliases": [
      "coldfusion",
      "cfm",
      "cfml",
      "coldfusion html"
    ]
  },
  {
    "name": "ColdFusion CFC",
    "aliases": [
      "coldfusion-cfc",
      "cfc"
    ]
  },
  {
    "name": "Common Lisp",
    "aliases": [
      "common-lisp",
      "lisp"
    ]
  },
  {
    "name": "Common Workflow Language",
    "aliases": [
      "common-workflow-language",
      "cwl"
    ]
  },
  {
    "name": "Component Pascal",
    "aliases": [
      "component-pascal",
      "delphi",
      "objectpascal"
    ]
  },
  {
    "name": "Cool",
    "aliases": [
      "cool"
    ]
  },
  {
    "name": "Coq",
    "aliases": [
      "coq"
    ]
  },
  {
    "name": "Cpp-ObjDump",
    "aliases": [
      "cpp-objdump",
      "c++-objdump"
    ]
  },
  {
    "name": "Creole",
    "aliases": [
      "creole"
    ]
  },
  {
    "name": "Crystal",
    "aliases": [
      "crystal"
    ]
  },
  {
    "name": "Csound",
    "aliases": [
      "csound",
      "csound-orc"
    ]
  },
  {
    "name": "Csound Document",
    "aliases": [
      "csound-document",
      "csound-csd"
    ]
  },
  {
    "name": "Csound Score",
    "aliases": [
      "csound-score",
      "csound-sco"
    ]
  },
  {
    "name": "Cuda",
    "aliases": [
      "cuda"
    ]
  },
  {
    "name": "Cycript",
    "aliases": [
      "cycript"
    ]
  },
  {
    "name": "Cython",
    "aliases": [
      "cython",
      "pyrex"
    ]
  },
  {
    "name": "D",
    "aliases": [
      "d"
    ]
  },
  {
    "name": "D-ObjDump",
    "aliases": [
      "d-objdump"
    ]
  },
  {
    "name": "DIGITAL Command Language",
    "aliases": [
      "digital-command-language",
      "dcl"
    ]
  },
  {
    "name": "DM",
    "aliases": [
      "dm",
      "byond"
    ]
  },
  {
    "name": "DNS Zone",
    "aliases": [
      "dns-zone"
    ]
  },
  {
    "name": "DTrace",
    "aliases": [
      "dtrace",
      "dtrace-script"
    ]
  },
  {
    "name": "Darcs Patch",
    "aliases": [
      "darcs-patch",
      "dpatch"
    ]
  },
  {
    "name": "Dart",
    "aliases": [
      "dart"
    ]
  },
  {
    "name": "DataWeave",
    "aliases": [
      "dataweave"
    ]
  },
  {
    "name": "Diff",
    "aliases": [
      "diff",
      "udiff"
    ]
  },
  {
    "name": "Dockerfile",
    "aliases": [
      "dockerfile"
    ]
  },
  {
    "name": "Dogescript",
    "aliases": [
      "dogescript"
    ]
  },
  {
    "name": "Dylan",
    "aliases": [
      "dylan"
    ]
  },
  {
    "name": "E",
    "aliases": [
      "e"
    ]
  },
  {
    "name": "EBNF",
    "aliases": [
      "ebnf"
    ]
  },
  {
    "name": "ECL",
    "aliases": [
      "ecl"
    ]
  },
  {
    "name": "ECLiPSe",
    "aliases": [
      "eclipse"
    ]
  },
  {
    "name": "EJS",
    "aliases": [
      "ejs"
    ]
  },
  {
    "name": "EML",
    "aliases": [
      "eml"
    ]
  },
  {
    "name": "EQ",
    "aliases": [
      "eq"
    ]
  },
  {
    "name": "Eagle",
    "aliases": [
      "eagle"
    ]
  },
  {
    "name": "Easybuild",
    "aliases": [
      "easybuild"
    ]
  },
  {
    "name": "Ecere Projects",
    "aliases": [
      "ecere-projects"
    ]
  },
  {
    "name": "EditorConfig",
    "aliases": [
      "editorconfig",
      "editor-config"
    ]
  },
  {
    "name": "Edje Data Collection",
    "aliases": [
      "edje-data-collection"
    ]
  },
  {
    "name": "Eiffel",
    "aliases": [
      "eiffel"
    ]
  },
  {
    "name": "Elixir",
    "aliases": [
      "elixir"
    ]
  },
  {
    "name": "Elm",
    "aliases": [
      "elm"
    ]
  },
  {
    "name": "Emacs Lisp",
    "aliases": [
      "emacs-lisp",
      "elisp",
      "emacs"
    ]
  },
  {
    "name": "EmberScript",
    "aliases": [
      "emberscript"
    ]
  },
  {
    "name": "Erlang",
    "aliases": [
      "erlang"
    ]
  },
  {
    "name": "F#",
    "aliases": [
      "f#",
      "fsharp"
    ]
  },
  {
    "name": "F*",
    "aliases": [
      "f*",
      "fstar"
    ]
  },
  {
    "name": "FIGlet Font",
    "aliases": [
      "figlet-font",
      "FIGfont"
    ]
  },
  {
    "name": "FLUX",
    "aliases": [
      "flux"
    ]
  },
  {
    "name": "Factor",
    "aliases": [
      "factor"
    ]
  },
  {
    "name": "Fancy",
    "aliases": [
      "fancy"
    ]
  },
  {
    "name": "Fantom",
    "aliases": [
      "fantom"
    ]
  },
  {
    "name": "Filebench WML",
    "aliases": [
      "filebench-wml"
    ]
  },
  {
    "name": "Filterscript",
    "aliases": [
      "filterscript"
    ]
  },
  {
    "name": "Formatted",
    "aliases": [
      "formatted"
    ]
  },
  {
    "name": "Forth",
    "aliases": [
      "forth"
    ]
  },
  {
    "name": "Fortran",
    "aliases": [
      "fortran"
    ]
  },
  {
    "name": "FreeMarker",
    "aliases": [
      "freemarker",
      "ftl"
    ]
  },
  {
    "name": "Frege",
    "aliases": [
      "frege"
    ]
  },
  {
    "name": "G-code",
    "aliases": [
      "g-code"
    ]
  },
  {
    "name": "GAMS",
    "aliases": [
      "gams"
    ]
  },
  {
    "name": "GAP",
    "aliases": [
      "gap"
    ]
  },
  {
    "name": "GCC Machine Description",
    "aliases": [
      "gcc-machine-description"
    ]
  },
  {
    "name": "GDB",
    "aliases": [
      "gdb"
    ]
  },
  {
    "name": "GDScript",
    "aliases": [
      "gdscript"
    ]
  },
  {
    "name": "GLSL",
    "aliases": [
      "glsl"
    ]
  },
  {
    "name": "GN",
    "aliases": [
      "gn"
    ]
  },
  {
    "name": "Game Maker Language",
    "aliases": [
      "game-maker-language"
    ]
  },
  {
    "name": "Genie",
    "aliases": [
      "genie"
    ]
  },
  {
    "name": "Genshi",
    "aliases": [
      "genshi",
      "xml+genshi",
      "xml+kid"
    ]
  },
  {
    "name": "Gentoo Ebuild",
    "aliases": [
      "gentoo-ebuild"
    ]
  },
  {
    "name": "Gentoo Eclass",
    "aliases": [
      "gentoo-eclass"
    ]
  },
  {
    "name": "Gerber Image",
    "aliases": [
      "gerber-image",
      "rs-274x"
    ]
  },
  {
    "name": "Gettext Catalog",
    "aliases": [
      "gettext-catalog",
      "pot"
    ]
  },
  {
    "name": "Gherkin",
    "aliases": [
      "gherkin",
      "cucumber"
    ]
  },
  {
    "name": "Git Attributes",
    "aliases": [
      "git-attributes",
      "gitattributes"
    ]
  },
  {
    "name": "Git Config",
    "aliases": [
      "git-config",
      "gitconfig",
      "gitmodules"
    ]
  },
  {
    "name": "Glyph",
    "aliases": [
      "glyph"
    ]
  },
  {
    "name": "Glyph Bitmap Distribution Format",
    "aliases": [
      "glyph-bitmap-distribution-format"
    ]
  },
  {
    "name": "Gnuplot",
    "aliases": [
      "gnuplot"
    ]
  },
  {
    "name": "Go",
    "aliases": [
      "go",
      "golang"
    ]
  },
  {
    "name": "Golo",
    "aliases": [
      "golo"
    ]
  },
  {
    "name": "Gosu",
    "aliases": [
      "gosu"
    ]
  },
  {
    "name": "Grace",
    "aliases": [
      "grace"
    ]
  },
  {
    "name": "Gradle",
    "aliases": [
      "gradle"
    ]
  },
  {
    "name": "Grammatical Framework",
    "aliases": [
      "grammatical-framework",
      "gf"
    ]
  },
  {
    "name": "Graph Modeling Language",
    "aliases": [
      "graph-modeling-language"
    ]
  },
  {
    "name": "GraphQL",
    "aliases": [
      "graphql"
    ]
  },
  {
    "name": "Graphviz (DOT)",
    "aliases": [
      "graphviz-(dot)"
    ]
  },
  {
    "name": "Groovy",
    "aliases": [
      "groovy"
    ]
  },
  {
    "name": "Groovy Server Pages",
    "aliases": [
      "groovy-server-pages",
      "gsp",
      "java server page"
    ]
  },
  {
    "name": "HAProxy",
    "aliases": [
      "haproxy"
    ]
  },
  {
    "name": "HCL",
    "aliases": [
      "hcl",
      "terraform"
    ]
  },
  {
    "name": "HLSL",
    "aliases": [
      "hlsl"
    ]
  },
  {
    "name": "HTML",
    "aliases": [
      "html",
      "xhtml"
    ]
  },
  {
    "name": "HTML+Django",
    "aliases": [
      "html+django",
      "django",
      "html+django/jinja",
      "html+jinja",
      "htmldjango",
      "njk",
      "nunjucks"
    ]
  },
  {
    "name": "HTML+ECR",
    "aliases": [
      "html+ecr",
      "ecr"
    ]
  },
  {
    "name": "HTML+EEX",
    "aliases": [
      "html+eex",
      "eex"
    ]
  },
  {
    "name": "HTML+ERB",
    "aliases": [
      "html+erb",
      "erb"
    ]
  },
  {
    "name": "HTML+PHP",
    "aliases": [
      "html+php"
    ]
  },
  {
    "name": "HTML+Razor",
    "aliases": [
      "html+razor",
      "razor"
    ]
  },
  {
    "name": "HTTP",
    "aliases": [
      "http"
    ]
  },
  {
    "name": "HXML",
    "aliases": [
      "hxml"
    ]
  },
  {
    "name": "Hack",
    "aliases": [
      "hack"
    ]
  },
  {
    "name": "Haml",
    "aliases": [
      "haml"
    ]
  },
  {
    "name": "Handlebars",
    "aliases": [
      "handlebars",
      "hbs",
      "htmlbars"
    ]
  },
  {
    "name": "Harbour",
    "aliases": [
      "harbour"
    ]
  },
  {
    "name": "Haskell",
    "aliases": [
      "haskell"
    ]
  },
  {
    "name": "Haxe",
    "aliases": [
      "haxe"
    ]
  },
  {
    "name": "HiveQL",
    "aliases": [
      "hiveql"
    ]
  },
  {
    "name": "Hy",
    "aliases": [
      "hy",
      "hylang"
    ]
  },
  {
    "name": "HyPhy",
    "aliases": [
      "hyphy"
    ]
  },
  {
    "name": "IDL",
    "aliases": [
      "idl"
    ]
  },
  {
    "name": "IGOR Pro",
    "aliases": [
      "igor-pro",
      "igor",
      "igorpro"
    ]
  },
  {
    "name": "INI",
    "aliases": [
      "ini",
      "dosini"
    ]
  },
  {
    "name": "IRC log",
    "aliases": [
      "irc-log",
      "irc",
      "irc logs"
    ]
  },
  {
    "name": "Idris",
    "aliases": [
      "idris"
    ]
  },
  {
    "name": "Ignore List",
    "aliases": [
      "ignore-list",
      "ignore",
      "gitignore",
      "git-ignore"
    ]
  },
  {
    "name": "Inform 7",
    "aliases": [
      "inform-7",
      "i7",
      "inform7"
    ]
  },
  {
    "name": "Inno Setup",
    "aliases": [
      "inno-setup"
    ]
  },
  {
    "name": "Io",
    "aliases": [
      "io"
    ]
  },
  {
    "name": "Ioke",
    "aliases": [
      "ioke"
    ]
  },
  {
    "name": "Isabelle",
    "aliases": [
      "isabelle"
    ]
  },
  {
    "name": "Isabelle ROOT",
    "aliases": [
      "isabelle-root"
    ]
  },
  {
    "name": "J",
    "aliases": [
      "j"
    ]
  },
  {
    "name": "JFlex",
    "aliases": [
      "jflex"
    ]
  },
  {
    "name": "JSON",
    "aliases": [
      "json"
    ]
  },
  {
    "name": "JSON with Comments",
    "aliases": [
      "json-with-comments",
      "jsonc"
    ]
  },
  {
    "name": "JSON5",
    "aliases": [
      "json5"
    ]
  },
  {
    "name": "JSONLD",
    "aliases": [
      "jsonld"
    ]
  },
  {
    "name": "JSONiq",
    "aliases": [
      "jsoniq"
    ]
  },
  {
    "name": "JSX",
    "aliases": [
      "jsx"
    ]
  },
  {
    "name": "Jasmin",
    "aliases": [
      "jasmin"
    ]
  },
  {
    "name": "Java",
    "aliases": [
      "java"
    ]
  },
  {
    "name": "Java Properties",
    "aliases": [
      "java-properties"
    ]
  },
  {
    "name": "Java Server Pages",
    "aliases": [
      "java-server-pages",
      "jsp"
    ]
  },
  {
    "name": "JavaScript",
    "aliases": [
      "javascript",
      "js",
      "node"
    ]
  },
  {
    "name": "Jison",
    "aliases": [
      "jison"
    ]
  },
  {
    "name": "Jison Lex",
    "aliases": [
      "jison-lex"
    ]
  },
  {
    "name": "Jolie",
    "aliases": [
      "jolie"
    ]
  },
  {
    "name": "Jsonnet",
    "aliases": [
      "jsonnet"
    ]
  },
  {
    "name": "Julia",
    "aliases": [
      "julia"
    ]
  },
  {
    "name": "Jupyter Notebook",
    "aliases": [
      "jupyter-notebook",
      "IPython Notebook"
    ]
  },
  {
    "name": "KRL",
    "aliases": [
      "krl"
    ]
  },
  {
    "name": "KiCad Layout",
    "aliases": [
      "kicad-layout",
      "pcbnew"
    ]
  },
  {
    "name": "KiCad Legacy Layout",
    "aliases": [
      "kicad-legacy-layout"
    ]
  },
  {
    "name": "KiCad Schematic",
    "aliases": [
      "kicad-schematic",
      "eeschema schematic"
    ]
  },
  {
    "name": "Kit",
    "aliases": [
      "kit"
    ]
  },
  {
    "name": "Kotlin",
    "aliases": [
      "kotlin"
    ]
  },
  {
    "name": "LFE",
    "aliases": [
      "lfe"
    ]
  },
  {
    "name": "LLVM",
    "aliases": [
      "llvm"
    ]
  },
  {
    "name": "LOLCODE",
    "aliases": [
      "lolcode"
    ]
  },
  {
    "name": "LSL",
    "aliases": [
      "lsl"
    ]
  },
  {
    "name": "LTspice Symbol",
    "aliases": [
      "ltspice-symbol"
    ]
  },
  {
    "name": "LabVIEW",
    "aliases": [
      "labview"
    ]
  },
  {
    "name": "Lasso",
    "aliases": [
      "lasso",
      "lassoscript"
    ]
  },
  {
    "name": "Latte",
    "aliases": [
      "latte"
    ]
  },
  {
    "name": "Lean",
    "aliases": [
      "lean"
    ]
  },
  {
    "name": "Less",
    "aliases": [
      "less"
    ]
  },
  {
    "name": "Lex",
    "aliases": [
      "lex",
      "flex"
    ]
  },
  {
    "name": "LilyPond",
    "aliases": [
      "lilypond"
    ]
  },
  {
    "name": "Limbo",
    "aliases": [
      "limbo"
    ]
  },
  {
    "name": "Linker Script",
    "aliases": [
      "linker-script"
    ]
  },
  {
    "name": "Linux Kernel Module",
    "aliases": [
      "linux-kernel-module"
    ]
  },
  {
    "name": "Liquid",
    "aliases": [
      "liquid"
    ]
  },
  {
    "name": "Literate Agda",
    "aliases": [
      "literate-agda"
    ]
  },
  {
    "name": "Literate CoffeeScript",
    "aliases": [
      "literate-coffeescript",
      "litcoffee"
    ]
  },
  {
    "name": "Literate Haskell",
    "aliases": [
      "literate-haskell",
      "lhaskell",
      "lhs"
    ]
  },
  {
    "name": "LiveScript",
    "aliases": [
      "livescript",
      "live-script",
      "ls"
    ]
  },
  {
    "name": "Logos",
    "aliases": [
      "logos"
    ]
  },
  {
    "name": "Logtalk",
    "aliases": [
      "logtalk"
    ]
  },
  {
    "name": "LookML",
    "aliases": [
      "lookml"
    ]
  },
  {
    "name": "LoomScript",
    "aliases": [
      "loomscript"
    ]
  },
  {
    "name": "Lua",
    "aliases": [
      "lua"
    ]
  },
  {
    "name": "M",
    "aliases": [
      "m",
      "mumps"
    ]
  },
  {
    "name": "M4",
    "aliases": [
      "m4"
    ]
  },
  {
    "name": "M4Sugar",
    "aliases": [
      "m4sugar",
      "autoconf"
    ]
  },
  {
    "name": "MATLAB",
    "aliases": [
      "matlab",
      "octave"
    ]
  },
  {
    "name": "MAXScript",
    "aliases": [
      "maxscript"
    ]
  },
  {
    "name": "MQL4",
    "aliases": [
      "mql4"
    ]
  },
  {
    "name": "MQL5",
    "aliases": [
      "mql5"
    ]
  },
  {
    "name": "MTML",
    "aliases": [
      "mtml"
    ]
  },
  {
    "name": "MUF",
    "aliases": [
      "muf"
    ]
  },
  {
    "name": "Makefile",
    "aliases": [
      "makefile",
      "bsdmake",
      "make",
      "mf"
    ]
  },
  {
    "name": "Mako",
    "aliases": [
      "mako"
    ]
  },
  {
    "name": "Markdown",
    "aliases": [
      "markdown",
      "pandoc"
    ]
  },
  {
    "name": "Marko",
    "aliases": [
      "marko",
      "markojs"
    ]
  },
  {
    "name": "Mask",
    "aliases": [
      "mask"
    ]
  },
  {
    "name": "Mathematica",
    "aliases": [
      "mathematica",
      "mma"
    ]
  },
  {
    "name": "Maven POM",
    "aliases": [
      "maven-pom"
    ]
  },
  {
    "name": "Max",
    "aliases": [
      "max",
      "max/msp",
      "maxmsp"
    ]
  },
  {
    "name": "MediaWiki",
    "aliases": [
      "mediawiki"
    ]
  },
  {
    "name": "Mercury",
    "aliases": [
      "mercury"
    ]
  },
  {
    "name": "Meson",
    "aliases": [
      "meson"
    ]
  },
  {
    "name": "Metal",
    "aliases": [
      "metal"
    ]
  },
  {
    "name": "MiniD",
    "aliases": [
      "minid"
    ]
  },
  {
    "name": "Mirah",
    "aliases": [
      "mirah"
    ]
  },
  {
    "name": "Modelica",
    "aliases": [
      "modelica"
    ]
  },
  {
    "name": "Modula-2",
    "aliases": [
      "modula-2"
    ]
  },
  {
    "name": "Modula-3",
    "aliases": [
      "modula-3"
    ]
  },
  {
    "name": "Module Management System",
    "aliases": [
      "module-management-system"
    ]
  },
  {
    "name": "Monkey",
    "aliases": [
      "monkey"
    ]
  },
  {
    "name": "Moocode",
    "aliases": [
      "moocode"
    ]
  },
  {
    "name": "MoonScript",
    "aliases": [
      "moonscript"
    ]
  },
  {
    "name": "Myghty",
    "aliases": [
      "myghty"
    ]
  },
  {
    "name": "NCL",
    "aliases": [
      "ncl"
    ]
  },
  {
    "name": "NL",
    "aliases": [
      "nl"
    ]
  },
  {
    "name": "NSIS",
    "aliases": [
      "nsis"
    ]
  },
  {
    "name": "Nearley",
    "aliases": [
      "nearley"
    ]
  },
  {
    "name": "Nemerle",
    "aliases": [
      "nemerle"
    ]
  },
  {
    "name": "NetLinx",
    "aliases": [
      "netlinx"
    ]
  },
  {
    "name": "NetLinx+ERB",
    "aliases": [
      "netlinx+erb"
    ]
  },
  {
    "name": "NetLogo",
    "aliases": [
      "netlogo"
    ]
  },
  {
    "name": "NewLisp",
    "aliases": [
      "newlisp"
    ]
  },
  {
    "name": "Nextflow",
    "aliases": [
      "nextflow"
    ]
  },
  {
    "name": "Nginx",
    "aliases": [
      "nginx",
      "nginx configuration file"
    ]
  },
  {
    "name": "Nim",
    "aliases": [
      "nim"
    ]
  },
  {
    "name": "Ninja",
    "aliases": [
      "ninja"
    ]
  },
  {
    "name": "Nit",
    "aliases": [
      "nit"
    ]
  },
  {
    "name": "Nix",
    "aliases": [
      "nix",
      "nixos"
    ]
  },
  {
    "name": "Nu",
    "aliases": [
      "nu",
      "nush"
    ]
  },
  {
    "name": "NumPy",
    "aliases": [
      "numpy"
    ]
  },
  {
    "name": "OCaml",
    "aliases": [
      "ocaml"
    ]
  },
  {
    "name": "ObjDump",
    "aliases": [
      "objdump"
    ]
  },
  {
    "name": "Objective-C",
    "aliases": [
      "objective-c",
      "obj-c",
      "objc",
      "objectivec"
    ]
  },
  {
    "name": "Objective-C++",
    "aliases": [
      "objective-c++",
      "obj-c++",
      "objc++",
      "objectivec++"
    ]
  },
  {
    "name": "Objective-J",
    "aliases": [
      "objective-j",
      "obj-j",
      "objectivej",
      "objj"
    ]
  },
  {
    "name": "Omgrofl",
    "aliases": [
      "omgrofl"
    ]
  },
  {
    "name": "Opa",
    "aliases": [
      "opa"
    ]
  },
  {
    "name": "Opal",
    "aliases": [
      "opal"
    ]
  },
  {
    "name": "OpenCL",
    "aliases": [
      "opencl"
    ]
  },
  {
    "name": "OpenEdge ABL",
    "aliases": [
      "openedge-abl",
      "progress",
      "openedge",
      "abl"
    ]
  },
  {
    "name": "OpenRC runscript",
    "aliases": [
      "openrc-runscript",
      "openrc"
    ]
  },
  {
    "name": "OpenSCAD",
    "aliases": [
      "openscad"
    ]
  },
  {
    "name": "OpenType Feature File",
    "aliases": [
      "opentype-feature-file",
      "AFDKO"
    ]
  },
  {
    "name": "Org",
    "aliases": [
      "org"
    ]
  },
  {
    "name": "Ox",
    "aliases": [
      "ox"
    ]
  },
  {
    "name": "Oxygene",
    "aliases": [
      "oxygene"
    ]
  },
  {
    "name": "Oz",
    "aliases": [
      "oz"
    ]
  },
  {
    "name": "P4",
    "aliases": [
      "p4"
    ]
  },
  {
    "name": "PHP",
    "aliases": [
      "php",
      "inc"
    ]
  },
  {
    "name": "PLSQL",
    "aliases": [
      "plsql"
    ]
  },
  {
    "name": "PLpgSQL",
    "aliases": [
      "plpgsql"
    ]
  },
  {
    "name": "POV-Ray SDL",
    "aliases": [
      "pov-ray-sdl",
      "pov-ray",
      "povray"
    ]
  },
  {
    "name": "Pan",
    "aliases": [
      "pan"
    ]
  },
  {
    "name": "Papyrus",
    "aliases": [
      "papyrus"
    ]
  },
  {
    "name": "Parrot",
    "aliases": [
      "parrot"
    ]
  },
  {
    "name": "Parrot Assembly",
    "aliases": [
      "parrot-assembly",
      "pasm"
    ]
  },
  {
    "name": "Parrot Internal Representation",
    "aliases": [
      "parrot-internal-representation",
      "pir"
    ]
  },
  {
    "name": "Pascal",
    "aliases": [
      "pascal"
    ]
  },
  {
    "name": "Pawn",
    "aliases": [
      "pawn"
    ]
  },
  {
    "name": "Pep8",
    "aliases": [
      "pep8"
    ]
  },
  {
    "name": "Perl",
    "aliases": [
      "perl",
      "cperl"
    ]
  },
  {
    "name": "Perl 6",
    "aliases": [
      "perl-6",
      "perl6"
    ]
  },
  {
    "name": "Pic",
    "aliases": [
      "pic"
    ]
  },
  {
    "name": "Pickle",
    "aliases": [
      "pickle"
    ]
  },
  {
    "name": "PicoLisp",
    "aliases": [
      "picolisp"
    ]
  },
  {
    "name": "PigLatin",
    "aliases": [
      "piglatin"
    ]
  },
  {
    "name": "Pike",
    "aliases": [
      "pike"
    ]
  },
  {
    "name": "Pod",
    "aliases": [
      "pod"
    ]
  },
  {
    "name": "Pod 6",
    "aliases": [
      "pod-6"
    ]
  },
  {
    "name": "PogoScript",
    "aliases": [
      "pogoscript"
    ]
  },
  {
    "name": "Pony",
    "aliases": [
      "pony"
    ]
  },
  {
    "name": "PostCSS",
    "aliases": [
      "postcss"
    ]
  },
  {
    "name": "PostScript",
    "aliases": [
      "postscript",
      "postscr"
    ]
  },
  {
    "name": "PowerBuilder",
    "aliases": [
      "powerbuilder"
    ]
  },
  {
    "name": "PowerShell",
    "aliases": [
      "powershell",
      "posh",
      "pwsh"
    ]
  },
  {
    "name": "Processing",
    "aliases": [
      "processing"
    ]
  },
  {
    "name": "Prolog",
    "aliases": [
      "prolog"
    ]
  },
  {
    "name": "Propeller Spin",
    "aliases": [
      "propeller-spin"
    ]
  },
  {
    "name": "Protocol Buffer",
    "aliases": [
      "protocol-buffer",
      "protobuf",
      "Protocol Buffers"
    ]
  },
  {
    "name": "Public Key",
    "aliases": [
      "public-key"
    ]
  },
  {
    "name": "Pug",
    "aliases": [
      "pug"
    ]
  },
  {
    "name": "Puppet",
    "aliases": [
      "puppet"
    ]
  },
  {
    "name": "Pure Data",
    "aliases": [
      "pure-data"
    ]
  },
  {
    "name": "PureBasic",
    "aliases": [
      "purebasic"
    ]
  },
  {
    "name": "PureScript",
    "aliases": [
      "purescript"
    ]
  },
  {
    "name": "Python",
    "aliases": [
      "python",
      "rusthon",
      "python3"
    ]
  },
  {
    "name": "Python console",
    "aliases": [
      "python-console",
      "pycon"
    ]
  },
  {
    "name": "Python traceback",
    "aliases": [
      "python-traceback"
    ]
  },
  {
    "name": "QML",
    "aliases": [
      "qml"
    ]
  },
  {
    "name": "QMake",
    "aliases": [
      "qmake"
    ]
  },
  {
    "name": "Quake",
    "aliases": [
      "quake"
    ]
  },
  {
    "name": "R",
    "aliases": [
      "r",
      "R",
      "Rscript",
      "splus"
    ]
  },
  {
    "name": "RAML",
    "aliases": [
      "raml"
    ]
  },
  {
    "name": "RDoc",
    "aliases": [
      "rdoc"
    ]
  },
  {
    "name": "REALbasic",
    "aliases": [
      "realbasic"
    ]
  },
  {
    "name": "REXX",
    "aliases": [
      "rexx",
      "arexx"
    ]
  },
  {
    "name": "RHTML",
    "aliases": [
      "rhtml",
      "html+ruby"
    ]
  },
  {
    "name": "RMarkdown",
    "aliases": [
      "rmarkdown"
    ]
  },
  {
    "name": "RPC",
    "aliases": [
      "rpc",
      "rpcgen",
      "oncrpc",
      "xdr"
    ]
  },
  {
    "name": "RPM Spec",
    "aliases": [
      "rpm-spec",
      "specfile"
    ]
  },
  {
    "name": "RUNOFF",
    "aliases": [
      "runoff"
    ]
  },
  {
    "name": "Racket",
    "aliases": [
      "racket"
    ]
  },
  {
    "name": "Ragel",
    "aliases": [
      "ragel",
      "ragel-rb",
      "ragel-ruby"
    ]
  },
  {
    "name": "Rascal",
    "aliases": [
      "rascal"
    ]
  },
  {
    "name": "Raw token data",
    "aliases": [
      "raw-token-data",
      "raw"
    ]
  },
  {
    "name": "Reason",
    "aliases": [
      "reason"
    ]
  },
  {
    "name": "Rebol",
    "aliases": [
      "rebol"
    ]
  },
  {
    "name": "Red",
    "aliases": [
      "red",
      "red/system"
    ]
  },
  {
    "name": "Redcode",
    "aliases": [
      "redcode"
    ]
  },
  {
    "name": "Regular Expression",
    "aliases": [
      "regular-expression",
      "regexp",
      "regex"
    ]
  },
  {
    "name": "Ren'Py",
    "aliases": [
      "ren'py",
      "renpy"
    ]
  },
  {
    "name": "RenderScript",
    "aliases": [
      "renderscript"
    ]
  },
  {
    "name": "Rich Text Format",
    "aliases": [
      "rich-text-format"
    ]
  },
  {
    "name": "Ring",
    "aliases": [
      "ring"
    ]
  },
  {
    "name": "RobotFramework",
    "aliases": [
      "robotframework"
    ]
  },
  {
    "name": "Roff",
    "aliases": [
      "roff",
      "groff",
      "man",
      "manpage",
      "man page",
      "man-page",
      "mdoc",
      "nroff",
      "troff"
    ]
  },
  {
    "name": "Roff Manpage",
    "aliases": [
      "roff-manpage"
    ]
  },
  {
    "name": "Rouge",
    "aliases": [
      "rouge"
    ]
  },
  {
    "name": "Ruby",
    "aliases": [
      "ruby",
      "jruby",
      "macruby",
      "rake",
      "rb",
      "rbx"
    ]
  },
  {
    "name": "Rust",
    "aliases": [
      "rust"
    ]
  },
  {
    "name": "SAS",
    "aliases": [
      "sas"
    ]
  },
  {
    "name": "SCSS",
    "aliases": [
      "scss"
    ]
  },
  {
    "name": "SMT",
    "aliases": [
      "smt"
    ]
  },
  {
    "name": "SPARQL",
    "aliases": [
      "sparql"
    ]
  },
  {
    "name": "SQF",
    "aliases": [
      "sqf"
    ]
  },
  {
    "name": "SQL",
    "aliases": [
      "sql"
    ]
  },
  {
    "name": "SQLPL",
    "aliases": [
      "sqlpl"
    ]
  },
  {
    "name": "SRecode Template",
    "aliases": [
      "srecode-template"
    ]
  },
  {
    "name": "STON",
    "aliases": [
      "ston"
    ]
  },
  {
    "name": "SVG",
    "aliases": [
      "svg"
    ]
  },
  {
    "name": "Sage",
    "aliases": [
      "sage"
    ]
  },
  {
    "name": "SaltStack",
    "aliases": [
      "saltstack",
      "saltstate",
      "salt"
    ]
  },
  {
    "name": "Sass",
    "aliases": [
      "sass"
    ]
  },
  {
    "name": "Scala",
    "aliases": [
      "scala"
    ]
  },
  {
    "name": "Scaml",
    "aliases": [
      "scaml"
    ]
  },
  {
    "name": "Scheme",
    "aliases": [
      "scheme"
    ]
  },
  {
    "name": "Scilab",
    "aliases": [
      "scilab"
    ]
  },
  {
    "name": "Self",
    "aliases": [
      "self"
    ]
  },
  {
    "name": "ShaderLab",
    "aliases": [
      "shaderlab"
    ]
  },
  {
    "name": "Shell",
    "aliases": [
      "shell",
      "sh",
      "shell-script",
      "bash",
      "zsh"
    ]
  },
  {
    "name": "ShellSession",
    "aliases": [
      "shellsession",
      "bash session",
      "console"
    ]
  },
  {
    "name": "Shen",
    "aliases": [
      "shen"
    ]
  },
  {
    "name": "Slash",
    "aliases": [
      "slash"
    ]
  },
  {
    "name": "Slice",
    "aliases": [
      "slice"
    ]
  },
  {
    "name": "Slim",
    "aliases": [
      "slim"
    ]
  },
  {
    "name": "Smali",
    "aliases": [
      "smali"
    ]
  },
  {
    "name": "Smalltalk",
    "aliases": [
      "smalltalk",
      "squeak"
    ]
  },
  {
    "name": "Smarty",
    "aliases": [
      "smarty"
    ]
  },
  {
    "name": "Solidity",
    "aliases": [
      "solidity"
    ]
  },
  {
    "name": "SourcePawn",
    "aliases": [
      "sourcepawn",
      "sourcemod"
    ]
  },
  {
    "name": "Spline Font Database",
    "aliases": [
      "spline-font-database"
    ]
  },
  {
    "name": "Squirrel",
    "aliases": [
      "squirrel"
    ]
  },
  {
    "name": "Stan",
    "aliases": [
      "stan"
    ]
  },
  {
    "name": "Standard ML",
    "aliases": [
      "standard-ml",
      "sml"
    ]
  },
  {
    "name": "Stata",
    "aliases": [
      "stata"
    ]
  },
  {
    "name": "Stylus",
    "aliases": [
      "stylus"
    ]
  },
  {
    "name": "SubRip Text",
    "aliases": [
      "subrip-text"
    ]
  },
  {
    "name": "SugarSS",
    "aliases": [
      "sugarss"
    ]
  },
  {
    "name": "SuperCollider",
    "aliases": [
      "supercollider"
    ]
  },
  {
    "name": "Swift",
    "aliases": [
      "swift"
    ]
  },
  {
    "name": "SystemVerilog",
    "aliases": [
      "systemverilog"
    ]
  },
  {
    "name": "TI Program",
    "aliases": [
      "ti-program"
    ]
  },
  {
    "name": "TLA",
    "aliases": [
      "tla"
    ]
  },
  {
    "name": "TOML",
    "aliases": [
      "toml"
    ]
  },
  {
    "name": "TXL",
    "aliases": [
      "txl"
    ]
  },
  {
    "name": "Tcl",
    "aliases": [
      "tcl"
    ]
  },
  {
    "name": "Tcsh",
    "aliases": [
      "tcsh"
    ]
  },
  {
    "name": "TeX",
    "aliases": [
      "tex",
      "latex"
    ]
  },
  {
    "name": "Tea",
    "aliases": [
      "tea"
    ]
  },
  {
    "name": "Terra",
    "aliases": [
      "terra"
    ]
  },
  {
    "name": "Text",
    "aliases": [
      "text",
      "fundamental"
    ]
  },
  {
    "name": "Textile",
    "aliases": [
      "textile"
    ]
  },
  {
    "name": "Thrift",
    "aliases": [
      "thrift"
    ]
  },
  {
    "name": "Turing",
    "aliases": [
      "turing"
    ]
  },
  {
    "name": "Turtle",
    "aliases": [
      "turtle"
    ]
  },
  {
    "name": "Twig",
    "aliases": [
      "twig"
    ]
  },
  {
    "name": "Type Language",
    "aliases": [
      "type-language",
      "tl"
    ]
  },
  {
    "name": "TypeScript",
    "aliases": [
      "typescript",
      "ts"
    ]
  },
  {
    "name": "Unified Parallel C",
    "aliases": [
      "unified-parallel-c"
    ]
  },
  {
    "name": "Unity3D Asset",
    "aliases": [
      "unity3d-asset"
    ]
  },
  {
    "name": "Unix Assembly",
    "aliases": [
      "unix-assembly"
    ]
  },
  {
    "name": "Uno",
    "aliases": [
      "uno"
    ]
  },
  {
    "name": "UnrealScript",
    "aliases": [
      "unrealscript"
    ]
  },
  {
    "name": "UrWeb",
    "aliases": [
      "urweb",
      "Ur/Web",
      "Ur"
    ]
  },
  {
    "name": "VCL",
    "aliases": [
      "vcl"
    ]
  },
  {
    "name": "VHDL",
    "aliases": [
      "vhdl"
    ]
  },
  {
    "name": "Vala",
    "aliases": [
      "vala"
    ]
  },
  {
    "name": "Verilog",
    "aliases": [
      "verilog"
    ]
  },
  {
    "name": "Vim script",
    "aliases": [
      "vim-script",
      "vim",
      "viml",
      "nvim"
    ]
  },
  {
    "name": "Visual Basic",
    "aliases": [
      "visual-basic",
      "vb.net",
      "vbnet"
    ]
  },
  {
    "name": "Volt",
    "aliases": [
      "volt"
    ]
  },
  {
    "name": "Vue",
    "aliases": [
      "vue"
    ]
  },
  {
    "name": "Wavefront Material",
    "aliases": [
      "wavefront-material"
    ]
  },
  {
    "name": "Wavefront Object",
    "aliases": [
      "wavefront-object"
    ]
  },
  {
    "name": "Web Ontology Language",
    "aliases": [
      "web-ontology-language"
    ]
  },
  {
    "name": "WebAssembly",
    "aliases": [
      "webassembly",
      "wast",
      "wasm"
    ]
  },
  {
    "name": "WebIDL",
    "aliases": [
      "webidl"
    ]
  },
  {
    "name": "Windows Registry Entries",
    "aliases": [
      "windows-registry-entries"
    ]
  },
  {
    "name": "World of Warcraft Addon Data",
    "aliases": [
      "world-of-warcraft-addon-data"
    ]
  },
  {
    "name": "X BitMap",
    "aliases": [
      "x-bitmap",
      "xbm"
    ]
  },
  {
    "name": "X Font Directory Index",
    "aliases": [
      "x-font-directory-index"
    ]
  },
  {
    "name": "X PixMap",
    "aliases": [
      "x-pixmap",
      "xpm"
    ]
  },
  {
    "name": "X10",
    "aliases": [
      "x10",
      "xten"
    ]
  },
  {
    "name": "XC",
    "aliases": [
      "xc"
    ]
  },
  {
    "name": "XCompose",
    "aliases": [
      "xcompose"
    ]
  },
  {
    "name": "XML",
    "aliases": [
      "xml",
      "rss",
      "xsd",
      "wsdl"
    ]
  },
  {
    "name": "XPages",
    "aliases": [
      "xpages"
    ]
  },
  {
    "name": "XProc",
    "aliases": [
      "xproc"
    ]
  },
  {
    "name": "XQuery",
    "aliases": [
      "xquery"
    ]
  },
  {
    "name": "XS",
    "aliases": [
      "xs"
    ]
  },
  {
    "name": "XSLT",
    "aliases": [
      "xslt",
      "xsl"
    ]
  },
  {
    "name": "Xojo",
    "aliases": [
      "xojo"
    ]
  },
  {
    "name": "Xtend",
    "aliases": [
      "xtend"
    ]
  },
  {
    "name": "YAML",
    "aliases": [
      "yaml",
      "yml"
    ]
  },
  {
    "name": "YANG",
    "aliases": [
      "yang"
    ]
  },
  {
    "name": "YARA",
    "aliases": [
      "yara"
    ]
  },
  {
    "name": "YASnippet",
    "aliases": [
      "yasnippet",
      "snippet",
      "yas"
    ]
  },
  {
    "name": "Yacc",
    "aliases": [
      "yacc"
    ]
  },
  {
    "name": "Zephir",
    "aliases": [
      "zephir"
    ]
  },
  {
    "name": "Zig",
    "aliases": [
      "zig"
    ]
  },
  {
    "name": "Zimpl",
    "aliases": [
      "zimpl"
    ]
  },
  {
    "name": "desktop",
    "aliases": [
      "desktop"
    ]
  },
  {
    "name": "eC",
    "aliases": [
      "ec"
    ]
  },
  {
    "name": "edn",
    "aliases": [
      "edn"
    ]
  },
  {
    "name": "fish",
    "aliases": [
      "fish"
    ]
  },
  {
    "name": "mcfunction",
    "aliases": [
      "mcfunction"
    ]
  },
  {
    "name": "mupad",
    "aliases": [
      "mupad"
    ]
  },
  {
    "name": "nanorc",
    "aliases": [
      "nanorc"
    ]
  },
  {
    "name": "nesC",
    "aliases": [
      "nesc"
    ]
  },
  {
    "name": "ooc",
    "aliases": [
      "ooc"
    ]
  },
  {
    "name": "q",
    "aliases": [
      "q"
    ]
  },
  {
    "name": "reStructuredText",
    "aliases": [
      "restructuredtext",
      "rst"
    ]
  },
  {
    "name": "sed",
    "aliases": [
      "sed"
    ]
  },
  {
    "name": "wdl",
    "aliases": [
      "wdl"
    ]
  },
  {
    "name": "wisp",
    "aliases": [
      "wisp"
    ]
  },
  {
    "name": "xBase",
    "aliases": [
      "xbase",
      "advpl",
      "clipper",
      "foxpro"
    ]
  }
]
shanalikhan commented 5 years ago

Is it fixed now ? I was thinking to close this issue as i was able to use any type to make it work...