LSP (OLS - Odin Language Server)

  • OLS .

  • OLS Showcase .

  • OLS File Configurations

  • I downloaded OLS, used build.bat  and odinfmt.bat .

  • Stored the entire OLS folder in a directory.

  • Installed the VSCode extension.

  • Set the path of ols.exe  in Odin settings inside VSCode.

  • Created the ols.json  file in my project directory in VSCode, with configs from the OLS GitHub.

Check Args

  • odin check -help

Examples

  • Rickard Andersson's OLS

  • .

My configuration

  • (2026-03-15)

  • In /odin-ols/ols.json

{
    "$schema": "https://raw.githubusercontent.com/DanielGavin/ols/master/misc/ols.schema.json",

    // Setup
    // "odin_command": "",
    // "odin_root_override": "",

    // Profiles
    // "profile": "default",
    // "profiles": [
    //     { "name": "default", "checker_path": ["src"], "defines": { "ODIN_DEBUG": "false" }},
    //     { "name": "linux_profile", "os": "linux", "checker_path": ["src/main.odin"], "defines": { "ODIN_DEBUG": "false" }},
    //     { "name": "mac_profile", "os": "darwin", "arch": "arm64", "defines": { "ODIN_DEBUG": "false" }},
    //     { "name": "windows_profile", "os": "windows", "checker_path": ["src"], "defines": { "ODIN_DEBUG": "false" }}
    // ]

    // Collections
    "collections": [
        { "name": "shared", "path": "C:/Users/caior/Desktop/Projetos_Odin/shared" }
    ],
    
    // Inlay
    "enable_hover":                      false,
    "enable_inlay_hints":                false,
    "enable_inlay_hints_params":         false,
    "enable_inlay_hints_default_params": false,

    // Check
    "checker_args": "-vet-shadowing -vet-semicolon -vet-unused-variables -vet-unused",
    "verbose": false,
    "enable_checker_workspace_diagnostics": false, // Turns on running all workspace diagnostics using odin check. Experimental.
    // "checker_skip_packages": [],

    // Formatting
    "enable_format": false,

    // Highlight
    "enable_semantic_tokens":                  true, // syntax highlighting.
    "enable_document_highlights":              true, // highlighting of symbol references in file.
    "enable_comp_lit_signature_help":          false,
    "enable_comp_lit_signature_help_use_docs": false,

    // Completion
    "enable_document_symbols":      true,  // Outline of all your global declarations in your document.
    "enable_completion_matching":   true,  // Match types and pointers when passing arguments to procedures. 
    "enable_fake_methods":          false, // Fake methods completion. Experimental
    
    // Automation
    "enable_auto_import":           false,
    "enable_code_action_invert_if": false,

    // Source
    "enable_references":            true, // Finding references for a symbol. Experimental.
    "enable_overload_resolution":   false,

    // Save
    "enable_checker_only_saved":    false,

    // Snippets
    "enable_procedure_snippet":     false,
    "enable_snippets":              false,

    // Docs
    "enable_document_links":        false,
}