{"id":26179974,"url":"https://github.com/jellydn/ts-inlay-hints","last_synced_at":"2025-04-14T22:43:18.858Z","repository":{"id":179494314,"uuid":"663565220","full_name":"jellydn/ts-inlay-hints","owner":"jellydn","description":"A guide on how to utilize TypeScript inlay hints in VS Code / Neovim with the TypeScript Language Server","archived":false,"fork":false,"pushed_at":"2025-04-12T21:09:48.000Z","size":215,"stargazers_count":37,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-12T22:21:28.469Z","etag":null,"topics":["inlay-hints","neovim","typescript","vscode"],"latest_commit_sha":null,"homepage":"https://jellydn.github.io/ts-inlay-hints/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jellydn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["jellydn"],"ko_fi":"dunghd","buy_me_a_coffee":"dunghd","polar":"jellydn"}},"created_at":"2023-07-07T15:34:37.000Z","updated_at":"2025-04-12T21:09:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"e27c3dc7-23c9-4b32-a0b8-645a0097c92b","html_url":"https://github.com/jellydn/ts-inlay-hints","commit_stats":null,"previous_names":["jellydn/ts-inlay-hints"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jellydn%2Fts-inlay-hints","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jellydn%2Fts-inlay-hints/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jellydn%2Fts-inlay-hints/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jellydn%2Fts-inlay-hints/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jellydn","download_url":"https://codeload.github.com/jellydn/ts-inlay-hints/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248975305,"owners_count":21192197,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["inlay-hints","neovim","typescript","vscode"],"created_at":"2025-03-11T21:54:00.251Z","updated_at":"2025-04-14T22:43:18.834Z","avatar_url":"https://github.com/jellydn.png","language":"TypeScript","funding_links":["https://github.com/sponsors/jellydn","https://ko-fi.com/dunghd","https://buymeacoffee.com/dunghd","https://polar.sh/jellydn","https://paypal.me/dunghd","https://www.buymeacoffee.com/dunghd"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eWelcome to ts-inlay-hints 👋\u003c/h1\u003e\n\n\u003cp\u003e\n  A guide on how to utilize TypeScript inlay hints in VS Code / Neovim with the TypeScript Language Server\n\u003c/p\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors-)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\n[![IT Man - Tip #39 - Level Up Your TypeScript: Inlay Hints [Vietnamese]](https://i.ytimg.com/vi/0Y0HrvFQ600/hqdefault.jpg)](https://www.youtube.com/watch?v=0Y0HrvFQ600)\n\n## What is TypeScript inlay hints?\n\nTypeScript inlay hints are inline annotations that appear in your source code while you are coding. They provide additional contextual information about variables, parameters, or function return values. This feature enhances the readability and understanding of your code by providing live insights about your types directly in the code.\n\nBelow is a comparison to illustrate how your code looks without and with TypeScript inlay hints:\n\n| Without Inlay Hints                                                              | With Inlay Hints                                                              |\n| -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |\n| ![Without Inlay Hints](https://i.gyazo.com/281caeeadcfd81c9f64e56465b9d186f.png) | ![With Inlay Hints](https://i.gyazo.com/e87bd8c0ddffcc027acab50b4b0fde8c.png) |\n\nHere's the same example, represented as code:\n\n**Without Inlay Hints:**\n\n```ts\nfunction greet(name: string) {\n  return `Hello, ${name}!`;\n}\n\nlet user = \"World\";\ngreet(user);\n```\n\n**With Inlay Hints:**\n\n```ts\nfunction greet(name: string): string {\n  return `Hello, ${name}!`;\n}\n\nlet user: string = 'World';\ngreet(user: string): string;\n```\n\nAs you can see, the inlay hints provide extra information about the types of the variables and function return values directly in the code, significantly improving readability and understanding.\n\n## How to use\n\nThe instructions to set this up are detailed in the following VS Code and Neovim sections.\n\n## VS Code settings\n\nIn Visual Studio Code, to enable TypeScript inlay hints, follow these steps:\n\n1. Open settings (File -\u003e Preferences -\u003e Settings or `CMD/Ctrl + ,`).\n2. Search for \"inlay hints\" in the search bar.\n3. Look for the \"Typescript \u003e Inlay Hints\" section. There are several options that can be configured here. You can enable or disable each type of hint individually.\n4. Reload the VS Code for changes to take effect.\n\n[![VSCode inlayHints](https://i.gyazo.com/eea68c7a1d71827af0b3c659c320ca52.png)](https://gyazo.com/eea68c7a1d71827af0b3c659c320ca52)\n\n### My preferred VS Code Settings\n\nBelow is a recommended configuration for VS Code when using `inlay-hints`. These settings optimize various aspects of the VS Code environment for JavaScript, TypeScript and Deno development. You can copy and paste these settings into your VS Code settings JSON file.\n\n```json\n{\n  \"editor.inlayHints.fontFamily\": \"JetBrainsMono NF\",\n  \"editor.inlayHints.fontSize\": 1,\n  \"editor.inlayHints.padding\": true,\n  \"javascript.inlayHints.enumMemberValues.enabled\": true,\n  \"javascript.inlayHints.functionLikeReturnTypes.enabled\": true,\n  // You can set this to 'all' or 'literals' to enable more hints, default is none\n  \"javascript.inlayHints.parameterNames.enabled\": \"literals\",\n  \"deno.inlayHints.enumMemberValues.enabled\": true,\n  \"deno.inlayHints.functionLikeReturnTypes.enabled\": true,\n  \"typescript.inlayHints.enumMemberValues.enabled\": true,\n  \"typescript.inlayHints.functionLikeReturnTypes.enabled\": true,\n  // You can set this to 'all' or 'literals' to enable more hints, default is none\n  \"typescript.inlayHints.parameterNames.enabled\": \"literals\"\n}\n```\n\n| Setting                                                      | Description                                                                                                                                                                         | Image                                                                                                                               |\n| ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| `enumMemberValues`             | If set to true, this setting enables Inlay Hints for enum member values.                                                                                                 | [![enumMemberValues](https://i.gyazo.com/02e301ce25394d6a5a6e70f619174e3e.png)](https://gyazo.com/02e301ce25394d6a5a6e70f619174e3e) |\n| `functionLikeReturnTypes`      | If set to true, this setting enables Inlay Hints for function and method return types.                                                                                   | [![functionLikeReturnTypes](https://i.gyazo.com/511215a1522c21ceac87822e89df1b83.png)](https://gyazo.com/511215a1522c21ceac87822e89df1b83) |\n| `parameterNames` | If set to 'all' or 'literals', this setting provides Inlay Hints for variable declarations, default values and destructuring assignments. The default setting is 'none'. | [![parameterNames](https://i.gyazo.com/635558a6ced872c2efc22c43126b439c.png)](https://gyazo.com/635558a6ced872c2efc22c43126b439c) |\n\n\n[![VSCode preferred inlayHints](https://i.gyazo.com/ecec0eb8d42a2214e1540e098a65b371.png)](https://gyazo.com/ecec0eb8d42a2214e1540e098a65b371)\n\n## Neovim settings\n\nFor Neovim users, TypeScript inlay hints can be enabled using the nvim-lspconfig and typescript.nvim plugins.\n\n[![Neovim inlayHints](https://i.gyazo.com/95d23014fd5c730fcff0082fc171d214.png)](https://gyazo.com/95d23014fd5c730fcff0082fc171d214)\n\n### Usage with [LazyVim](https://www.lazyvim.org/)\n\n```lua\n-- plugins/lspconfig.lua\nreturn {\n  \"neovim/nvim-lspconfig\",\n  dependencies = { \"jose-elias-alvarez/typescript.nvim\" },\n  opts = {\n    servers = {\n      tsserver = {\n        settings = {\n          typescript = {\n            inlayHints = {\n              includeInlayParameterNameHints = \"all\", -- 'none' | 'literals' | 'all'\n              includeInlayParameterNameHintsWhenArgumentMatchesName = true,\n              includeInlayVariableTypeHints = true,\n              includeInlayFunctionParameterTypeHints = true,\n              includeInlayVariableTypeHintsWhenTypeMatchesName = true,\n              includeInlayPropertyDeclarationTypeHints = true,\n              includeInlayFunctionLikeReturnTypeHints = true,\n              includeInlayEnumMemberValueHints = true,\n            },\n          },\n          javascript = {\n            inlayHints = {\n              includeInlayParameterNameHints = \"all\", -- 'none' | 'literals' | 'all'\n              includeInlayParameterNameHintsWhenArgumentMatchesName = true,\n              includeInlayVariableTypeHints = true,\n\n              includeInlayFunctionParameterTypeHints = true,\n              includeInlayVariableTypeHintsWhenTypeMatchesName = true,\n              includeInlayPropertyDeclarationTypeHints = true,\n              includeInlayFunctionLikeReturnTypeHints = true,\n              includeInlayEnumMemberValueHints = true,\n            },\n          },\n        },\n      },\n    },\n    inlay_hints = {\n      enabled = true,\n    },\n    setup = {\n      tsserver = function(_, opts)\n        require(\"typescript\").setup({ server = opts })\n        return true\n      end,\n    },\n  },\n}\n```\n\nIf you are using the stable version of Neovim, you need to install lsp-inlayhints in your config:\n\n```lua\n-- plugins/lsp-inlayhints.lua\n\n-- Disable lsp-inlayhints if that is nightly version, will remove when 0.10.0 is stable\nlocal enabled_inlay_hints = true\nif vim.fn.has(\"nvim-0.10.0\") == 1 then\n  enabled_inlay_hints = true\nend\n\nreturn {\n  {\n    \"lvimuser/lsp-inlayhints.nvim\",\n    ft = { \"javascript\", \"javascriptreact\", \"json\", \"jsonc\", \"typescript\", \"typescriptreact\", \"svelte\" },\n    enabled = enabled_inlay_hints,\n    opts = {\n      debug_mode = true,\n    },\n    config = function(_, options)\n      vim.api.nvim_create_augroup(\"LspAttach_inlayhints\", {})\n      vim.api.nvim_create_autocmd(\"LspAttach\", {\n        group = \"LspAttach_inlayhints\",\n        callback = function(args)\n          if not (args.data and args.data.client_id) then\n            return\n          end\n\n          local bufnr = args.buf\n          local client = vim.lsp.get_client_by_id(args.data.client_id)\n          require(\"lsp-inlayhints\").on_attach(client, bufnr)\n        end,\n      })\n      require(\"lsp-inlayhints\").setup(options)\n      vim.api.nvim_set_keymap(\n        \"n\",\n        \"\u003cleader\u003euI\",\n        \"\u003ccmd\u003elua require('lsp-inlayhints').toggle()\u003cCR\u003e\",\n        { noremap = true, silent = true }\n      )\n    end,\n  },\n}\n```\n\n### My preferred Neovim LSP settings\n\nThis is my preferred Neovim configuration for JavaScript, TypeScript and Deno development. You can copy and paste these settings into your Neovim config.\n\n```lua\nsettings = {\n  typescript = {\n    inlayHints = {\n      -- You can set this to 'all' or 'literals' to enable more hints\n      includeInlayParameterNameHints = \"none\", -- 'none' | 'literals' | 'all'\n      includeInlayParameterNameHintsWhenArgumentMatchesName = false,\n      includeInlayFunctionParameterTypeHints = false,\n      includeInlayVariableTypeHints = false,\n      includeInlayVariableTypeHintsWhenTypeMatchesName = false,\n      includeInlayPropertyDeclarationTypeHints = false,\n      includeInlayFunctionLikeReturnTypeHints = true,\n      includeInlayEnumMemberValueHints = true,\n    },\n  },\n  javascript = {\n    inlayHints = {\n      -- You can set this to 'all' or 'literals' to enable more hints\n      includeInlayParameterNameHints = \"none\", -- 'none' | 'literals' | 'all'\n      includeInlayParameterNameHintsWhenArgumentMatchesName = false,\n      includeInlayVariableTypeHints = false,\n      includeInlayFunctionParameterTypeHints = false,\n      includeInlayVariableTypeHintsWhenTypeMatchesName = false,\n      includeInlayPropertyDeclarationTypeHints = false,\n      includeInlayFunctionLikeReturnTypeHints = true,\n      includeInlayEnumMemberValueHints = true,\n    },\n  },\n},\n```\n\n## Resources\n\nHere are some additional resources that you may find helpful when working with TypeScript inlay hints:\n\n### VS Code Extensions\n\n### [VS Code Comment Queries](https://github.com/NWYLZW/vscode-comment-queries/blob/main/README_en-US.md)\n\nThis extension enables showing the variable types in your code through annotation syntax and inline prompts.\n\n#### [Total TypeScript VSCode Extension](https://github.com/mattpocock/ts-error-translator)\n\nThis extension aims to help you learn TypeScript directly from your IDE. It provides helpful hints on syntax and translates TypeScript's most cryptic errors.\n\n### Neovim Plugins\n\nThese plugins can enhance your TypeScript coding experience in Neovim:\n\n#### [lsp-lens.nvim](https://github.com/VidocqH/lsp-lens.nvim)\n\nThis plugin displays references and definition info upon functions, similar to JetBrains' IDEA. You can enable/disable specific requests such as definitions, references, and implementations. It also includes declaration in references.\n\n```lua\n{\n  \"VidocqH/lsp-lens.nvim\",\n  event = \"BufRead\",\n  opts = {\n    include_declaration = true, -- Reference include declaration\n    sections = { -- Enable / Disable specific request\n      definition = false,\n      references = true,\n      implementation = false,\n    },\n  },\n  keys = {\n    {\n      -- LspLensToggle\n      \"\u003cleader\u003euL\",\n      \"\u003ccmd\u003eLspLensToggle\u003cCR\u003e\",\n      desc = \"LSP Len Toggle\",\n    },\n  },\n}\n```\n\n### [dim.lua](https://github.com/narutoxy/dim.lua)\n\ndim.lua is a Neovim plugin that dims unused variables and functions using LSP and Treesitter. It is dependent on nvim-treesitter and nvim-lspconfig.\n\n```lua\n{\n  \"narutoxy/dim.lua\",\n  event = \"BufRead\",\n  dependencies = { \"nvim-treesitter/nvim-treesitter\", \"neovim/nvim-lspconfig\" },\n  config = true,\n}\n```\n\n###  [typescript.nvim](https://github.com/jose-elias-alvarez/typescript.nvim#faq)\n\nA minimal typescript-language-server integration plugin to set up the language server via nvim-lspconfig and add commands for convenience. \n\n```lua\nreturn {\n  \"neovim/nvim-lspconfig\",\n  dependencies = {\n    {\n      \"jose-elias-alvarez/typescript.nvim\",\n      dependencies = {\n        \"davidosomething/format-ts-errors.nvim\",\n      },\n    },\n  },\n  ---@class PluginLspOpts\n  opts = {\n    ---@type lspconfig.options\n    servers = {\n      tsserver = {\n        root_dir = require(\"lspconfig\").util.root_pattern(\"package.json\"),\n        single_file_support = false,\n        -- refer https://github.com/jose-elias-alvarez/null-ls.nvim/discussions/274#discussioncomment-1515526\n        on_attach = function(client)\n          client.resolved_capabilities.document_formatting = false -- disable formatting in tsserver in favor of null-ls\n        end,\n        handlers = {\n          -- format error code with better error message\n          [\"textDocument/publishDiagnostics\"] = function(_, result, ctx, config)\n            if result.diagnostics == nil then\n              return\n            end\n\n            local idx = 1\n\n            while idx \u003c= #result.diagnostics do\n              local entry = result.diagnostics[idx]\n              local formatter = require(\"format-ts-errors\")[entry.code]\n              entry.message = formatter and formatter(entry.message) or entry.message\n              if entry.code == 80001 then\n                table.remove(result.diagnostics, idx)\n              else\n                idx = idx + 1\n              end\n            end\n            vim.lsp.diagnostic.on_publish_diagnostics(_, result, ctx, config)\n          end,\n        },\n        -- add keymap\n        keys = {\n          { \"\u003cleader\u003eco\", \"\u003ccmd\u003eTypescriptOrganizeImports\u003cCR\u003e\", desc = \"Organize Imports\" },\n          { \"\u003cleader\u003ecR\", \"\u003ccmd\u003eTypescriptRenameFile\u003cCR\u003e\", desc = \"Rename File\" },\n        },\n        -- inlay hints\n        settings = {\n          typescript = {\n            inlayHints = {\n              -- You can set this to 'all' or 'literals' to enable more hints\n              includeInlayParameterNameHints = \"literals\", -- 'none' | 'literals' | 'all'\n              includeInlayParameterNameHintsWhenArgumentMatchesName = false,\n              includeInlayFunctionParameterTypeHints = false,\n              includeInlayVariableTypeHints = false,\n              includeInlayVariableTypeHintsWhenTypeMatchesName = false,\n              includeInlayPropertyDeclarationTypeHints = false,\n              includeInlayFunctionLikeReturnTypeHints = true,\n              includeInlayEnumMemberValueHints = true,\n            },\n          },\n          javascript = {\n            inlayHints = {\n              -- You can set this to 'all' or 'literals' to enable more hints\n              includeInlayParameterNameHints = \"literals\", -- 'none' | 'literals' | 'all'\n              includeInlayParameterNameHintsWhenArgumentMatchesName = false,\n              includeInlayVariableTypeHints = false,\n              includeInlayFunctionParameterTypeHints = false,\n              includeInlayVariableTypeHintsWhenTypeMatchesName = false,\n              includeInlayPropertyDeclarationTypeHints = false,\n              includeInlayFunctionLikeReturnTypeHints = true,\n              includeInlayEnumMemberValueHints = true,\n            },\n          },\n        },\n      },\n    },\n    -- Enable this to enable the builtin LSP inlay hints on Neovim \u003e= 0.10.0\n    inlay_hints = {\n      enabled = true,\n    },\n    format = {\n      timeout_ms = 10000, -- 10 seconds\n    },\n  },\n}\n\n```\n\n### [tsc.nvim](https://github.com/dmmulroy/tsc.nvim)\n\nThis Neovim plugin provides an asynchronous interface to run project-wide TypeScript type-checking using the TypeScript compiler (tsc).\n\n```lua\nreturn {\n  {\n    \"dmmulroy/tsc.nvim\",\n    auto_open_qflist = true,\n    opts = {\n      auto_close_qflist = false,\n      enable_progress_notifications = false, -- disable notification\n      -- support monorepo\n      flags = {\n        build = true,\n      },\n    },\n    keys = {\n      { \"\u003cleader\u003eck\", \"\u003ccmd\u003eTSC\u003cCR\u003e\", desc = \"Check TypeScript error\" },\n    },\n  },\n}\n```\n\n## Tips\n\n### [Bob](https://github.com/MordechaiHadad/bob) - A Guide for Easy Switching Between Neovim Versions\n\n**Bob** is a versatile, cross-platform Neovim version manager that simplifies the process of switching between different versions of Neovim. It supports a range of commands for version management and comes with several features that offer added convenience.\n\nHere's how you can use it:\n\n- **Selecting a Version**: Use the `bob use` command followed by either a specific version number (in either `vx.x.x` or `x.x.x` format), `nightly`, `stable`, `latest`, or a specific commit hash. For instance, `bob use 0.9.1` or `bob use v0.9.1` will switch to version 0.9.1. The `--no-install` flag can be added to prevent automatic installation of the specified version if it's not already installed.\n\n- **Installing a Version**: The `bob install` command lets you install a specific version of Neovim, including `nightly`, `stable`, `latest`, or a specific version number or commit hash. This command can also be used to update an out-of-date `nightly` version.\n\n- **Uninstalling a Version**: To uninstall a specific version of Neovim, use the `bob uninstall` command followed by the version identifier (`nightly`, `stable`, `latest`, version number, or commit hash).\n\n- **Erasing Changes**: Use the `bob erase` command to undo all changes made by Bob, including Neovim installations, version downloads, and registry modifications.\n\n- **Listing Versions**: To see all installed and currently used versions, use the `bob list` command.\n\n- **Updating Versions**: Use the `bob update` command followed by a version identifier (`nightly`, `stable`, specific version number) or `--all` to update existing versions.\n\n### [getNF](https://github.com/ronniedroid/getnf) - The Convenient Way to Install NerdFonts\n\n**getNF** is an efficient and intuitive way to install [NerdFonts](https://www.nerdfonts.com/). NerdFonts are developer-targeted fonts that come packed with a plethora of glyphs (icons) from popular 'iconic fonts' such as Font Awesome, Devicons, Octicons, and others.\n\n#### Installation\n\nTo install getNF, follow these steps:\n\n1. Clone the getNF repository from GitHub:\n   ```\n   git clone https://github.com/ronniedroid/getnf.git\n   ```\n2. Move into the `getnf` directory:\n   ```\n   cd getnf\n   ```\n3. Run the `install.sh` script:\n   ```\n   ./install.sh\n   ```\n\nNow, you're all set to enrich your coding experience with an array of Nerd Fonts. Enjoy!\n\n## Author\n\n👤 **Huynh Duc Dung**\n\n- Website: https://productsway.com/\n- Twitter: [@jellydn](https://twitter.com/jellydn)\n- Github: [@jellydn](https://github.com/jellydn)\n\n## Show your support\n\nGive a ⭐️ if this project helped you!\n\n[![kofi](https://img.shields.io/badge/Ko--fi-F16061?style=for-the-badge\u0026logo=ko-fi\u0026logoColor=white)](https://ko-fi.com/dunghd)\n[![paypal](https://img.shields.io/badge/PayPal-00457C?style=for-the-badge\u0026logo=paypal\u0026logoColor=white)](https://paypal.me/dunghd)\n[![buymeacoffee](https://img.shields.io/badge/Buy_Me_A_Coffee-FFDD00?style=for-the-badge\u0026logo=buy-me-a-coffee\u0026logoColor=black)](https://www.buymeacoffee.com/dunghd)\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/sp3ctum\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/300791?v=4?s=100\" width=\"100px;\" alt=\"Mika Vilpas\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMika Vilpas\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jellydn/ts-inlay-hints/commits?author=sp3ctum\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://productsway.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/870029?v=4?s=100\" width=\"100px;\" alt=\"Dung Duc Huynh (Kaka)\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDung Duc Huynh (Kaka)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jellydn/ts-inlay-hints/commits?author=jellydn\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/jellydn/ts-inlay-hints/commits?author=jellydn\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjellydn%2Fts-inlay-hints","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjellydn%2Fts-inlay-hints","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjellydn%2Fts-inlay-hints/lists"}