# Overview

### Features at a Glance

* Language server integration
  * Inline documentation
  * Language hints
  * Type information (experimental)
* Built-in debugger
* Mini BoxLang web server for quick development/testing
* Code Highlights and Introspection for supported grammars: Java, HTML, CSS, SQL, CFML

### Language Server

The extension bundles a language server based on the BoxLang runtime that gives VSCode access to the same information used when executing your sourcecode. This provides us the ability to display rich information right in the editor.

Some features provided by the language server are

#### Code outlines

<figure><img src="/files/Ici9Dy7RWU4aMFk4Cyvs" alt=""><figcaption></figcaption></figure>

#### Function definition

<figure><img src="/files/dt0D4NLCr6pdla5XXzkL" alt=""><figcaption></figcaption></figure>

#### Type hinting (experimental - must configure in settings)

<figure><img src="/files/NBLYDwcLLWkGs2JgYUbo" alt=""><figcaption></figcaption></figure>

A lot of functionality is still provided through the old JavaScript API. It is being converted to use the language server ASAP.

### Debugger

The [debugger](broken://pages/wKeHIvqcYfxCQqnUc9ir) is implemented in Java using the JDP. It provides complete control over a running BoxLang application.

The extension provides quick ways to run your BoxLang programs. Simply right-click within a `.bxs` file or class (`.bx`) that implements a main method and select "BoxLang: Run File".

<figure><img src="/files/NGH64sQWA2Pq3ERqO3MS" alt=""><figcaption></figcaption></figure>

You can use it to debug command line scripts or the built-in web server.

<figure><img src="/files/1ER6KCA7vENRd0PKg1Gl" alt=""><figcaption></figcaption></figure>

### Mini Web Server

The MinServer provides a lightweight web runtime powered by undertow. Simply hit `ctrl+shift+p` to bring up the command palette and select "BoxLang: Run Web Server". When you run the command it will open up the MinServer on the configured port (defaults to 8085) and open your browser.

<figure><img src="/files/E0bPtlTEUnylLAYI9j9w" alt=""><figcaption></figcaption></figure>

The web server will automatically be configured to use your projects directory as the web root. You will be prompted to select your web root if you have more than one folder open in your workspace.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://boxlang-ide.ortusbooks.com/vscode/overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
