mirror of
https://github.com/kiteco/vscode-plugin.git
synced 2024-10-27 09:25:13 +03:00
Merge pull request #184 from kiteco/cn-change-status-bar
Change status bar based on new specs
This commit is contained in:
commit
92cce8af9b
88
src/kite.js
88
src/kite.js
@ -148,6 +148,7 @@ const Kite = {
|
||||
}));
|
||||
|
||||
this.disposables.push(vscode.window.onDidChangeActiveTextEditor(e => {
|
||||
this.setStatusBarLabel();
|
||||
if (e) {
|
||||
if (/Code[\/\\]User[\/\\]settings.json$/.test(e.document.fileName)){
|
||||
metrics.featureRequested('settings');
|
||||
@ -166,7 +167,6 @@ const Kite = {
|
||||
this.disposables.push(vscode.window.onDidChangeTextEditorSelection(e => {
|
||||
const evt = this.eventsByEditor.get(e.textEditor.document.fileName);
|
||||
evt.selectionChanged();
|
||||
this.setStatusBarLabel();
|
||||
}));
|
||||
|
||||
this.disposables.push(vscode.workspace.onDidChangeTextDocument(e => {
|
||||
@ -205,7 +205,7 @@ const Kite = {
|
||||
// }));
|
||||
|
||||
this.statusBarItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left);
|
||||
this.statusBarItem.text = '$(primitive-dot) Kite';
|
||||
this.statusBarItem.text = 'Kite';
|
||||
this.statusBarItem.color = '#abcdef';
|
||||
this.statusBarItem.command = 'kite.status';
|
||||
this.statusBarItem.show();
|
||||
@ -534,109 +534,81 @@ const Kite = {
|
||||
const state = this.lastState;
|
||||
const status = this.lastStatus;
|
||||
|
||||
const statusLabelPromise = this.getDocsAvailabilityLabel(state, status);
|
||||
|
||||
statusLabelPromise.then(label => {
|
||||
this.statusBarItem.text = compact(['$(primitive-dot) Kite', label]).join(': ')
|
||||
const supported = this.isGrammarSupported(vscode.window.activeTextEditor);
|
||||
|
||||
if(supported) {
|
||||
this.statusBarItem.show();
|
||||
switch (state) {
|
||||
case KiteAPI.STATES.UNSUPPORTED:
|
||||
this.statusBarItem.tooltip = 'Kite engine is currently not supported on your platform';
|
||||
this.statusBarItem.color = ERROR_COLOR;
|
||||
this.statusBarItem.text = 'Kite: not supported';
|
||||
break;
|
||||
case KiteAPI.STATES.UNINSTALLED:
|
||||
this.statusBarItem.text = 'Kite: not installed';
|
||||
this.statusBarItem.tooltip = 'Kite engine is not installed';
|
||||
this.statusBarItem.color = ERROR_COLOR;
|
||||
break;
|
||||
case KiteAPI.STATES.INSTALLED:
|
||||
this.statusBarItem.text = 'Kite: not running';
|
||||
this.statusBarItem.tooltip = 'Kite engine is not running';
|
||||
this.statusBarItem.color = ERROR_COLOR;
|
||||
break;
|
||||
case KiteAPI.STATES.RUNNING:
|
||||
this.statusBarItem.text = 'Kite: not reachable';
|
||||
this.statusBarItem.tooltip = 'Kite engine is not reachable';
|
||||
this.statusBarItem.color = ERROR_COLOR;
|
||||
break;
|
||||
case KiteAPI.STATES.REACHABLE:
|
||||
this.statusBarItem.color = WARNING_COLOR;
|
||||
case KiteAPI.STATES.REACHABLE:
|
||||
this.statusBarItem.text = 'Kite: not logged in'
|
||||
this.statusBarItem.color = ERROR_COLOR;
|
||||
this.statusBarItem.tooltip = 'Kite engine is not authenticated';
|
||||
break;
|
||||
default:
|
||||
if(status) {
|
||||
switch(status.status) {
|
||||
case 'not whitelisted':
|
||||
this.statusBarItem.color = WARNING_COLOR;
|
||||
this.statusBarItem.tooltip = 'Current path is not whitelisted';
|
||||
this.statusBarItem.text = '';
|
||||
this.statusBarItem.color = undefined;
|
||||
this.statusBarItem.tooltip = '';
|
||||
this.statusBarItem.hide();
|
||||
break;
|
||||
case 'indexing':
|
||||
this.statusBarItem.color = undefined;
|
||||
this.statusBarItem.text = 'Kite: indexing'
|
||||
this.statusBarItem.tooltip = 'Kite engine is indexing your code';
|
||||
break;
|
||||
case 'syncing':
|
||||
this.statusBarItem.text = 'Kite: syncing'
|
||||
this.statusBarItem.color = undefined;
|
||||
this.statusBarItem.tooltip = 'Kite engine is syncing your code';
|
||||
break;
|
||||
case 'blacklisted':
|
||||
case 'ignored':
|
||||
this.statusBarItem.text = '';
|
||||
this.statusBarItem.color = undefined;
|
||||
this.statusBarItem.tooltip = 'Current path is ignored by Kite';
|
||||
this.statusBarItem.tooltip = '';
|
||||
this.statusBarItem.hide();
|
||||
break;
|
||||
case 'ready':
|
||||
this.statusBarItem.text = 'Kite';
|
||||
this.statusBarItem.color = undefined;
|
||||
this.statusBarItem.tooltip = 'Kite is ready';
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
this.statusBarItem.text = '';
|
||||
this.statusBarItem.color = undefined;
|
||||
this.statusBarItem.tooltip = '';
|
||||
this.statusBarItem.hide();
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
getDocsAvailabilityLabel(state, status) {
|
||||
let statusLabel = 'ready';
|
||||
let hoverPromise;
|
||||
switch(state) {
|
||||
case KiteAPI.STATES.UNINSTALLED:
|
||||
statusLabel = 'not installed';
|
||||
break;
|
||||
case KiteAPI.STATES.INSTALLED:
|
||||
statusLabel = 'not running';
|
||||
break;
|
||||
case KiteAPI.STATES.REACHABLE:
|
||||
statusLabel = 'not logged in';
|
||||
break;
|
||||
default:
|
||||
if(status) {
|
||||
switch(status.status) {
|
||||
case 'indexing':
|
||||
statusLabel = 'indexing';
|
||||
break;
|
||||
case 'syncing':
|
||||
statusLabel = 'syncing';
|
||||
break;
|
||||
case 'not whitelisted':
|
||||
case 'blacklisted':
|
||||
case 'ignored':
|
||||
break;
|
||||
default:
|
||||
const editor = vscode.window.activeTextEditor;
|
||||
if (editor && this.isEditorWhitelisted(editor)) {
|
||||
const path = hoverPath(editor.document, editor.selection.active);
|
||||
hoverPromise = KiteAPI.request({path})
|
||||
.then(resp => {
|
||||
if(resp.statusCode === 200) {
|
||||
return 'Docs available at cursor';
|
||||
} else {
|
||||
return 'ready';
|
||||
}
|
||||
}).catch(() => 'ready');
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.statusBarItem.text = '';
|
||||
this.statusBarItem.color = undefined;
|
||||
this.statusBarItem.tooltip = '';
|
||||
this.statusBarItem.hide();
|
||||
}
|
||||
if(hoverPromise) { return hoverPromise; }
|
||||
return Promise.resolve(statusLabel);
|
||||
},
|
||||
|
||||
setStatus(state = this.lastState, document) {
|
||||
|
Loading…
Reference in New Issue
Block a user