VS2010: javascript intellisense: указание свойств для объектов 'options', передаваемых в методы - PullRequest
1 голос
/ 04 мая 2010

Так как в VS2010 фактически работает javascript intellisense, я подумал, что мог бы добавить некоторые из тех сценариев, которые я включил почти во все.

Проблема в том, что в некоторых сложных функциях я использую опционные объекты вместо передачи множества различных параметров, например:

function myFunc(options){
    var myVar1 = options.myVar1,
        myVar2 = options.myVar2,
        myVar3 = options.myVar3;
    ...
}

Проблема, с которой я сталкиваюсь, заключается в том, что, похоже, нет способа указать, какие свойства options должны иметь. Я пробовал это:

function myFunc(options){
    ///<summary>my func does stuff...</summary>
    ///<param name="options">
    ///myVar1 : the first var
    ///myVar2 : the second var
    ///myVar3 : the third var
    ///</param>

    var myVar1 = options.myVar1,
        myVar2 = options.myVar2,
        myVar3 = options.myVar3;
    ...
}

но разрывы строк удаляются, и все комментарии свойств выполняются вместе, что затрудняет их чтение.

Я пробовал теги <para>, но безрезультатно.

Если у кого-нибудь есть идеи, как мне этого добиться, пожалуйста, дайте мне знать.

-Brandon

Ответы [ 3 ]

2 голосов
/ 29 июля 2011

Вы можете принудительно разрывать строки, используя этот синтаксис:

/// <summary>
///   My method description  
/// </summary>
/// <param name="options" type="Object">
///     A JSON Object
///     &#10;1 - prop1: name
///     &#10;2 - prop2: id
///     &#10;3 - onSuccess: function to exec
/// </param>
1 голос
/ 30 июля 2011

С расширениями Microsoft JScript Editor: http://visualstudiogallery.msdn.microsoft.com/872d27ee-38c7-4a97-98dc-0d8a431cc2ed

<para> теги теперь поддерживаются

0 голосов
/ 04 мая 2010

Файл vsdoc для jQuery использует этот подход. Вам просто нужно попытаться отформатировать его, чтобы он был несколько читабельным, даже когда все в одной строке. Например, вот выдержка из файла vsdoc jQuery 1.4.1:

jQuery.fn[ "blur" ] = function( fn ) {
/// <summary>
///     1: blur() - Triggers the blur event of each matched element.
///     2: blur(fn) - Binds a function to the blur event of each matched element.
/// </summary>
/// <param name="fn" type="Function">The function to execute.</param>
/// <returns type="jQuery" />

return fn ? this.bind( "blur", fn ) : this.trigger( "blur" );

};

Полученные всплывающие подсказки помещают все это в одну строку, но они все еще довольно читабельны благодаря структуре каждого из элементов (особенно потому, что в конце каждого из них стоит «.»).

...