Defined in: packages/core/src/transformers/SmartRenamer.ts:47
Smart renamer that detects whether a cursor points to a CTE or table alias and routes to the correct renamer.
- CTE targets use CTERenamer so dependency graphs stay consistent.
- Table aliases use AliasRenamer with scope detection.
- Optional formatting preservation uses SqlIdentifierRenamer.
Example
const renamer = new SmartRenamer();
const sql = `WITH user_data AS (SELECT * FROM users) SELECT * FROM user_data`;
const result = renamer.rename(sql, { line: 1, column: 8 }, 'customer_data');
if (result.success) {
console.log(result.newSql);
}
Related tests: packages/core/tests/transformers/SmartRenamer.demo.test.ts
Constructors
Constructor
new SmartRenamer():
SmartRenamer
Defined in: packages/core/src/transformers/SmartRenamer.ts:52
Returns
SmartRenamer
Methods
isRenameable()
isRenameable(
sql
,position
):object
Defined in: packages/core/src/transformers/SmartRenamer.ts:67
Check if the token at the given position is renameable (CTE name or table alias). This is a lightweight check for GUI applications to determine if a rename context menu should be shown when right-clicking.
Parameters
sql
string
The complete SQL string
position
Line and column position where user clicked (1-based)
Returns
object
Object indicating if renameable and what type of renamer would be used
renameable
renameable:
boolean
renamerType
renamerType:
"none"
|"cte"
|"alias"
tokenName?
optional
tokenName:string
reason?
optional
reason:string
rename()
rename(
sql
,position
,newName
,options?
):SmartRenameResult
Defined in: packages/core/src/transformers/SmartRenamer.ts:138
Automatically detect and rename CTE names or table aliases based on cursor position.
Parameters
sql
string
The complete SQL string
position
Line and column position where user clicked (1-based)
newName
string
The new name to assign
options?
Optional configuration
preserveFormatting?
boolean
Returns
Result object with success status and details
batchRename()
batchRename(
sql
,renames
,options?
):SmartRenameResult
Defined in: packages/core/src/transformers/SmartRenamer.ts:437
Batch rename multiple identifiers with optional formatting preservation.
Parameters
sql
string
The complete SQL string
renames
Record
<string
, string
>
Map of old names to new names
options?
Optional configuration
preserveFormatting?
boolean
Returns
Result with success status and details