Код недоступен в Visual Studio Code с функциональностью Javascript и Go To Definition (F12) - PullRequest
0 голосов
/ 27 мая 2019

Я хотел бы написать модуль javascript и методы доступа с функциональностью «Перейти к определению» кода Visual Studio (F12 или ctrl + щелчок левой кнопкой мыши)

Он хорошо работает с простыми модулями, но каждый раз, когда я хочу расширить модуль с переменной в аргументе, код Visual Studio не может достичь функции внутри моего модуля.

Я написал небольшой пример, чтобы воспроизвести его. Просто скопируйте и вставьте его в новый файл в код Visual Studio.

Для информации я использую версию 1.34 кода Visual Studio.

//////////////////////////////////////////////////////////////////////////////
// Example 1:
// - Function fntBad() from libFntBad.fntBad(); is not reachable with ctrl + left mouse click

////////////////////////////////////////
////// Library 1
var libFntBad = (function(moduleExtended) {
    var self = moduleExtended;

    self.fntBad = function() {
        console.log("libFntBad - fntBad");
        return false;
    };

    return self;
})(libFntBad || {});
////////////////////////////////////////


////////////////////////////////////////
////// Library 2
var libFntGood = (function() {
    var self = {};

    self.fntGood = function() {
        console.log("libFntGood - fntGood");
        return true;
    };

    return self;
})();
////////////////////////////////////////


////////////////////////////////////////
////// Program that use libraries
var libCallFnt = (function() {
    var self = {};

    self.callFnt1 = function(s) {
        console.log(s);
        libFntBad.fntBad(); // Not found 
    };

    self.callFnt2 = function(s) {
        console.log(s);
        libFntGood.fntGood();   // Found in Library 2
    };

    return self;
})();

libCallFnt.callFnt1("Fnt1");        // Reachable
libCallFnt.callFnt2("Fnt2");        // Reachable

libFntBad.fntBad();                 // Not reachable
libFntGood.fntGood();               // Reachable



//////////////////////////////////////////////////////////////////////////////
// Example 2:
// - Function extension from ModuleTwo.extension is not reachable with ctrl + left mouse click

var Module = (function () {
    var _privateMethod = function () {
        // private
        console.log("_privateMethod");
    };

    var oneMethod = function () {
        // public
        console.log("oneMethod");
        _privateMethod();
    };

    var anotherMethod = function () {
        // public
        console.log("anotherMethod");
    };

    return {
        oneMethod: oneMethod,
        anotherMethod: anotherMethod
    };
})();

var ModuleTwo = (function (mod) {
    mod.extension = function () {
        // another method!
        console.log("Module.extension");
    };

    return mod;
})(Module || {});

Module.oneMethod();
ModuleTwo.extension();              // Not reachable

Я ожидаю достичь фрагмента кода, помеченного как «Недоступный».

Что не так с моим кодом? Есть ли другой способ заставить его работать в коде Visual Studio?

Редактор NetBeans способен правильно перемещаться между методами, поэтому я полагаю, что мой кусок кода неплохой.

1 Ответ

0 голосов
/ 27 мая 2019

Как насчет использования оператора debbuger?Тогда вы будете вмешиваться в вашу функцию в любое время, когда вы пройдете через нее

Больше информации здесь: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Instructions/debugger

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...