Andr3as / Codiad-CompletePlus

Expandable auto complete for Codiad
14 stars 6 forks source link

Uncaught TypeError: Object #<Object> has no method 'computeSimpleMatchScore' #3

Closed newsocialifecom closed 11 years ago

newsocialifecom commented 11 years ago

Uncaught TypeError: Object # has no method 'computeSimpleMatchScore' init.js:39 Uncaught TypeError: Object # has no method 'suggest' init.js:78

My code is just:

var functions = [
    codiad.Complete.pluginParser("hello"),
    codiad.Complete.pluginParser("world")
];
codiad.Complete.pluginNormal(functions);
Andr3as commented 11 years ago

I have currently no idea. I can't reproduce the error. Can you give me more details?

newsocialifecom commented 11 years ago

The whole code is:

(function(global, $){
    var codiad = global.codiad,
    scripts = document.getElementsByTagName('script'),
    path = scripts[scripts.length-1].src.split('?')[0],
    curpath = path.split('/').slice(0, -1).join('/')+'/';
    $(function() { 
        codiad.autocomplete.init();
    });
    var functions = [];
    codiad.autocomplete = {
        init: function() {
            amplify.subscribe("Complete.Init", function(obj) {
                switch(obj.syntax) {
                    case "php":
                        functions = [
                            codiad.Complete.pluginParser("str_replace"),
                            codiad.Complete.pluginParser("preg_replace")
                        ];
                    break;
                    case "javascript":
                        functions = [
                            codiad.Complete.pluginParser("switch"),
                            codiad.Complete.pluginParser("alert")
                        ];
                    break;
                    case "css":
                        functions = [
                            codiad.Complete.pluginParser("border"),
                            codiad.Complete.pluginParser("color")
                        ];
                    break;
                    case "html":
                        functions = [
                            codiad.Complete.pluginParser("canvas"),
                            codiad.Complete.pluginParser("video")
                        ];
                    break;
                    default:
                        functions = [
                            codiad.Complete.pluginParser("")
                        ];
                    break;
                }
            });
            amplify.subscribe("Complete.Normal", function(obj){
                console.log(obj);
                codiad.Complete.pluginNormal(functions);
            });
        },
    };
})(this, jQuery);

Am I doing something wrong? When pressing ctrl+space i get those errors

Andr3as commented 11 years ago

Now I understand:

  • 1: Complete.Init doesn't deliver a suggestion object, you have to put your switch control into Complete.Normal
  • 2: You shouldn't overwrite codiad.autocomplete, this is the default autocomplete of Codiad, CompletePlus uses functions from this, if you overwrite this, you get an error, that it doesn't find computeSimpleMatchScore

This works for me.

newsocialifecom commented 11 years ago

Oh, ok, sorry

Andr3as commented 11 years ago

No Problem, you are welcome