$(function () {
var editor = ace.edit("editor"); editor.setTheme("ace/theme/sqlserver"); editor.session.setMode("ace/mode/csharp"); editor.getSession().setUseWrapMode(true); editor.setShowPrintMargin(false);
editor.commands.on("afterExec", function (e) { if (e.command.name == "insertstring" && /^[\w.]$/.test(e.args)) {
if (e.args == '.') { editor.execCommand("startAutocomplete"); } } });
var serviceId = 1;
$.ajax('/api/Recommendation/Check?serviceId=1').done(function (data) { });
var auto = ace.require("ace/autocomplete").Autocomplete; var langTools = ace.require("ace/ext/language_tools");
editor.setOptions({ enableBasicAutocompletion: true, enableLiveAutoComplete: true, enableSnippets: true }); var codeCompleter = { getCompletions: function (editor, session, pos, prefix, callback) {
var data = { content: editor.getValue(), serviceId: serviceId, row: pos.row, col: pos.column }; $.post('http://localhost:45271/api/Recommendation/Recommend', data, function (response) { var completionData = $.map(response, function (item) { return { name: item.name, value: item.name, score: item.score, docHTML: item.comment }
});
callback(null, completionData);
});
} }
editor.completers = [codeCompleter];
SetUpDom(editor, serviceId);
if (!editor.completer) { editor.completer = new Autocomplete(); // here says Autocomplete is not defined } editor.completer.$init(); var popup = editor.completer.popup; popup.on("changeSelection", function () { console.log(popup.getData(popup.getRow())); });
});var auto = ace.require("ace/autocomplete").Autocomplete;
editor.completer.editor = editor