> ## Documentation Index
> Fetch the complete documentation index at: https://gluals.arnux.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Hints & Hover Settings

> Configure inlay hints, inline values, hover documentation, semantic tokens, and signature help.

## Overview

These settings control editor hints, hover documentation, and semantic syntax highlighting.

***

## Inlay hints (`hint.*`)

Inlay hints show inline type and name annotations beside your code.

| Option                           | Type      | Default | Description                                                             |
| -------------------------------- | --------- | ------- | ----------------------------------------------------------------------- |
| `hint.paramHint`                 | `boolean` | `true`  | Show parameter names next to call arguments                             |
| `hint.localHint`                 | `boolean` | `true`  | Show inferred types next to local variable declarations                 |
| `hint.indexHint`                 | `boolean` | `true`  | Show named indexes for array table entries                              |
| `hint.overrideHint`              | `boolean` | `true`  | Show which base-class method a function overrides                       |
| `hint.metaCallHint`              | `boolean` | `true`  | Show `__call` metamethod hints                                          |
| `hint.enumParamHint`             | `boolean` | `false` | Show enum member names next to literal integer arguments                |
| `hint.closingEndHint`            | `boolean` | `true`  | Show `-- end FunctionName` hints after closing `end` keywords           |
| `hint.closingEndHintControlFlow` | `boolean` | `false` | Also show closing end hints for `if`, `while`, `do`, `for` blocks       |
| `hint.closingEndHintMinLines`    | `integer` | `15`    | Minimum number of lines a block must span before a closing hint appears |

### Inlay hint examples

**Parameter hints:**

```lua theme={null}
Entity:SetPos(vec3(0, 0, 0))
--           ^ pos: Vector
```

**Local hints:**

```lua theme={null}
local ply = game.GetWorld()
--    ^ : Entity
```

**Closing end hints:**

```lua theme={null}
function GAMEMODE:PlayerSpawn(ply)
    -- ... 15 lines of code ...
end -- PlayerSpawn
```

***

## Inline values (`inlineValues.*`)

Inline values show variable contents during a debug session, overlaid on the source code.

| Option                | Type      | Default | Description                                  |
| --------------------- | --------- | ------- | -------------------------------------------- |
| `inlineValues.enable` | `boolean` | `true`  | Show variable values inline during debugging |

***

## Hover (`hover.*`)

| Option         | Type      | Default | Description                |
| -------------- | --------- | ------- | -------------------------- |
| `hover.enable` | `boolean` | `true`  | Enable hover documentation |

Hover documentation shows:

* Type signatures and docs for functions, fields, and classes
* Realm badge (client/shared/server) for GMod API symbols
* `@deprecated` messages for deprecated symbols
* `@see` cross-references
* Inline **+**/**−** verbosity buttons for classes with many members — click **+** to show more members, **−** to show fewer

***

## Semantic tokens (`semanticTokens.*`)

Semantic tokens provide syntax highlighting based on type analysis. GLuaLS colors variables by role, such as local, global, field, or method, instead of lexical category.

| Option                                     | Type      | Default | Description                                                         |
| ------------------------------------------ | --------- | ------- | ------------------------------------------------------------------- |
| `semanticTokens.enable`                    | `boolean` | `true`  | Enable semantic syntax highlighting                                 |
| `semanticTokens.renderDocumentationMarkup` | `boolean` | `true`  | Render Markdown in annotation documentation (e.g., in hover popups) |

***

## Code lens (`codeLens.*`)

| Option            | Type      | Default | Description                                                              |
| ----------------- | --------- | ------- | ------------------------------------------------------------------------ |
| `codeLens.enable` | `boolean` | `true`  | Enable code lens actions (references, override links, VGUI parent links) |

***

## Code action (`codeAction.*`)

| Option                   | Type      | Default | Description                                                                              |
| ------------------------ | --------- | ------- | ---------------------------------------------------------------------------------------- |
| `codeAction.insertSpace` | `boolean` | `false` | Add a space after `---` when inserting `@diagnostic disable-next-line` via a code action |

***

## VS Code extension settings

You can also configure these settings in VS Code settings with the `gluals.*` prefix:

| VS Code setting                         | .gluarc.json key                 | Type              | Default | Description                           |
| --------------------------------------- | -------------------------------- | ----------------- | ------- | ------------------------------------- |
| `gluals.hint.enable`                    | All `hint.*` settings            | `boolean \| null` | `null`  | Enable or disable all inlay hints     |
| `gluals.hint.paramHint`                 | `hint.paramHint`                 | `boolean`         | `true`  | Parameter name hints                  |
| `gluals.hint.localHint`                 | `hint.localHint`                 | `boolean`         | `true`  | Local variable type hints             |
| `gluals.hint.indexHint`                 | `hint.indexHint`                 | `boolean`         | `true`  | Named array index hints               |
| `gluals.hint.overrideHint`              | `hint.overrideHint`              | `boolean`         | `true`  | Override hints for base class methods |
| `gluals.hint.metaCallHint`              | `hint.metaCallHint`              | `boolean`         | `true`  | `__call` meta method hints            |
| `gluals.hint.enumParamHint`             | `hint.enumParamHint`             | `boolean`         | `false` | Enum parameter name hints             |
| `gluals.hint.closingEndHint`            | `hint.closingEndHint`            | `boolean`         | `true`  | Block end labels                      |
| `gluals.hint.closingEndHintControlFlow` | `hint.closingEndHintControlFlow` | `boolean`         | `false` | Control flow end labels               |
| `gluals.hint.closingEndHintMinLines`    | `hint.closingEndHintMinLines`    | `integer`         | `15`    | Minimum lines for end hints           |
| `gluals.inlineValues.enable`            | `inlineValues.enable`            | `boolean`         | `true`  | Inline debug values                   |
| `gluals.hover.enable`                   | `hover.enable`                   | `boolean`         | `true`  | Enable hover documentation            |
| `gluals.semanticTokens.enable`          | `semanticTokens.enable`          | `boolean`         | `true`  | Enable semantic tokens                |
| `gluals.codeLens.enable`                | `codeLens.enable`                | `boolean`         | `true`  | Enable code lens                      |
| `gluals.documentColor.enable`           | `documentColor.enable`           | `boolean`         | `true`  | Color picker for color strings        |

***

## Full example

<Tip>
  Use the settings menu instead of editing the JSON file directly. This helps you avoid config mistakes.
</Tip>

```json .gluarc.json theme={null}
{
  "hint": {
    "paramHint": true,
    "localHint": false,
    "closingEndHint": true,
    "closingEndHintMinLines": 15
  },
  "hover": {
    "enable": true
  },
  "semanticTokens": {
    "enable": true
  },
  "codeLens": {
    "enable": true
  }
}
```
