@theia/callhierarchy 1.26.0-next.3 → 1.26.0-next.32

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,91 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.score = void 0;
4
- // *****************************************************************************
5
- // Copyright (C) 2020 Red Hat, Inc. and others.
6
- //
7
- // This program and the accompanying materials are made available under the
8
- // terms of the Eclipse Public License v. 2.0 which is available at
9
- // http://www.eclipse.org/legal/epl-2.0.
10
- //
11
- // This Source Code may also be made available under the following Secondary
12
- // Licenses when the conditions for such availability set forth in the Eclipse
13
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
14
- // with the GNU Classpath Exception which is available at
15
- // https://www.gnu.org/software/classpath/license.html.
16
- //
17
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
18
- // *****************************************************************************
19
- const glob_1 = require("./glob");
20
- function score(selector, uriScheme, path, candidateLanguage, candidateIsSynchronized) {
21
- if (Array.isArray(selector)) {
22
- let ret = 0;
23
- for (const filter of selector) {
24
- const value = score(filter, uriScheme, path, candidateLanguage, candidateIsSynchronized);
25
- if (value === 10) {
26
- return value;
27
- }
28
- if (value > ret) {
29
- ret = value;
30
- }
31
- }
32
- return ret;
33
- }
34
- else if (typeof selector === 'string') {
35
- if (!candidateIsSynchronized) {
36
- return 0;
37
- }
38
- if (selector === '*') {
39
- return 5;
40
- }
41
- else if (selector === candidateLanguage) {
42
- return 10;
43
- }
44
- else {
45
- return 0;
46
- }
47
- }
48
- else if (selector) {
49
- const { language, pattern, scheme, hasAccessToAllModels } = selector;
50
- if (!candidateIsSynchronized && !hasAccessToAllModels) {
51
- return 0;
52
- }
53
- let result = 0;
54
- if (scheme) {
55
- if (scheme === uriScheme) {
56
- result = 10;
57
- }
58
- else if (scheme === '*') {
59
- result = 5;
60
- }
61
- else {
62
- return 0;
63
- }
64
- }
65
- if (language) {
66
- if (language === candidateLanguage) {
67
- result = 10;
68
- }
69
- else if (language === '*') {
70
- result = Math.max(result, 5);
71
- }
72
- else {
73
- return 0;
74
- }
75
- }
76
- if (pattern) {
77
- if (pattern === path || (0, glob_1.match)(pattern, path)) {
78
- result = 10;
79
- }
80
- else {
81
- return 0;
82
- }
83
- }
84
- return result;
85
- }
86
- else {
87
- return 0;
88
- }
89
- }
90
- exports.score = score;
91
- //# sourceMappingURL=language-selector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"language-selector.js","sourceRoot":"","sources":["../../src/common/language-selector.ts"],"names":[],"mappings":";;;AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;AAChF,iCAAmD;AAgBnD,SAAgB,KAAK,CAAC,QAAsC,EAAE,SAAiB,EAAE,IAAY,EAAE,iBAAyB,EAAE,uBAAgC;IAEtJ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QACzB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE;YAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE,uBAAuB,CAAC,CAAC;YACzF,IAAI,KAAK,KAAK,EAAE,EAAE;gBACd,OAAO,KAAK,CAAC;aAChB;YACD,IAAI,KAAK,GAAG,GAAG,EAAE;gBACb,GAAG,GAAG,KAAK,CAAC;aACf;SACJ;QACD,OAAO,GAAG,CAAC;KAEd;SAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAErC,IAAI,CAAC,uBAAuB,EAAE;YAC1B,OAAO,CAAC,CAAC;SACZ;QAED,IAAI,QAAQ,KAAK,GAAG,EAAE;YAClB,OAAO,CAAC,CAAC;SACZ;aAAM,IAAI,QAAQ,KAAK,iBAAiB,EAAE;YACvC,OAAO,EAAE,CAAC;SACb;aAAM;YACH,OAAO,CAAC,CAAC;SACZ;KAEJ;SAAM,IAAI,QAAQ,EAAE;QACjB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,GAAG,QAAQ,CAAC;QAErE,IAAI,CAAC,uBAAuB,IAAI,CAAC,oBAAoB,EAAE;YACnD,OAAO,CAAC,CAAC;SACZ;QAED,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,IAAI,MAAM,EAAE;YACR,IAAI,MAAM,KAAK,SAAS,EAAE;gBACtB,MAAM,GAAG,EAAE,CAAC;aACf;iBAAM,IAAI,MAAM,KAAK,GAAG,EAAE;gBACvB,MAAM,GAAG,CAAC,CAAC;aACd;iBAAM;gBACH,OAAO,CAAC,CAAC;aACZ;SACJ;QAED,IAAI,QAAQ,EAAE;YACV,IAAI,QAAQ,KAAK,iBAAiB,EAAE;gBAChC,MAAM,GAAG,EAAE,CAAC;aACf;iBAAM,IAAI,QAAQ,KAAK,GAAG,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aAChC;iBAAM;gBACH,OAAO,CAAC,CAAC;aACZ;SACJ;QAED,IAAI,OAAO,EAAE;YACT,IAAI,OAAO,KAAK,IAAI,IAAI,IAAA,YAAgB,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE;gBACrD,MAAM,GAAG,EAAE,CAAC;aACf;iBAAM;gBACH,OAAO,CAAC,CAAC;aACZ;SACJ;QAED,OAAO,MAAM,CAAC;KAEjB;SAAM;QACH,OAAO,CAAC,CAAC;KACZ;AACL,CAAC;AAvED,sBAuEC"}
@@ -1,25 +0,0 @@
1
- /**
2
- * The forward slash path separator.
3
- */
4
- export declare const sep = "/";
5
- /**
6
- * The native path separator depending on the OS.
7
- */
8
- export declare const nativeSep: string;
9
- /**
10
- * @returns the base name of a path.
11
- */
12
- export declare function basename(path: string): string;
13
- /**
14
- * @returns `.far` from `boo.far` or the empty string.
15
- */
16
- export declare function extname(path: string): string;
17
- export declare function normalize(path: string, toOSPath?: boolean): string;
18
- /**
19
- * Computes the _root_ this path, like `getRoot('c:\files') === c:\`,
20
- * `getRoot('files:///files/path') === files:///`,
21
- * or `getRoot('\\server\shares\path') === \\server\shares\`
22
- */
23
- export declare function getRoot(path: string, sep?: string): string;
24
- export declare function isEqualOrParent(path: string, candidate: string, ignoreCase?: boolean): boolean;
25
- //# sourceMappingURL=paths.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/common/paths.ts"],"names":[],"mappings":"AA4BA;;GAEG;AACH,eAAO,MAAM,GAAG,MAAM,CAAC;AAEvB;;GAEG;AACH,eAAO,MAAM,SAAS,QAAyB,CAAC;AAWhD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAS7C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI5C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAuDlE;AAKD;;;;GAIG;AAEH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAY,GAAG,MAAM,CA2E/D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAoC9F"}
@@ -1,227 +0,0 @@
1
- // *****************************************************************************
2
- // Copyright (C) 2018 Red Hat, Inc. and others.
3
- //
4
- // This program and the accompanying materials are made available under the
5
- // terms of the Eclipse Public License v. 2.0 which is available at
6
- // http://www.eclipse.org/legal/epl-2.0.
7
- //
8
- // This Source Code may also be made available under the following Secondary
9
- // Licenses when the conditions for such availability set forth in the Eclipse
10
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
- // with the GNU Classpath Exception which is available at
12
- // https://www.gnu.org/software/classpath/license.html.
13
- //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
- // *****************************************************************************
16
- // copied from https://github.com/Microsoft/vscode/blob/bf7ac9201e7a7d01741d4e6e64b5dc9f3197d97b/src/vs/base/common/paths.ts
17
- /*---------------------------------------------------------------------------------------------
18
- * Copyright (c) Microsoft Corporation. All rights reserved.
19
- * Licensed under the MIT License. See License.txt in the project root for license information.
20
- *--------------------------------------------------------------------------------------------*/
21
- /* eslint-disable no-void */
22
- /* eslint-disable no-null/no-null */
23
- 'use strict';
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.isEqualOrParent = exports.getRoot = exports.normalize = exports.extname = exports.basename = exports.nativeSep = exports.sep = void 0;
26
- const os_1 = require("@theia/core/lib/common/os");
27
- const strings_1 = require("@theia/core/lib/common/strings");
28
- /**
29
- * The forward slash path separator.
30
- */
31
- exports.sep = '/';
32
- /**
33
- * The native path separator depending on the OS.
34
- */
35
- exports.nativeSep = os_1.isWindows ? '\\' : '/';
36
- const _posixBadPath = /(\/\.\.?\/)|(\/\.\.?)$|^(\.\.?\/)|(\/\/+)|(\\)/;
37
- const _winBadPath = /(\\\.\.?\\)|(\\\.\.?)$|^(\.\.?\\)|(\\\\+)|(\/)/;
38
- function _isNormal(path, win) {
39
- return win
40
- ? !_winBadPath.test(path)
41
- : !_posixBadPath.test(path);
42
- }
43
- /**
44
- * @returns the base name of a path.
45
- */
46
- function basename(path) {
47
- const idx = ~path.lastIndexOf('/') || ~path.lastIndexOf('\\');
48
- if (idx === 0) {
49
- return path;
50
- }
51
- else if (~idx === path.length - 1) {
52
- return basename(path.substring(0, path.length - 1));
53
- }
54
- else {
55
- return path.substr(~idx + 1);
56
- }
57
- }
58
- exports.basename = basename;
59
- /**
60
- * @returns `.far` from `boo.far` or the empty string.
61
- */
62
- function extname(path) {
63
- path = basename(path);
64
- const idx = ~path.lastIndexOf('.');
65
- return idx ? path.substring(~idx) : '';
66
- }
67
- exports.extname = extname;
68
- function normalize(path, toOSPath) {
69
- if (path === null || path === void 0) {
70
- return path;
71
- }
72
- const len = path.length;
73
- if (len === 0) {
74
- return '.';
75
- }
76
- const wantsBackslash = os_1.isWindows && toOSPath;
77
- if (_isNormal(path, wantsBackslash)) {
78
- return path;
79
- }
80
- // eslint-disable-next-line @typescript-eslint/no-shadow
81
- const sep = wantsBackslash ? '\\' : '/';
82
- const root = getRoot(path, sep);
83
- // skip the root-portion of the path
84
- let start = root.length;
85
- let skip = false;
86
- let res = '';
87
- for (let end = root.length; end <= len; end++) {
88
- // either at the end or at a path-separator character
89
- if (end === len || path.charCodeAt(end) === 47 /* Slash */ || path.charCodeAt(end) === 92 /* Backslash */) {
90
- if (streql(path, start, end, '..')) {
91
- // skip current and remove parent (if there is already something)
92
- const prev_start = res.lastIndexOf(sep);
93
- const prev_part = res.slice(prev_start + 1);
94
- if ((root || prev_part.length > 0) && prev_part !== '..') {
95
- res = prev_start === -1 ? '' : res.slice(0, prev_start);
96
- skip = true;
97
- }
98
- }
99
- else if (streql(path, start, end, '.') && (root || res || end < len - 1)) {
100
- // skip current (if there is already something or if there is more to come)
101
- skip = true;
102
- }
103
- if (!skip) {
104
- const part = path.slice(start, end);
105
- if (res !== '' && res[res.length - 1] !== sep) {
106
- res += sep;
107
- }
108
- res += part;
109
- }
110
- start = end + 1;
111
- skip = false;
112
- }
113
- }
114
- return root + res;
115
- }
116
- exports.normalize = normalize;
117
- function streql(value, start, end, other) {
118
- return start + other.length === end && value.indexOf(other, start) === start;
119
- }
120
- /**
121
- * Computes the _root_ this path, like `getRoot('c:\files') === c:\`,
122
- * `getRoot('files:///files/path') === files:///`,
123
- * or `getRoot('\\server\shares\path') === \\server\shares\`
124
- */
125
- // eslint-disable-next-line @typescript-eslint/no-shadow
126
- function getRoot(path, sep = '/') {
127
- if (!path) {
128
- return '';
129
- }
130
- const len = path.length;
131
- let code = path.charCodeAt(0);
132
- if (code === 47 /* Slash */ || code === 92 /* Backslash */) {
133
- code = path.charCodeAt(1);
134
- if (code === 47 /* Slash */ || code === 92 /* Backslash */) {
135
- // UNC candidate \\localhost\shares\ddd
136
- // ^^^^^^^^^^^^^^^^^^^
137
- code = path.charCodeAt(2);
138
- if (code !== 47 /* Slash */ && code !== 92 /* Backslash */) {
139
- // eslint-disable-next-line @typescript-eslint/no-shadow
140
- let pos = 3;
141
- const start = pos;
142
- for (; pos < len; pos++) {
143
- code = path.charCodeAt(pos);
144
- if (code === 47 /* Slash */ || code === 92 /* Backslash */) {
145
- break;
146
- }
147
- }
148
- code = path.charCodeAt(pos + 1);
149
- if (start !== pos && code !== 47 /* Slash */ && code !== 92 /* Backslash */) {
150
- pos += 1;
151
- for (; pos < len; pos++) {
152
- code = path.charCodeAt(pos);
153
- if (code === 47 /* Slash */ || code === 92 /* Backslash */) {
154
- return path.slice(0, pos + 1) // consume this separator
155
- .replace(/[\\/]/g, sep);
156
- }
157
- }
158
- }
159
- }
160
- }
161
- // /user/far
162
- // ^
163
- return sep;
164
- }
165
- else if ((code >= 65 /* A */ && code <= 90 /* Z */) || (code >= 97 /* a */ && code <= 122 /* z */)) {
166
- // check for windows drive letter c:\ or c:
167
- if (path.charCodeAt(1) === 58 /* Colon */) {
168
- code = path.charCodeAt(2);
169
- if (code === 47 /* Slash */ || code === 92 /* Backslash */) {
170
- // C:\fff
171
- // ^^^
172
- return path.slice(0, 2) + sep;
173
- }
174
- else {
175
- // C:
176
- // ^^
177
- return path.slice(0, 2);
178
- }
179
- }
180
- }
181
- // check for URI
182
- // scheme://authority/path
183
- // ^^^^^^^^^^^^^^^^^^^
184
- let pos = path.indexOf('://');
185
- if (pos !== -1) {
186
- pos += 3; // 3 -> "://".length
187
- for (; pos < len; pos++) {
188
- code = path.charCodeAt(pos);
189
- if (code === 47 /* Slash */ || code === 92 /* Backslash */) {
190
- return path.slice(0, pos + 1); // consume this separator
191
- }
192
- }
193
- }
194
- return '';
195
- }
196
- exports.getRoot = getRoot;
197
- function isEqualOrParent(path, candidate, ignoreCase) {
198
- if (path === candidate) {
199
- return true;
200
- }
201
- if (!path || !candidate) {
202
- return false;
203
- }
204
- if (candidate.length > path.length) {
205
- return false;
206
- }
207
- if (ignoreCase) {
208
- const beginsWith = (0, strings_1.startsWithIgnoreCase)(path, candidate);
209
- if (!beginsWith) {
210
- return false;
211
- }
212
- if (candidate.length === path.length) {
213
- return true; // same path, different casing
214
- }
215
- let sepOffset = candidate.length;
216
- if (candidate.charAt(candidate.length - 1) === exports.nativeSep) {
217
- sepOffset--; // adjust the expected sep offset in case our candidate already ends in separator character
218
- }
219
- return path.charAt(sepOffset) === exports.nativeSep;
220
- }
221
- if (candidate.charAt(candidate.length - 1) !== exports.nativeSep) {
222
- candidate += exports.nativeSep;
223
- }
224
- return path.indexOf(candidate) === 0;
225
- }
226
- exports.isEqualOrParent = isEqualOrParent;
227
- //# sourceMappingURL=paths.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/common/paths.ts"],"names":[],"mappings":"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"}