CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-typescript

TypeScript is a language for application-scale JavaScript development with optional static typing and powerful compiler APIs

Pending
Overview
Eval results
Files

text.mddocs/utilities/

Text Utilities

Functions for working with text positions, line/character coordinates, and character classification.

Position Utilities

function getPositionOfLineAndCharacter(
  sourceFile: SourceFileLike,
  line: number,
  character: number
): number;

function getLineAndCharacterOfPosition(
  sourceFile: SourceFileLike,
  position: number
): LineAndCharacter;

interface LineAndCharacter {
  line: number;
  character: number;
}

Character Classification

function isWhiteSpaceLike(ch: number): boolean;

function isWhiteSpaceSingleLine(ch: number): boolean;

function isLineBreak(ch: number): boolean;

function isDigit(ch: number): boolean;

function isOctalDigit(ch: number): boolean;

function tokenToString(t: SyntaxKind): string | undefined;

Usage Example

import * as ts from 'typescript';

const sourceCode = `function hello() {
  console.log("Hello");
}`;

const sourceFile = ts.createSourceFile(
  'example.ts',
  sourceCode,
  ts.ScriptTarget.Latest,
  true
);

const position = 25; // Position of 'console'
const lineChar = ts.getLineAndCharacterOfPosition(sourceFile, position);
console.log(`Position ${position} is at line ${lineChar.line + 1}, character ${lineChar.character + 1}`);
// Output: Position 25 is at line 2, character 3

const pos = ts.getPositionOfLineAndCharacter(sourceFile, 1, 2); // Line 2, char 3 (0-indexed)
console.log(`Line 2, character 3 is at position ${pos}`);
// Output: Line 2, character 3 is at position 25

console.log(ts.isWhiteSpaceLike(' '.charCodeAt(0)));  // true
console.log(ts.isLineBreak('\n'.charCodeAt(0))); // true
console.log(ts.isDigit('5'.charCodeAt(0))); // true

Install with Tessl CLI

npx tessl i tessl/npm-typescript

docs

index.md

tile.json