@spyglassmc/discord-bot 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,OAAO,CAAC,MAAM,SAAS,EAAE,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoCA,MAAM,CAAC,OAAO,CAAC,MAAM,SAAS,EAAE,SAAS,CAAA"}
package/lib/index.js CHANGED
@@ -1,11 +1,11 @@
1
- import { SlashCommandBooleanOption, SlashCommandBuilder, SlashCommandStringOption } from '@discordjs/builders';
1
+ import { SlashCommandBooleanOption, SlashCommandBuilder, SlashCommandStringOption, } from '@discordjs/builders';
2
2
  import { REST } from '@discordjs/rest';
3
- import { ConfigService, FileNode, fileUtil, ProfilerFactory, Range, Service, VanillaConfig } from '@spyglassmc/core';
3
+ import { ConfigService, FileNode, fileUtil, ProfilerFactory, Range, Service, VanillaConfig, } from '@spyglassmc/core';
4
4
  import { NodeJsExternals } from '@spyglassmc/core/lib/nodejs.js';
5
5
  import * as je from '@spyglassmc/java-edition';
6
6
  import * as mcdoc from '@spyglassmc/mcdoc';
7
7
  import { Routes } from 'discord-api-types/rest/v9';
8
- import { Client, Intents, MessageActionRow, MessageButton, MessageEmbed } from 'discord.js';
8
+ import { Client, Intents, MessageActionRow, MessageButton, MessageEmbed, } from 'discord.js';
9
9
  import { dirname, join } from 'path';
10
10
  import { fileURLToPath, pathToFileURL } from 'url';
11
11
  const MaxContentLength = 2000;
@@ -21,21 +21,18 @@ console.log(`projectPath = ${projectPath}`);
21
21
  const config = await loadConfig();
22
22
  const rest = new REST({ version: '9' }).setToken(config.token);
23
23
  const client = new Client({
24
- intents: [
25
- Intents.FLAGS.GUILDS,
26
- ],
24
+ intents: [Intents.FLAGS.GUILDS],
27
25
  });
28
26
  const service = new Service({
29
27
  logger: console,
30
28
  profilers,
31
29
  project: {
32
30
  cacheRoot: fileUtil.ensureEndingSlash(pathToFileURL(cacheRoot).toString()),
33
- defaultConfig: ConfigService.merge(VanillaConfig, { env: { dependencies: [] } }),
31
+ defaultConfig: ConfigService.merge(VanillaConfig, {
32
+ env: { dependencies: [] },
33
+ }),
34
34
  externals: NodeJsExternals,
35
- initializers: [
36
- mcdoc.initialize,
37
- je.initialize,
38
- ],
35
+ initializers: [mcdoc.initialize, je.initialize],
39
36
  projectRoot: fileUtil.ensureEndingSlash(pathToFileURL(projectPath).toString()),
40
37
  },
41
38
  });
@@ -47,7 +44,9 @@ client.on('interactionCreate', async (i) => {
47
44
  const info = activeInteractions.get(i.message.id);
48
45
  if (!info) {
49
46
  await i.update({
50
- embeds: [new MessageEmbed().setDescription('The interaction has expired!')],
47
+ embeds: [
48
+ new MessageEmbed().setDescription('The interaction has expired!'),
49
+ ],
51
50
  components: [],
52
51
  });
53
52
  return;
@@ -63,7 +62,10 @@ client.on('interactionCreate', async (i) => {
63
62
  else if (i.isCommand()) {
64
63
  switch (i.commandName) {
65
64
  case 'ping':
66
- await i.reply({ content: `Pong! Bot to Discord ping ${client.ws.ping} ms`, ephemeral: true });
65
+ await i.reply({
66
+ content: `Pong! Bot to Discord ping ${client.ws.ping} ms`,
67
+ ephemeral: true,
68
+ });
67
69
  break;
68
70
  case 'spy':
69
71
  const command = i.options.getString('command', true);
@@ -92,7 +94,7 @@ __profiler.task('Register Commands').finalize();
92
94
  */
93
95
  async function loadConfig() {
94
96
  const path = join(parentPath, 'config.json');
95
- const config = await fileUtil.readJson(NodeJsExternals, path);
97
+ const config = (await fileUtil.readJson(NodeJsExternals, path));
96
98
  if (!(typeof config.clientId === 'string' &&
97
99
  typeof config.guildId === 'string' &&
98
100
  typeof config.token === 'string')) {
@@ -150,7 +152,19 @@ function getReplyOptions(info) {
150
152
  content: content.length > MaxContentLength
151
153
  ? `Skipped colorizing due to Discord length limit.\n\`\`\`\n${info.content}\n\`\`\``
152
154
  : content,
153
- components: info.errors.length > 1 ? [new MessageActionRow().addComponents(new MessageButton().setCustomId('previous').setLabel('Previous Error').setStyle('PRIMARY').setDisabled(info.activeErrorIndex <= 0), new MessageButton().setCustomId('next').setLabel('Next Error').setStyle('PRIMARY').setDisabled(info.activeErrorIndex >= info.errors.length - 1))] : [],
155
+ components: info.errors.length > 1
156
+ ? [
157
+ new MessageActionRow().addComponents(new MessageButton()
158
+ .setCustomId('previous')
159
+ .setLabel('Previous Error')
160
+ .setStyle('PRIMARY')
161
+ .setDisabled(info.activeErrorIndex <= 0), new MessageButton()
162
+ .setCustomId('next')
163
+ .setLabel('Next Error')
164
+ .setStyle('PRIMARY')
165
+ .setDisabled(info.activeErrorIndex >= info.errors.length - 1)),
166
+ ]
167
+ : [],
154
168
  fetchReply: true,
155
169
  };
156
170
  }
@@ -196,19 +210,28 @@ function getReplyContent(info) {
196
210
  /**
197
211
  * @returns Unsorted tokens.
198
212
  */
199
- function toRenderTokens({ tokens, errors, activeErrorIndex }) {
200
- const ans = tokens.map(t => ({ formats: ColorTokenTypeLegend[t.type], range: t.range }));
213
+ function toRenderTokens({ tokens, errors, activeErrorIndex, }) {
214
+ const ans = tokens.map((t) => ({
215
+ formats: ColorTokenTypeLegend[t.type],
216
+ range: t.range,
217
+ }));
201
218
  const activeError = errors[activeErrorIndex];
202
219
  if (activeError) {
203
- ans.push({ formats: new Set(['background_orange', 'foreground_white']), range: activeError.range });
220
+ ans.push({
221
+ formats: new Set(['background_orange', 'foreground_white']),
222
+ range: activeError.range,
223
+ });
204
224
  }
205
225
  return ans;
206
226
  }
207
227
  function getAnsiCode(content, tokens) {
208
228
  let ans = toAnsiEscapeCode(['reset']);
209
229
  tokens = tokens
210
- .map(t => t.range.end - t.range.start === 0
211
- ? { range: { start: t.range.start, end: t.range.start + 1 }, formats: t.formats }
230
+ .map((t) => t.range.end - t.range.start === 0
231
+ ? {
232
+ range: { start: t.range.start, end: t.range.start + 1 },
233
+ formats: t.formats,
234
+ }
212
235
  : t)
213
236
  .sort((a, b) => a.range.start - b.range.start);
214
237
  for (let i = 0; i < tokens.length - 1; i++) {
@@ -228,11 +251,16 @@ function getAnsiCode(content, tokens) {
228
251
  }
229
252
  insertedTokens.push({
230
253
  formats: new Set([...current.formats, ...next.formats]),
231
- range: { start: next.range.start, end: Math.min(current.range.end, next.range.end) },
254
+ range: {
255
+ start: next.range.start,
256
+ end: Math.min(current.range.end, next.range.end),
257
+ },
232
258
  });
233
259
  if (current.range.end !== next.range.end) {
234
260
  insertedTokens.push({
235
- formats: current.range.end < next.range.end ? next.formats : current.formats,
261
+ formats: current.range.end < next.range.end
262
+ ? next.formats
263
+ : current.formats,
236
264
  range: {
237
265
  start: Math.min(current.range.end, next.range.end),
238
266
  end: Math.max(current.range.end, next.range.end),
@@ -254,7 +282,7 @@ function getAnsiCode(content, tokens) {
254
282
  return ans;
255
283
  }
256
284
  function toAnsiEscapeCode(formats) {
257
- return `\u001b[${[...formats].map(v => AnsiCodeMap[v]).join(';')}m`;
285
+ return `\u001b[${[...formats].map((v) => AnsiCodeMap[v]).join(';')}m`;
258
286
  }
259
287
  function errorSeverityToChar(severity) {
260
288
  switch (severity) {
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spyglassmc/discord-bot",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "type": "module",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -13,10 +13,10 @@
13
13
  "@discordjs/rest": "^0.4.1",
14
14
  "discord.js": "^13.7.0",
15
15
  "discord-api-types": "^0.33.1",
16
- "@spyglassmc/core": "0.4.0",
17
- "@spyglassmc/java-edition": "0.3.1",
18
- "@spyglassmc/locales": "0.3.0",
19
- "@spyglassmc/mcdoc": "0.3.1"
16
+ "@spyglassmc/core": "0.4.2",
17
+ "@spyglassmc/java-edition": "0.3.3",
18
+ "@spyglassmc/locales": "0.3.2",
19
+ "@spyglassmc/mcdoc": "0.3.3"
20
20
  },
21
21
  "devDependencies": {},
22
22
  "scripts": {
package/src/index.ts CHANGED
@@ -1,13 +1,36 @@
1
- import { SlashCommandBooleanOption, SlashCommandBuilder, SlashCommandStringOption } from '@discordjs/builders'
1
+ import {
2
+ SlashCommandBooleanOption,
3
+ SlashCommandBuilder,
4
+ SlashCommandStringOption,
5
+ } from '@discordjs/builders'
2
6
  import { REST } from '@discordjs/rest'
3
- import type { ColorToken, ColorTokenType, LanguageError } from '@spyglassmc/core'
4
- import { ConfigService, ErrorSeverity, FileNode, fileUtil, ProfilerFactory, Range, Service, VanillaConfig } from '@spyglassmc/core'
7
+ import type {
8
+ ColorToken,
9
+ ColorTokenType,
10
+ LanguageError,
11
+ } from '@spyglassmc/core'
12
+ import {
13
+ ConfigService,
14
+ ErrorSeverity,
15
+ FileNode,
16
+ fileUtil,
17
+ ProfilerFactory,
18
+ Range,
19
+ Service,
20
+ VanillaConfig,
21
+ } from '@spyglassmc/core'
5
22
  import { NodeJsExternals } from '@spyglassmc/core/lib/nodejs.js'
6
23
  import * as je from '@spyglassmc/java-edition'
7
24
  import * as mcdoc from '@spyglassmc/mcdoc'
8
25
  import { Routes } from 'discord-api-types/rest/v9'
9
26
  import type { Snowflake } from 'discord.js'
10
- import { Client, Intents, MessageActionRow, MessageButton, MessageEmbed } from 'discord.js'
27
+ import {
28
+ Client,
29
+ Intents,
30
+ MessageActionRow,
31
+ MessageButton,
32
+ MessageEmbed,
33
+ } from 'discord.js'
11
34
  import { dirname, join } from 'path'
12
35
  import { fileURLToPath, pathToFileURL } from 'url'
13
36
 
@@ -28,42 +51,47 @@ console.log(`projectPath = ${projectPath}`)
28
51
  const config = await loadConfig()
29
52
  const rest = new REST({ version: '9' }).setToken(config.token)
30
53
  const client = new Client({
31
- intents: [
32
- Intents.FLAGS.GUILDS,
33
- ],
54
+ intents: [Intents.FLAGS.GUILDS],
34
55
  })
35
56
  const service = new Service({
36
57
  logger: console,
37
58
  profilers,
38
59
  project: {
39
- cacheRoot: fileUtil.ensureEndingSlash(pathToFileURL(cacheRoot).toString()),
40
- defaultConfig: ConfigService.merge(VanillaConfig, { env: { dependencies: [] } }),
60
+ cacheRoot: fileUtil.ensureEndingSlash(
61
+ pathToFileURL(cacheRoot).toString(),
62
+ ),
63
+ defaultConfig: ConfigService.merge(VanillaConfig, {
64
+ env: { dependencies: [] },
65
+ }),
41
66
  externals: NodeJsExternals,
42
- initializers: [
43
- mcdoc.initialize,
44
- je.initialize,
45
- ],
46
- projectRoot: fileUtil.ensureEndingSlash(pathToFileURL(projectPath).toString()),
67
+ initializers: [mcdoc.initialize, je.initialize],
68
+ projectRoot: fileUtil.ensureEndingSlash(
69
+ pathToFileURL(projectPath).toString(),
70
+ ),
47
71
  },
48
72
  })
49
73
  const DocumentUri = 'spyglassmc://discord-bot/file.mcfunction'
50
74
 
51
75
  interface InteractionInfo {
52
- content: string,
53
- errors: LanguageError[],
54
- activeErrorIndex: number,
55
- tokens: readonly ColorToken[],
56
- showRaw: boolean,
76
+ content: string
77
+ errors: LanguageError[]
78
+ activeErrorIndex: number
79
+ tokens: readonly ColorToken[]
80
+ showRaw: boolean
57
81
  }
58
82
  const activeInteractions = new Map<Snowflake, InteractionInfo>()
59
83
 
60
- client.on('interactionCreate', async i => {
84
+ client.on('interactionCreate', async (i) => {
61
85
  try {
62
86
  if (i.isButton()) {
63
87
  const info = activeInteractions.get(i.message.id)
64
88
  if (!info) {
65
89
  await i.update({
66
- embeds: [new MessageEmbed().setDescription('The interaction has expired!')],
90
+ embeds: [
91
+ new MessageEmbed().setDescription(
92
+ 'The interaction has expired!',
93
+ ),
94
+ ],
67
95
  components: [],
68
96
  })
69
97
  return
@@ -78,7 +106,10 @@ client.on('interactionCreate', async i => {
78
106
  } else if (i.isCommand()) {
79
107
  switch (i.commandName) {
80
108
  case 'ping':
81
- await i.reply({ content: `Pong! Bot to Discord ping ${client.ws.ping} ms`, ephemeral: true })
109
+ await i.reply({
110
+ content: `Pong! Bot to Discord ping ${client.ws.ping} ms`,
111
+ ephemeral: true,
112
+ })
82
113
  break
83
114
  case 'spy':
84
115
  const command = i.options.getString('command', true)
@@ -104,9 +135,9 @@ await registerCommands()
104
135
  __profiler.task('Register Commands').finalize()
105
136
 
106
137
  interface Config {
107
- clientId: string,
108
- guildId: string,
109
- token: string,
138
+ clientId: string
139
+ guildId: string
140
+ token: string
110
141
  }
111
142
 
112
143
  /**
@@ -114,10 +145,14 @@ interface Config {
114
145
  */
115
146
  async function loadConfig(): Promise<Config> {
116
147
  const path = join(parentPath, 'config.json')
117
- const config = await fileUtil.readJson(NodeJsExternals, path) as Config
118
- if (!(typeof config.clientId === 'string' &&
119
- typeof config.guildId === 'string' &&
120
- typeof config.token === 'string')) {
148
+ const config = (await fileUtil.readJson(NodeJsExternals, path)) as Config
149
+ if (
150
+ !(
151
+ typeof config.clientId === 'string' &&
152
+ typeof config.guildId === 'string' &&
153
+ typeof config.token === 'string'
154
+ )
155
+ ) {
121
156
  throw new Error(`Bad config: ${JSON.stringify(config)}`)
122
157
  }
123
158
  return config
@@ -133,29 +168,43 @@ async function registerCommands(): Promise<unknown> {
133
168
  .toJSON()
134
169
  const spyCommand = new SlashCommandBuilder()
135
170
  .setName('spy')
136
- .setDescription('Renders a mcfunction command. Error reporting coming soon™')
137
- .addStringOption(new SlashCommandStringOption()
138
- .setName('command')
139
- .setDescription('Put a single mcfunction command here')
140
- .setRequired(true)
171
+ .setDescription(
172
+ 'Renders a mcfunction command. Error reporting coming soon™',
141
173
  )
142
- .addBooleanOption(new SlashCommandBooleanOption()
143
- .setName('showraw')
144
- .setDescription('Whether to show the result ANSI code in raw code blocks')
145
- .setRequired(false)
174
+ .addStringOption(
175
+ new SlashCommandStringOption()
176
+ .setName('command')
177
+ .setDescription('Put a single mcfunction command here')
178
+ .setRequired(true),
179
+ )
180
+ .addBooleanOption(
181
+ new SlashCommandBooleanOption()
182
+ .setName('showraw')
183
+ .setDescription(
184
+ 'Whether to show the result ANSI code in raw code blocks',
185
+ )
186
+ .setRequired(false),
146
187
  )
147
188
  .toJSON()
148
189
 
149
- return rest.put(Routes.applicationGuildCommands(config.clientId, config.guildId), { body: [pingCommand, spyCommand] })
190
+ return rest.put(
191
+ Routes.applicationGuildCommands(config.clientId, config.guildId),
192
+ { body: [pingCommand, spyCommand] },
193
+ )
150
194
  }
151
195
 
152
- async function getInteractionInfo(content: string, showRaw: boolean): Promise<InteractionInfo> {
196
+ async function getInteractionInfo(
197
+ content: string,
198
+ showRaw: boolean,
199
+ ): Promise<InteractionInfo> {
153
200
  if (activeInteractions.has(content)) {
154
201
  return activeInteractions.get(content)!
155
202
  }
156
203
 
157
204
  await service.project.onDidOpen(DocumentUri, 'mcfunction', 0, content)
158
- const docAndNode = await service.project.ensureClientManagedChecked(DocumentUri)
205
+ const docAndNode = await service.project.ensureClientManagedChecked(
206
+ DocumentUri,
207
+ )
159
208
  service.project.onDidClose(DocumentUri)
160
209
  if (!docAndNode) {
161
210
  throw new Error('docAndNode is undefined')
@@ -175,16 +224,32 @@ async function getInteractionInfo(content: string, showRaw: boolean): Promise<In
175
224
  }
176
225
  }
177
226
 
178
- function getReplyOptions(info: InteractionInfo): { content: string, components: MessageActionRow[], fetchReply: true } {
227
+ function getReplyOptions(info: InteractionInfo): {
228
+ content: string
229
+ components: MessageActionRow[]
230
+ fetchReply: true
231
+ } {
179
232
  const content = getReplyContent(info)
180
233
  return {
181
234
  content: content.length > MaxContentLength
182
235
  ? `Skipped colorizing due to Discord length limit.\n\`\`\`\n${info.content}\n\`\`\``
183
236
  : content,
184
- components: info.errors.length > 1 ? [new MessageActionRow().addComponents(
185
- new MessageButton().setCustomId('previous').setLabel('Previous Error').setStyle('PRIMARY').setDisabled(info.activeErrorIndex <= 0),
186
- new MessageButton().setCustomId('next').setLabel('Next Error').setStyle('PRIMARY').setDisabled(info.activeErrorIndex >= info.errors.length - 1)
187
- )] : [],
237
+ components: info.errors.length > 1
238
+ ? [
239
+ new MessageActionRow().addComponents(
240
+ new MessageButton()
241
+ .setCustomId('previous')
242
+ .setLabel('Previous Error')
243
+ .setStyle('PRIMARY')
244
+ .setDisabled(info.activeErrorIndex <= 0),
245
+ new MessageButton()
246
+ .setCustomId('next')
247
+ .setLabel('Next Error')
248
+ .setStyle('PRIMARY')
249
+ .setDisabled(info.activeErrorIndex >= info.errors.length - 1),
250
+ ),
251
+ ]
252
+ : [],
188
253
  fetchReply: true,
189
254
  }
190
255
  }
@@ -201,7 +266,7 @@ type RenderFormat =
201
266
  | 'reset'
202
267
  | 'underline'
203
268
  interface RenderToken {
204
- formats: Set<RenderFormat>,
269
+ formats: Set<RenderFormat>
205
270
  range: Range
206
271
  }
207
272
  const AnsiCodeMap: Record<RenderFormat, number> = {
@@ -243,19 +308,35 @@ function getReplyContent(info: InteractionInfo): string {
243
308
 
244
309
  const activeError: LanguageError | undefined = errors[activeErrorIndex]
245
310
 
246
- return `\`\`\`${info.showRaw ? '' : 'ansi'}\n${ansiCode}\n\`\`\`${activeError
247
- ? `\n\`${errorSeverityToChar(activeError.severity)} ${Range.toString(activeError.range)} ${activeError.message}\``
248
- : ''}`
311
+ return `\`\`\`${info.showRaw ? '' : 'ansi'}\n${ansiCode}\n\`\`\`${
312
+ activeError
313
+ ? `\n\`${errorSeverityToChar(activeError.severity)} ${
314
+ Range.toString(
315
+ activeError.range,
316
+ )
317
+ } ${activeError.message}\``
318
+ : ''
319
+ }`
249
320
  }
250
321
 
251
322
  /**
252
323
  * @returns Unsorted tokens.
253
324
  */
254
- function toRenderTokens({ tokens, errors, activeErrorIndex }: InteractionInfo): RenderToken[] {
255
- const ans: RenderToken[] = tokens.map(t => ({ formats: ColorTokenTypeLegend[t.type], range: t.range }))
325
+ function toRenderTokens({
326
+ tokens,
327
+ errors,
328
+ activeErrorIndex,
329
+ }: InteractionInfo): RenderToken[] {
330
+ const ans: RenderToken[] = tokens.map((t) => ({
331
+ formats: ColorTokenTypeLegend[t.type],
332
+ range: t.range,
333
+ }))
256
334
  const activeError: LanguageError | undefined = errors[activeErrorIndex]
257
335
  if (activeError) {
258
- ans.push({ formats: new Set(['background_orange', 'foreground_white']), range: activeError.range })
336
+ ans.push({
337
+ formats: new Set(['background_orange', 'foreground_white']),
338
+ range: activeError.range,
339
+ })
259
340
  }
260
341
  return ans
261
342
  }
@@ -263,9 +344,13 @@ function toRenderTokens({ tokens, errors, activeErrorIndex }: InteractionInfo):
263
344
  function getAnsiCode(content: string, tokens: RenderToken[]): string {
264
345
  let ans: string = toAnsiEscapeCode(['reset'])
265
346
  tokens = tokens
266
- .map(t => t.range.end - t.range.start === 0
267
- ? { range: { start: t.range.start, end: t.range.start + 1 }, formats: t.formats }
268
- : t
347
+ .map((t) =>
348
+ t.range.end - t.range.start === 0
349
+ ? {
350
+ range: { start: t.range.start, end: t.range.start + 1 },
351
+ formats: t.formats,
352
+ }
353
+ : t
269
354
  )
270
355
  .sort((a, b) => a.range.start - b.range.start)
271
356
 
@@ -287,11 +372,16 @@ function getAnsiCode(content: string, tokens: RenderToken[]): string {
287
372
  }
288
373
  insertedTokens.push({
289
374
  formats: new Set([...current.formats, ...next.formats]),
290
- range: { start: next.range.start, end: Math.min(current.range.end, next.range.end) },
375
+ range: {
376
+ start: next.range.start,
377
+ end: Math.min(current.range.end, next.range.end),
378
+ },
291
379
  })
292
380
  if (current.range.end !== next.range.end) {
293
381
  insertedTokens.push({
294
- formats: current.range.end < next.range.end ? next.formats : current.formats,
382
+ formats: current.range.end < next.range.end
383
+ ? next.formats
384
+ : current.formats,
295
385
  range: {
296
386
  start: Math.min(current.range.end, next.range.end),
297
387
  end: Math.max(current.range.end, next.range.end),
@@ -314,8 +404,10 @@ function getAnsiCode(content: string, tokens: RenderToken[]): string {
314
404
  return ans
315
405
  }
316
406
 
317
- function toAnsiEscapeCode(formats: Iterable<RenderFormat>): `\u001b[${string}m` {
318
- return `\u001b[${[...formats].map(v => AnsiCodeMap[v]).join(';')}m`
407
+ function toAnsiEscapeCode(
408
+ formats: Iterable<RenderFormat>,
409
+ ): `\u001b[${string}m` {
410
+ return `\u001b[${[...formats].map((v) => AnsiCodeMap[v]).join(';')}m`
319
411
  }
320
412
 
321
413
  function errorSeverityToChar(severity: ErrorSeverity): string {