@codingame/monaco-vscode-api 5.1.1 → 5.1.2-segmenter.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-api",
3
- "version": "5.1.1",
3
+ "version": "5.1.2-segmenter.1",
4
4
  "description": "VSCode public API plugged on the monaco editor",
5
5
  "keywords": [],
6
6
  "author": {
@@ -99,12 +99,12 @@
99
99
  "dependencies": {
100
100
  "@vscode/iconv-lite-umd": "0.7.0",
101
101
  "jschardet": "3.0.0",
102
- "@codingame/monaco-vscode-files-service-override": "5.1.1",
103
- "@codingame/monaco-vscode-extensions-service-override": "5.1.1",
104
- "@codingame/monaco-vscode-quickaccess-service-override": "5.1.1",
105
- "@codingame/monaco-vscode-environment-service-override": "5.1.1",
106
- "@codingame/monaco-vscode-layout-service-override": "5.1.1",
107
- "@codingame/monaco-vscode-host-service-override": "5.1.1",
108
- "@codingame/monaco-vscode-base-service-override": "5.1.1"
102
+ "@codingame/monaco-vscode-extensions-service-override": "5.1.2-segmenter.1",
103
+ "@codingame/monaco-vscode-files-service-override": "5.1.2-segmenter.1",
104
+ "@codingame/monaco-vscode-quickaccess-service-override": "5.1.2-segmenter.1",
105
+ "@codingame/monaco-vscode-environment-service-override": "5.1.2-segmenter.1",
106
+ "@codingame/monaco-vscode-layout-service-override": "5.1.2-segmenter.1",
107
+ "@codingame/monaco-vscode-host-service-override": "5.1.2-segmenter.1",
108
+ "@codingame/monaco-vscode-base-service-override": "5.1.2-segmenter.1"
109
109
  }
110
110
  }
@@ -7,17 +7,22 @@ declare const enum WordCharacterClass {
7
7
  }
8
8
  declare class WordCharacterClassifier extends CharacterClassifier<WordCharacterClass> {
9
9
  readonly intlSegmenterLocales: Intl.UnicodeBCP47LocaleIdentifier[];
10
- private readonly _segmenter;
11
- private _cachedLine;
12
- private _cachedSegments;
13
10
  constructor(wordSeparators: string, intlSegmenterLocales: Intl.UnicodeBCP47LocaleIdentifier[]);
14
11
  findPrevIntlWordBeforeOrAtOffset(line: string, offset: number): IntlWordSegmentData | null;
15
12
  findNextIntlWordAtOrAfterOffset(lineContent: string, offset: number): IntlWordSegmentData | null;
16
13
  private _getIntlSegmenterWordsOnLine;
17
- private _filterWordSegments;
18
- private _isWordLike;
19
14
  }
20
- interface IntlWordSegmentData extends Intl.SegmentData {
15
+ interface IntlWordSegmentData {
16
+ /** A string containing the segment extracted from the original input string. */
17
+ segment: string;
18
+ /** The code unit index in the original input string at which the segment begins. */
19
+ index: number;
20
+ /** The complete input string that was segmented. */
21
+ input: string;
22
+ /**
23
+ * A boolean value only if granularity is "word"; otherwise, undefined.
24
+ * If granularity is "word", then isWordLike is true when the segment is word-like (i.e., consists of letters/numbers/ideographs/etc.); otherwise, false.
25
+ */
21
26
  isWordLike: true;
22
27
  }
23
28
 
@@ -3,16 +3,7 @@ import { CharacterClassifier } from './characterClassifier.js';
3
3
  class WordCharacterClassifier extends CharacterClassifier {
4
4
  constructor(wordSeparators, intlSegmenterLocales) {
5
5
  super(0 );
6
- this._segmenter = null;
7
- this._cachedLine = null;
8
- this._cachedSegments = [];
9
6
  this.intlSegmenterLocales = intlSegmenterLocales;
10
- if (this.intlSegmenterLocales.length > 0) {
11
- this._segmenter = new Intl.Segmenter(this.intlSegmenterLocales, { granularity: 'word' });
12
- }
13
- else {
14
- this._segmenter = null;
15
- }
16
7
  for (let i = 0, len = wordSeparators.length; i < len; i++) {
17
8
  this.set(wordSeparators.charCodeAt(i), 2 );
18
9
  }
@@ -39,30 +30,7 @@ class WordCharacterClassifier extends CharacterClassifier {
39
30
  return null;
40
31
  }
41
32
  _getIntlSegmenterWordsOnLine(line) {
42
- if (!this._segmenter) {
43
- return [];
44
- }
45
- if (this._cachedLine === line) {
46
- return this._cachedSegments;
47
- }
48
- this._cachedLine = line;
49
- this._cachedSegments = this._filterWordSegments(this._segmenter.segment(line));
50
- return this._cachedSegments;
51
- }
52
- _filterWordSegments(segments) {
53
- const result = [];
54
- for (const segment of segments) {
55
- if (this._isWordLike(segment)) {
56
- result.push(segment);
57
- }
58
- }
59
- return result;
60
- }
61
- _isWordLike(segment) {
62
- if (segment.isWordLike) {
63
- return true;
64
- }
65
- return false;
33
+ return [];
66
34
  }
67
35
  }
68
36
  const wordClassifierCache = ( new LRUCache(10));