Skip to content
# Class: ScopeResolver

Defined in: packages/core/src/utils/ScopeResolver.ts:100

Resolves scope information at cursor positions for SQL IntelliSense

Provides comprehensive scope analysis including table availability, CTE resolution, and column visibility for intelligent code completion suggestions.

Example ​

typescript
const sql = `
  WITH users AS (SELECT id, name FROM accounts)
  SELECT u.name FROM users u 
  LEFT JOIN orders o ON u.id = o.user_id
  WHERE u.|
`;
const scope = ScopeResolver.resolveAt(sql, { line: 4, column: 12 });

console.log(scope.availableTables); // [{ name: 'users', alias: 'u' }, { name: 'orders', alias: 'o' }]
console.log(scope.availableCTEs); // [{ name: 'users', columns: ['id', 'name'] }]

Constructors ​

Constructor ​

new ScopeResolver(): ScopeResolver

Returns ​

ScopeResolver

Methods ​

resolve() ​

static resolve(sql, cursorPosition): ScopeInfo

Defined in: packages/core/src/utils/ScopeResolver.ts:108

Resolve scope information at the specified cursor position

Parameters ​

sql ​

string

SQL text to analyze

cursorPosition ​

number

Character position of cursor (0-based)

Returns ​

ScopeInfo

Complete scope information


resolveAt() ​

static resolveAt(sql, position): ScopeInfo

Defined in: packages/core/src/utils/ScopeResolver.ts:121

Resolve scope information at line/column position

Parameters ​

sql ​

string

SQL text to analyze

position ​

Line and column position (1-based)

line ​

number

column ​

number

Returns ​

ScopeInfo

Complete scope information


getColumnsForTable() ​

static getColumnsForTable(sql, cursorPosition, tableOrAlias): AvailableColumn[]

Defined in: packages/core/src/utils/ScopeResolver.ts:137

Get available columns for a specific table or alias

Parameters ​

sql ​

string

SQL text containing the query

cursorPosition ​

number

Cursor position for scope resolution

tableOrAlias ​

string

Table name or alias to get columns for

Returns ​

AvailableColumn[]

Array of available columns for the specified table

Released under the MIT License.