@@ -6,7 +6,7 @@ import { Emitter } from '../common/event';
6
6
import { ResourceProvider } from './provider' ;
7
7
import { IDisposable } from '../common/lifecycle' ;
8
8
import { IDataStore } from '../services/datastore' ;
9
- import { TrieMap } from 'mnemonist' ;
9
+ import TrieMap from 'mnemonist/trie-map ' ;
10
10
11
11
export class FoamWorkspace implements IDisposable {
12
12
private onDidAddEmitter = new Emitter < Resource > ( ) ;
@@ -34,10 +34,9 @@ export class FoamWorkspace implements IDisposable {
34
34
35
35
set ( resource : Resource ) {
36
36
const old = this . find ( resource . uri ) ;
37
- const normalizedPath = normalize ( resource . uri . path ) ;
38
37
39
38
// store resource
40
- this . _resources . set ( this . getReversedIdentifier ( normalizedPath ) , resource ) ;
39
+ this . _resources . set ( this . getTrieIdentifier ( resource . uri . path ) , resource ) ;
41
40
42
41
isSome ( old )
43
42
? this . onDidUpdateEmitter . fire ( { old : old , new : resource } )
@@ -46,8 +45,8 @@ export class FoamWorkspace implements IDisposable {
46
45
}
47
46
48
47
delete ( uri : URI ) {
49
- const deleted = this . _resources . get ( this . getReversedIdentifier ( uri ) ) ;
50
- this . _resources . delete ( this . getReversedIdentifier ( uri ) ) ;
48
+ const deleted = this . _resources . get ( this . getTrieIdentifier ( uri ) ) ;
49
+ this . _resources . delete ( this . getTrieIdentifier ( uri ) ) ;
51
50
52
51
isSome ( deleted ) && this . onDidDeleteEmitter . fire ( deleted ) ;
53
52
return deleted ?? null ;
@@ -79,19 +78,17 @@ export class FoamWorkspace implements IDisposable {
79
78
}
80
79
81
80
public listByIdentifier ( identifier : string ) : Resource [ ] {
82
- let needle = this . getReversedIdentifier ( identifier ) ;
81
+ let needle = this . getTrieIdentifier ( identifier ) ;
83
82
84
83
const mdNeedle =
85
84
getExtension ( normalize ( identifier ) ) !== this . defaultExtension
86
- ? this . getReversedIdentifier ( identifier + this . defaultExtension )
85
+ ? this . getTrieIdentifier ( identifier + this . defaultExtension )
87
86
: undefined ;
88
87
89
88
const resources : Resource [ ] = [ ] ;
90
89
91
90
this . _resources . find ( needle ) . forEach ( elm => {
92
- if ( elm [ 0 ] . indexOf ( getExtension ( normalize ( identifier ) ) ) > 0 ) {
93
- resources . push ( elm [ 1 ] ) ;
94
- }
91
+ resources . push ( elm [ 1 ] ) ;
95
92
} ) ;
96
93
if ( mdNeedle ) {
97
94
this . _resources . find ( mdNeedle ) . forEach ( elm => resources . push ( elm [ 1 ] ) ) ;
@@ -141,7 +138,7 @@ export class FoamWorkspace implements IDisposable {
141
138
*
142
139
* @param reference the URI path to reverse
143
140
*/
144
- private getReversedIdentifier ( reference : URI | string ) : string {
141
+ private getTrieIdentifier ( reference : URI | string ) : string {
145
142
let path : string ;
146
143
if ( reference instanceof URI ) {
147
144
path = ( reference as URI ) . path ;
@@ -160,7 +157,7 @@ export class FoamWorkspace implements IDisposable {
160
157
161
158
public find ( reference : URI | string , baseUri ?: URI ) : Resource | null {
162
159
if ( reference instanceof URI ) {
163
- return this . _resources . get ( this . getReversedIdentifier ( reference ) ) ?? null ;
160
+ return this . _resources . get ( this . getTrieIdentifier ( reference ) ) ?? null ;
164
161
}
165
162
let resource : Resource | null = null ;
166
163
const [ path , fragment ] = ( reference as string ) . split ( '#' ) ;
@@ -174,9 +171,7 @@ export class FoamWorkspace implements IDisposable {
174
171
: isSome ( baseUri )
175
172
? baseUri . resolve ( candidate ) . path
176
173
: null ;
177
- resource = this . _resources . get (
178
- normalize ( searchKey ) . split ( '/' ) . reverse ( ) . join ( '/' )
179
- ) ;
174
+ resource = this . _resources . get ( this . getTrieIdentifier ( searchKey ) ) ;
180
175
if ( resource ) {
181
176
break ;
182
177
}
0 commit comments