Skip to content

Commit 2a3bacd

Browse files
authored
Prepare 2.0.2 (#6)
* Fix infinite hover load on non-flag string literals * Update CHANGELOG.md * Prepare 2.0.2
1 parent 3d0a79a commit 2a3bacd

File tree

3 files changed

+50
-45
lines changed

3 files changed

+50
-45
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
All notable changes to the "launchdarkly" extension will be documented in this file.
44

5+
## [2.0.2] - 2018-10-04
6+
7+
### Fixed
8+
9+
- Fixed a bug causing hovers on non-flag string literals to indefinitely display loading text
10+
511
## [2.0.1] - 2018-09-28
612

713
### Fixed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "launchdarkly",
33
"displayName": "LaunchDarkly",
44
"description": "View LaunchDarkly feature flags in your editor.",
5-
"version": "2.0.1",
5+
"version": "2.0.2",
66
"publisher": "launchdarkly",
77
"engines": {
88
"vscode": "^1.18.0"

src/flags.ts

Lines changed: 43 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -107,26 +107,28 @@ export class LDFlagManager implements IFlagManager {
107107
let config = this.config(settings);
108108
if (settings.sdkKey) {
109109
this.updateProcessor = StreamProcessor(settings.sdkKey, config, Requestor(settings.sdkKey, config));
110-
this.start()
110+
this.start();
111111
} else {
112-
vscode.window.showWarningMessage('[LaunchDarkly] sdkKey is not set. LaunchDarkly language support is unavailable.');
112+
vscode.window.showWarningMessage(
113+
'[LaunchDarkly] sdkKey is not set. LaunchDarkly language support is unavailable.',
114+
);
113115
}
114-
115116
}
116117

117118
start() {
118-
this.updateProcessor && this.updateProcessor.start(function (err) {
119-
if (err) {
120-
console.log(err);
121-
let errMsg = `[LaunchDarkly] Unexpected error retrieving flags.${this.settings.baseUri != DEFAULT_BASE_URI ||
119+
this.updateProcessor &&
120+
this.updateProcessor.start(function(err) {
121+
if (err) {
122+
console.log(err);
123+
let errMsg = `[LaunchDarkly] Unexpected error retrieving flags.${this.settings.baseUri != DEFAULT_BASE_URI ||
122124
this.settings.streamUri != DEFAULT_STREAM_URI
123-
? ' Please make sure your configured base and stream URIs are correct'
124-
: ''}`;
125-
vscode.window.showErrorMessage(errMsg);
126-
} else {
127-
process.nextTick(function () { });
128-
}
129-
});
125+
? ' Please make sure your configured base and stream URIs are correct'
126+
: ''}`;
127+
vscode.window.showErrorMessage(errMsg);
128+
} else {
129+
process.nextTick(function() {});
130+
}
131+
});
130132
}
131133

132134
reload(newSettings: IConfiguration) {
@@ -135,14 +137,10 @@ export class LDFlagManager implements IFlagManager {
135137
this.settings.baseUri !== newSettings.baseUri ||
136138
this.settings.streamUri !== newSettings.streamUri
137139
) {
138-
let config = this.config(newSettings)
140+
let config = this.config(newSettings);
139141
this.updateProcessor && this.updateProcessor.stop();
140-
this.updateProcessor = StreamProcessor(
141-
newSettings.sdkKey,
142-
config,
143-
Requestor(newSettings.sdkKey, config),
144-
);
145-
this.start()
142+
this.updateProcessor = StreamProcessor(newSettings.sdkKey, config, Requestor(newSettings.sdkKey, config));
143+
this.start();
146144
}
147145
this.settings = newSettings;
148146
}
@@ -163,26 +161,21 @@ export class LDFlagManager implements IFlagManager {
163161
}
164162

165163
registerProviders(ctx: vscode.ExtensionContext, settings: IConfiguration) {
166-
if (settings.enableAutocomplete) {
167-
ctx.subscriptions.push(
168-
vscode.languages.registerCompletionItemProvider(
169-
LD_MODE,
170-
new this.LaunchDarklyCompletionItemProvider(),
171-
"'",
172-
'"',
173-
),
174-
);
175-
}
176-
if (settings.enableHover) {
177-
ctx.subscriptions.push(
178-
vscode.languages.registerHoverProvider(LD_MODE, new this.LaunchDarklyHoverProvider()),
179-
);
180-
}
164+
ctx.subscriptions.push(
165+
vscode.languages.registerCompletionItemProvider(LD_MODE, new this.LaunchDarklyCompletionItemProvider(), "'", '"'),
166+
);
167+
168+
ctx.subscriptions.push(vscode.languages.registerHoverProvider(LD_MODE, new this.LaunchDarklyHoverProvider()));
181169

182-
ctx.subscriptions.push(vscode.commands.registerTextEditorCommand('extension.openInLaunchDarkly', editor => {
183-
let flagKey = editor.document.getText(editor.document.getWordRangeAtPosition(editor.selection.anchor, FLAG_KEY_REGEX));
170+
ctx.subscriptions.push(
171+
vscode.commands.registerTextEditorCommand('extension.openInLaunchDarkly', editor => {
172+
let flagKey = editor.document.getText(
173+
editor.document.getWordRangeAtPosition(editor.selection.anchor, FLAG_KEY_REGEX),
174+
);
184175
if (!flagKey) {
185-
vscode.window.showErrorMessage('[LaunchDarkly] Error retrieving flag (current cursor position is not a feature flag).');
176+
vscode.window.showErrorMessage(
177+
'[LaunchDarkly] Error retrieving flag (current cursor position is not a feature flag).',
178+
);
186179
return;
187180
}
188181

@@ -204,22 +197,28 @@ export class LDFlagManager implements IFlagManager {
204197
opn(url.resolve(settings.baseUri, flag.environments[settings.env]._site.href));
205198
}
206199
});
207-
}));
200+
}),
201+
);
208202
}
209203

210204
get LaunchDarklyHoverProvider() {
211205
const settings = this.settings;
212206
const store = this.store;
213207
return class LaunchDarklyHoverProvider implements vscode.HoverProvider {
214208
public provideHover(document: vscode.TextDocument, position: vscode.Position): Thenable<vscode.Hover> {
215-
return new Promise(resolve => {
209+
return new Promise((resolve, reject) => {
216210
settings.enableHover
217211
? store.all(DATA_KIND, flags => {
218212
let candidate = document.getText(document.getWordRangeAtPosition(position, FLAG_KEY_REGEX));
219-
let flag = generateHoverString(flags[candidate] || flags[kebabCase(candidate)]);
220-
flag ? resolve(new vscode.Hover(flag)) : resolve();
213+
let flag = flags[candidate] || flags[kebabCase(candidate)];
214+
if (flag) {
215+
let hover = generateHoverString(flag);
216+
resolve(new vscode.Hover(hover));
217+
return;
218+
}
219+
reject();
221220
})
222-
: resolve();
221+
: reject();
223222
});
224223
}
225224
};

0 commit comments

Comments
 (0)