@@ -2,9 +2,10 @@ import * as vscode from 'vscode';
2
2
import { ServerName } from '../extension' ;
3
3
import { serverDetail } from './getServerSummary' ;
4
4
5
- export function getServerNames ( scope ?: vscode . ConfigurationScope ) : ServerName [ ] {
5
+ export function getServerNames ( scope ?: vscode . ConfigurationScope , sorted ?: boolean ) : ServerName [ ] {
6
+ const allNames : ServerName [ ] = [ ] ;
6
7
let names : ServerName [ ] = [ ] ;
7
- let defaultNames : ServerName [ ] = [ ] ;
8
+ const embeddedNames : ServerName [ ] = [ ] ;
8
9
const servers = vscode . workspace . getConfiguration ( 'intersystems' , scope ) . get ( 'servers' ) ;
9
10
10
11
if ( typeof servers === 'object' && servers ) {
@@ -18,7 +19,7 @@ export function getServerNames(scope?: vscode.ConfigurationScope): ServerName[]
18
19
const inspectedDefault = vscode . workspace . getConfiguration ( 'intersystems.servers' , scope ) . inspect ( '/default' ) ;
19
20
const myDefault : string = notSet ( inspectedDefault ) ? '' : servers [ '/default' ] || '' ;
20
21
if ( myDefault . length > 0 && servers [ myDefault ] ) {
21
- names . push ( {
22
+ allNames . push ( {
22
23
name : myDefault ,
23
24
description : `${ servers [ myDefault ] . description || '' } (default)` . trim ( ) ,
24
25
detail : serverDetail ( servers [ myDefault ] )
@@ -32,7 +33,7 @@ export function getServerNames(scope?: vscode.ConfigurationScope): ServerName[]
32
33
33
34
// Collect embedded (default~*) servers separately
34
35
if ( notSet ( inspected ) ) {
35
- defaultNames . push ( {
36
+ embeddedNames . push ( {
36
37
name : key ,
37
38
description : servers [ key ] . description || '' ,
38
39
detail : serverDetail ( servers [ key ] )
@@ -48,9 +49,17 @@ export function getServerNames(scope?: vscode.ConfigurationScope): ServerName[]
48
49
}
49
50
}
50
51
52
+ // If requested, sort what we found
53
+ if ( sorted ) {
54
+ names = names . sort ( ( a , b ) => a . name < b . name ? - 1 : a . name > b . name ? 1 : 0 ) ;
55
+ }
56
+
57
+ // Append them
58
+ allNames . push ( ...names ) ;
59
+
51
60
// Append the embedded servers unless suppressed
52
61
if ( ! vscode . workspace . getConfiguration ( 'intersystems.servers' , scope ) . get ( '/hideEmbeddedEntries' ) ) {
53
- names . push ( ...defaultNames ) ;
62
+ allNames . push ( ...embeddedNames ) ;
54
63
}
55
- return names ;
64
+ return allNames ;
56
65
}
0 commit comments