mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-22 09:38:38 +01:00
37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
'use strict';
|
|
|
|
export class JSONLocation {
|
|
private segments: string[];
|
|
|
|
constructor(segments: string[]) {
|
|
this.segments = segments;
|
|
}
|
|
|
|
public append(segment: string): JSONLocation {
|
|
return new JSONLocation(this.segments.concat(segment));
|
|
}
|
|
|
|
public getSegments() {
|
|
return this.segments;
|
|
}
|
|
|
|
public matches(segments: string[]) {
|
|
let k = 0;
|
|
for (let i = 0; k < segments.length && i < this.segments.length; i++) {
|
|
if (segments[k] === this.segments[i] || segments[k] === '*') {
|
|
k++;
|
|
} else if (segments[k] !== '**') {
|
|
return false;
|
|
}
|
|
}
|
|
return k === segments.length;
|
|
}
|
|
|
|
public toString(): string {
|
|
return '[' + this.segments.join('][') + ']';
|
|
}
|
|
} |