Line Numbers

The Highlight component has the option to add line numbers. See the following examples.

Number Lines

Add numberLine props to add line numbers.

1
interface User { id: number; name: string; email?: string; active: boolean; createdAt: Date; lastLoginAt?: Date; }
2

3
class UserService {
4
  private users: User[] = [];
5

6
  async createUser(userData: Omit<User, 'id' | 'createdAt'>): Promise<User> {
7
    const newUser: User = { id: Date.now(), createdAt: new Date(), lastLoginAt: undefined, ...userData };
8
    this.users.push(newUser);
9
    return newUser;
10
  }
11

12
  getUserById(id: number): User | undefined {
13
    return this.users.find(user => user.id === id && user.active && user.name.length > 0 && user.email !== undefined);
14
  }
15
}

Hide Border

Add hideBorder props to hide the border.

1
interface User { id: number; name: string; email?: string; active: boolean; createdAt: Date; lastLoginAt?: Date; }
2

3
class UserService {
4
  private users: User[] = [];
5

6
  async createUser(userData: Omit<User, 'id' | 'createdAt'>): Promise<User> {
7
    const newUser: User = { id: Date.now(), createdAt: new Date(), lastLoginAt: undefined, ...userData };
8
    this.users.push(newUser);
9
    return newUser;
10
  }
11

12
  getUserById(id: number): User | undefined {
13
    return this.users.find(user => user.id === id && user.active && user.name.length > 0 && user.email !== undefined);
14
  }
15
}

Wraped Lines

Add wrapLines props to wrap lines.

1
interface User { id: number; name: string; email?: string; active: boolean; createdAt: Date; lastLoginAt?: Date; }
2

3
class UserService {
4
  private users: User[] = [];
5

6
  async createUser(userData: Omit<User, 'id' | 'createdAt'>): Promise<User> {
7
    const newUser: User = { id: Date.now(), createdAt: new Date(), lastLoginAt: undefined, ...userData };
8
    this.users.push(newUser);
9
    return newUser;
10
  }
11

12
  getUserById(id: number): User | undefined {
13
    return this.users.find(user => user.id === id && user.active && user.name.length > 0 && user.email !== undefined);
14
  }
15
}

Background color

1
interface User { id: number; name: string; email?: string; active: boolean; createdAt: Date; lastLoginAt?: Date; }
2

3
class UserService {
4
  private users: User[] = [];
5

6
  async createUser(userData: Omit<User, 'id' | 'createdAt'>): Promise<User> {
7
    const newUser: User = { id: Date.now(), createdAt: new Date(), lastLoginAt: undefined, ...userData };
8
    this.users.push(newUser);
9
    return newUser;
10
  }
11

12
  getUserById(id: number): User | undefined {
13
    return this.users.find(user => user.id === id && user.active && user.name.length > 0 && user.email !== undefined);
14
  }
15
}

Position

Use one of 'static' | 'relative' | 'abolute' | 'sticky' | undefined. The default value is 'sticky'.

1
interface User { id: number; name: string; email?: string; active: boolean; createdAt: Date; lastLoginAt?: Date; }
2

3
class UserService {
4
  private users: User[] = [];
5

6
  async createUser(userData: Omit<User, 'id' | 'createdAt'>): Promise<User> {
7
    const newUser: User = { id: Date.now(), createdAt: new Date(), lastLoginAt: undefined, ...userData };
8
    this.users.push(newUser);
9
    return newUser;
10
  }
11

12
  getUserById(id: number): User | undefined {
13
    return this.users.find(user => user.id === id && user.active && user.name.length > 0 && user.email !== undefined);
14
  }
15
}

Starting Line Number

Use the startingLineNumber props to set the start line number.

42
interface User { id: number; name: string; email?: string; active: boolean; createdAt: Date; lastLoginAt?: Date; }
43

44
class UserService {
45
  private users: User[] = [];
46

47
  async createUser(userData: Omit<User, 'id' | 'createdAt'>): Promise<User> {
48
    const newUser: User = { id: Date.now(), createdAt: new Date(), lastLoginAt: undefined, ...userData };
49
    this.users.push(newUser);
50
    return newUser;
51
  }
52

53
  getUserById(id: number): User | undefined {
54
    return this.users.find(user => user.id === id && user.active && user.name.length > 0 && user.email !== undefined);
55
  }
56
}

Highlighted Lines and Highlighted Background

Use the highlightedLines and highlightedBackground props to highlight lines.

1
interface User { id: number; name: string; email?: string; active: boolean; createdAt: Date; lastLoginAt?: Date; }
2

3
class UserService {
4
  private users: User[] = [];
5

6
  async createUser(userData: Omit<User, 'id' | 'createdAt'>): Promise<User> {
7
    const newUser: User = { id: Date.now(), createdAt: new Date(), lastLoginAt: undefined, ...userData };
8
    this.users.push(newUser);
9
    return newUser;
10
  }
11

12
  getUserById(id: number): User | undefined {
13
    return this.users.find(user => user.id === id && user.active && user.name.length > 0 && user.email !== undefined);
14
  }
15
}

Custom styles

Use the --line-number-color, --border-color --padding-left, --padding-right, and --highlighted-background props to customize the styles.

1
interface User { id: number; name: string; email?: string; active: boolean; createdAt: Date; lastLoginAt?: Date; }
2

3
class UserService {
4
  private users: User[] = [];
5

6
  async createUser(userData: Omit<User, 'id' | 'createdAt'>): Promise<User> {
7
    const newUser: User = { id: Date.now(), createdAt: new Date(), lastLoginAt: undefined, ...userData };
8
    this.users.push(newUser);
9
    return newUser;
10
  }
11

12
  getUserById(id: number): User | undefined {
13
    return this.users.find(user => user.id === id && user.active && user.name.length > 0 && user.email !== undefined);
14
  }
15
}