|
Lines 383-389
define("orion/editor/contentAssist", [ //$NON-NLS-0$
Link Here
|
| 383 |
|
421 |
|
| 384 |
if (this.pageMessage){ |
422 |
if (this.pageMessage){ |
| 385 |
allPromises = Deferred.when(allPromises, function(proposals){ |
423 |
allPromises = Deferred.when(allPromises, function(proposals){ |
| 386 |
self.pageMessage.close(); |
424 |
_self.pageMessage.close(); |
| 387 |
var foundProposal = false; |
425 |
var foundProposal = false; |
| 388 |
if (proposals && proposals.length > 0){ |
426 |
if (proposals && proposals.length > 0){ |
| 389 |
for (var i=0; i<proposals.length; i++) { |
427 |
for (var i=0; i<proposals.length; i++) { |
|
Lines 348-377
define("orion/editor/contentAssist", [ //$NON-NLS-0$
Link Here
|
| 348 |
var indentation = line.substring(0, index); |
348 |
var indentation = line.substring(0, index); |
| 349 |
var options = textView.getOptions("tabSize", "expandTab"); //$NON-NLS-1$ //$NON-NLS-0$ |
349 |
var options = textView.getOptions("tabSize", "expandTab"); //$NON-NLS-1$ //$NON-NLS-0$ |
| 350 |
var tab = options.expandTab ? new Array(options.tabSize + 1).join(" ") : "\t"; //$NON-NLS-1$ //$NON-NLS-0$ |
350 |
var tab = options.expandTab ? new Array(options.tabSize + 1).join(" ") : "\t"; //$NON-NLS-1$ //$NON-NLS-0$ |
| 351 |
var params = { |
351 |
var lineDelimiter = model.getLineDelimiter(); |
| 352 |
line: line, |
352 |
var text = model.getText(); |
| 353 |
offset: mapOffset, |
353 |
// model.getText(this.getPrefixStart(model, mapOffset), mapOffset) |
| 354 |
prefix: model.getText(this.getPrefixStart(model, mapOffset), mapOffset), |
354 |
var _self = this; |
| 355 |
selection: sel, |
|
|
| 356 |
delimiter: model.getLineDelimiter(), |
| 357 |
tab: tab, |
| 358 |
indentation: indentation |
| 359 |
}; |
| 360 |
var self = this; |
| 361 |
var promises = providerInfoArray.map(function(providerInfo) { |
355 |
var promises = providerInfoArray.map(function(providerInfo) { |
| 362 |
var provider = providerInfo.provider; |
356 |
var provider = providerInfo.provider; |
|
|
357 |
var computePrefixFunc = provider.computePrefix; |
| 358 |
if (computePrefixFunc) { |
| 359 |
var result = computePrefixFunc.apply(provider, [text, mapOffset]); |
| 360 |
return result.then(function(prefix) { |
| 361 |
var params = { |
| 362 |
line: line, |
| 363 |
offset: mapOffset, |
| 364 |
prefix: prefix, |
| 365 |
selection: sel, |
| 366 |
delimiter: lineDelimiter, |
| 367 |
tab: tab, |
| 368 |
indentation: indentation |
| 369 |
}; |
| 370 |
var proposals; |
| 371 |
try { |
| 372 |
var func, promise; |
| 373 |
if ((func = provider.computeContentAssist)) { |
| 374 |
var ecProvider = _self.editorContextProvider, editorContext = ecProvider.getEditorContext(); |
| 375 |
params = objects.mixin(params, ecProvider.getOptions()); |
| 376 |
promise = func.apply(provider, [editorContext, params]); |
| 377 |
} else if ((func = provider.getProposals || provider.computeProposals)) { |
| 378 |
// old API |
| 379 |
promise = func.apply(provider, [model.getText(), mapOffset, params]); |
| 380 |
} |
| 381 |
proposals = _self.progress ? _self.progress.progress(promise, "Generating content assist proposal") : promise; //$NON-NLS-0$ |
| 382 |
} catch (e) { |
| 383 |
return new Deferred().reject(e); |
| 384 |
} |
| 385 |
return Deferred.when(proposals); |
| 386 |
}, |
| 387 |
function(err) { |
| 388 |
return new Deferred().reject(err); |
| 389 |
}); |
| 390 |
} |
| 391 |
// no computePrefix function is defined for the provider. Use the default prefix |
| 392 |
var params = { |
| 393 |
line: line, |
| 394 |
offset: mapOffset, |
| 395 |
prefix: model.getText(_self.getPrefixStart(model, mapOffset), mapOffset), |
| 396 |
selection: sel, |
| 397 |
delimiter: lineDelimiter, |
| 398 |
tab: tab, |
| 399 |
indentation: indentation |
| 400 |
}; |
| 363 |
var proposals; |
401 |
var proposals; |
| 364 |
try { |
402 |
try { |
| 365 |
var func, promise; |
403 |
var func, promise; |
| 366 |
if ((func = provider.computeContentAssist)) { |
404 |
if ((func = provider.computeContentAssist)) { |
| 367 |
var ecProvider = self.editorContextProvider, editorContext = ecProvider.getEditorContext(); |
405 |
var ecProvider = _self.editorContextProvider, editorContext = ecProvider.getEditorContext(); |
| 368 |
params = objects.mixin(params, ecProvider.getOptions()); |
406 |
params = objects.mixin(params, ecProvider.getOptions()); |
| 369 |
promise = func.apply(provider, [editorContext, params]); |
407 |
promise = func.apply(provider, [editorContext, params]); |
| 370 |
} else if ((func = provider.getProposals || provider.computeProposals)) { |
408 |
} else if ((func = provider.getProposals || provider.computeProposals)) { |
| 371 |
// old API |
409 |
// old API |
| 372 |
promise = func.apply(provider, [model.getText(), mapOffset, params]); |
410 |
promise = func.apply(provider, [model.getText(), mapOffset, params]); |
| 373 |
} |
411 |
} |
| 374 |
proposals = self.progress ? self.progress.progress(promise, "Generating content assist proposal") : promise; //$NON-NLS-0$ |
412 |
proposals = _self.progress ? _self.progress.progress(promise, "Generating content assist proposal") : promise; //$NON-NLS-0$ |
| 375 |
} catch (e) { |
413 |
} catch (e) { |
| 376 |
return new Deferred().reject(e); |
414 |
return new Deferred().reject(e); |
| 377 |
} |
415 |
} |
|
Lines 394-406
define("orion/editor/contentAssist", [ //$NON-NLS-0$
Link Here
|
| 394 |
} |
432 |
} |
| 395 |
} |
433 |
} |
| 396 |
if (!foundProposal){ |
434 |
if (!foundProposal){ |
| 397 |
self.pageMessage.setErrorMessage(messages["noProposals"]); |
435 |
_self.pageMessage.setErrorMessage(messages["noProposals"]); |
| 398 |
} |
436 |
} |
| 399 |
return proposals; |
437 |
return proposals; |
| 400 |
}); |
438 |
}); |
| 401 |
self.pageMessage.showWhile(allPromises, messages["computingProposals"]); |
439 |
this.pageMessage.showWhile(allPromises, messages["computingProposals"]); |
| 402 |
} |
440 |
} |
| 403 |
|
|
|
| 404 |
return allPromises; |
441 |
return allPromises; |
| 405 |
}, |
442 |
}, |
| 406 |
|
443 |
|
|
Lines 441-466
define("orion/editor/contentAssist", [ //$NON-NLS-0$
Link Here
|
| 441 |
return false; // unknown format |
478 |
return false; // unknown format |
| 442 |
} |
479 |
} |
| 443 |
|
480 |
|
| 444 |
return (0 === proposalString.indexOf(prefixText + this._filterText)); |
481 |
return 0 === proposalString.indexOf(prefixText + this._filterText); |
| 445 |
|
482 |
|
| 446 |
} else if (proposal.name || proposal.proposal) { |
483 |
} else if (proposal.name || proposal.proposal) { |
| 447 |
var activated = false; |
484 |
var activated = false; |
| 448 |
// try matching name |
485 |
// try matching name |
| 449 |
if (proposal.name) { |
486 |
if (proposal.name) { |
| 450 |
activated = (0 === proposal.name.indexOf(prefixText + this._filterText)); |
487 |
activated = 0 === proposal.name.indexOf(prefixText + this._filterText); |
| 451 |
} |
488 |
} |
| 452 |
|
489 |
|
| 453 |
// try matching proposal text |
490 |
// try matching proposal text |
| 454 |
if (!activated && proposal.proposal) { |
491 |
if (!activated && proposal.proposal) { |
| 455 |
activated = (0 === proposal.proposal.indexOf(this._filterText)); |
492 |
activated = 0 === proposal.proposal.indexOf(this._filterText); |
| 456 |
} |
493 |
} |
| 457 |
|
494 |
|
| 458 |
return activated; |
495 |
return activated; |
| 459 |
} else if (typeof proposal === "string") { //$NON-NLS-0$ |
496 |
} else if (typeof proposal === "string") { //$NON-NLS-0$ |
| 460 |
return 0 === proposal.indexOf(this._filterText); |
497 |
return 0 === proposal.indexOf(this._filterText); |
| 461 |
} else { |
|
|
| 462 |
return false; |
| 463 |
} |
498 |
} |
|
|
499 |
return false; |
| 464 |
}, this); |
500 |
}, this); |
| 465 |
|
501 |
|
| 466 |
if (includedProposals.length > 0) { |
502 |
if (includedProposals.length > 0) { |