zoukankan      html  css  js  c++  java
  • javascript 的智能提示intellisence用法

    转载自:http://blog.csdn.net/applewangpai/article/details/23517087
     
    引用指令reference
    Visual Studio 2012支持的Javascript Intellisense功能都是微软预先在vs开发工具中定义好的javascript文档,通过以下路径的.js文件来提供智能感知的功能:
    C:Program Files (x86)Microsoft Visual Studio 11.0JavaScriptReferencesdomWeb.js
    关键字reference:( 指令,引用其他 JavaScript 文件)
    只需要在当前的a.js文件中,加入///<reference path="b.js">就可以在当前的a.js文件里面提供b.js定义的函数的智能感知
    在vs2012中默认在/Scripts/ 目录下新增加了一个_references.js 文件,里面列出了所有的当前解决方案,所需要引用的Js智能感知的智能感知上下文。如图所示:
     
    一处引入整个解决方案的js文件就有了所有被引入到_references.js文件里的文件的智能感知。是不是很方便呢?
    小技巧:_references.js文件不添加到解决方案也是可以生效的,只要在/Scripts/文件夹下就可以,你可以不把它部署到正事环境。
    隐式引用Implicit Reference
    设置这个开发工具的JS智能感知,在[工具]/[选项]里面,具体设置如下图所示:
     
    VS2012支持重载的Visual Studio文件(VSDOC)
    你可以通过<siguature>标签提供多个Function的函数注解,针对不同的函数提供不同的注释,如下:
    [javascript] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. /// <signature>  
    2. ///   <summary>Perform an asynchronous HTTP (Ajax) request.</summary>  
    3. ///   <param name="url" type="String">A string containing the URL to which the request is sent.</param>  
    4. ///   <param name="settings" type="Object">A set of key/value pairs that configure the Ajax request. All settings are optional. A default can be set for any option with $.ajaxSetup(). See jQuery.ajax( settings ) below for a complete list of all settings.</param>  
    5. ///   <returns type="jqXHR" />  
    6. /// </signature>  
    7. /// <signature>  
    8. ///   <summary>Perform an asynchronous HTTP (Ajax) request.</summary>  
    9. ///   <param name="settings" type="Object">A set of key/value pairs that configure the Ajax request. All settings are optional. A default can be set for any option with $.ajaxSetup().</param>  
    10. ///   <returns type="jqXHR" />  
    11. /// </signature>  

    参考资料:http://msdn.microsoft.com/zh-cn/library/bb385682.aspx

    对于VS强大的功能,我们还可以扩展Javascript Intellisense的智能感知的功能。有个内置的语言服务intellisense 对象

    我们可以给自己的js类库添加注解:

    1.命名规则 demo.js,demo.intellisense.js

    2.上面2个文件必须在同一个目录下,否则不能提供数据注解的智能感知,demo.intellisense.js可以不必包含在在解决方案中

    3.智能感知可能不会立马生效,要过一会儿或者重新打开解决方案才行

    扩展功能:

    微软设计的东西一般都遵循一个原则:惯例优先原则(也就是自动发现机制automatic discovery mechanism)

    EntityFramework有这样的机制,当然Javascript的智能感知也不会例外,这也正是微软的强大之处,总的来说微软的设计和想法还是很不错的,既是:你(开发人员)要按照我的套路出牌,我(IDE)会给你很多便利。呵呵,代价就是,要学很多规矩(反正就是记不住,只能是熟能生巧了)

    引用指令reference
    Visual Studio 2012支持的Javascript Intellisense功能都是微软预先在vs开发工具中定义好的javascript文档,通过以下路径的.js文件来提供智能感知的功能:
    C:Program Files (x86)Microsoft Visual Studio 11.0JavaScriptReferencesdomWeb.js
    关键字reference:( 指令,引用其他 JavaScript 文件)
    只需要在当前的a.js文件中,加入///<reference path="b.js">就可以在当前的a.js文件里面提供b.js定义的函数的智能感知
    在vs2012中默认在/Scripts/ 目录下新增加了一个_references.js 文件,里面列出了所有的当前解决方案,所需要引用的Js智能感知的智能感知上下文。如图所示:
     
    一处引入整个解决方案的js文件就有了所有被引入到_references.js文件里的文件的智能感知。是不是很方便呢?
    小技巧:_references.js文件不添加到解决方案也是可以生效的,只要在/Scripts/文件夹下就可以,你可以不把它部署到正事环境。
    隐式引用Implicit Reference
    设置这个开发工具的JS智能感知,在[工具]/[选项]里面,具体设置如下图所示:
     
    VS2012支持重载的Visual Studio文件(VSDOC)
    你可以通过<siguature>标签提供多个Function的函数注解,针对不同的函数提供不同的注释,如下:
    [javascript] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. /// <signature>  
    2. ///   <summary>Perform an asynchronous HTTP (Ajax) request.</summary>  
    3. ///   <param name="url" type="String">A string containing the URL to which the request is sent.</param>  
    4. ///   <param name="settings" type="Object">A set of key/value pairs that configure the Ajax request. All settings are optional. A default can be set for any option with $.ajaxSetup(). See jQuery.ajax( settings ) below for a complete list of all settings.</param>  
    5. ///   <returns type="jqXHR" />  
    6. /// </signature>  
    7. /// <signature>  
    8. ///   <summary>Perform an asynchronous HTTP (Ajax) request.</summary>  
    9. ///   <param name="settings" type="Object">A set of key/value pairs that configure the Ajax request. All settings are optional. A default can be set for any option with $.ajaxSetup().</param>  
    10. ///   <returns type="jqXHR" />  
    11. /// </signature>  

    参考资料:http://msdn.microsoft.com/zh-cn/library/bb385682.aspx

    对于VS强大的功能,我们还可以扩展Javascript Intellisense的智能感知的功能。有个内置的语言服务intellisense 对象

    我们可以给自己的js类库添加注解:

    1.命名规则 demo.js,demo.intellisense.js

    2.上面2个文件必须在同一个目录下,否则不能提供数据注解的智能感知,demo.intellisense.js可以不必包含在在解决方案中

    3.智能感知可能不会立马生效,要过一会儿或者重新打开解决方案才行

    扩展功能:

    微软设计的东西一般都遵循一个原则:惯例优先原则(也就是自动发现机制automatic discovery mechanism)

    EntityFramework有这样的机制,当然Javascript的智能感知也不会例外,这也正是微软的强大之处,总的来说微软的设计和想法还是很不错的,既是:你(开发人员)要按照我的套路出牌,我(IDE)会给你很多便利。呵呵,代价就是,要学很多规矩(反正就是记不住,只能是熟能生巧了)

    简单总结:

    1. 只要我们在script文件夹里面增加了js文件,就会自动在_reference.js里面增加相应的引用

    2. 我们在js的函数下面加入如下<signature>标签,就可以实现智能提示的功能,或者建立jsname.intellisence.js的文件名单独声明

        $.fn.Hotkeys = function (options, param) {
            /// <signature>
            ///   <summary>Hotkeys constructor function</summary>
            ///   <param name="options" type="string">string name indicate Hotkeys plugin function name</param>
            ///   <param name="param" type="parameter"> </param>
            ///   <returns type="jQuery" />
            /// </signature>

    3. <singnature>标签的使用

    <signature> (JavaScript)
     

    一组函数或方法的相关元素可以为重载函数提供文档。

    语法
    <signature externalid="id" externalFile="filename"
        helpKeyword="keyword" locid="descriptionID">
    </signature> 
    
    参数
    externalid

    可选。 如果format 特性关于 <loc> (JavaScript) element is vsdoc, 此属性指定用于定位的带有签名相关的XML代码的成员编号。 不同于locid 特性,此属性指定应该加载在具有该ID的成员的所有元素。 所有关联的参考信息的 XML 代码与在签名中指定的元素也会合并。 这会使你指定额外的元素,例如<capability>, 在源文件中没有指定它们的附属文件。 externalid此特性是可选的。

    externalFile

    可选。 指定文件名查找 externalid。 如果没有externalid,则忽略此特性。 此特性是可选的。 默认值为当前文件的名称,但是具有 .xml 文件扩展名而不是 .js。 默认情况下,本地化的托管资源查找规则用于查找该文件。

    helpKeyword

    可选。 F1帮助关键字。

    locid

    可选。 有关字段本地化信息的标识符。 该标识符是成员编号或它对应于OpenAjax元数据定义在消息绑定的 name 属性值。 这个标示符依赖在 <loc> (JavaScript)标签中的指定形式。

    备注

    为.js文件中每个超载函数描述使用<signature>元素,或为每个外部成员编号使用<signature>元素。

    在任何声明之前,<signature> 元素必须在函数体中。 当使用 <summary> (JavaScript)<param> (JavaScript),或 <returns> (JavaScript) 元素和<signature> 元素, 在<signature>块中放置其他元素。

    下面的代码示例演示如何使用 <signature> 元素。

    // Use of <signature> with externalid. 
    // Requires use of the <loc> tag to identify the external functions. 
    function illuminate(light) { 
        /// <signature externalid='M:Windows.Devices.Light.Illuminate()' /> 
        /// <signature externalid='M:Windows.Devices.Light.Illuminate(System.Int32)'> 
        ///   <param name='light' type='Number' /> 
        /// </signature> 
    } 
     
    // Use of <signature> for overloads implemented in JavaScript. 
    function add(a, b) { 
        /// <signature> 
        /// <summary>function summary 1</summary> 
        /// <param name="a" type="Number">The first number</param> 
        /// <param name="b" type="Number">The second number</param> 
        /// <returns type="Number" /> 
        /// </signature> 
        /// <signature> 
        /// <summary>function summary 2 – differ by number of params</summary> 
        /// <param name="a" type="Number">Only 1 parameter</param> 
        /// <returns type="Number" /> 
        /// </signature> 
        /// <signature> 
        /// <summary>function summary 3 – differ by parameter type</summary> 
        /// <param name="a" type="Number">Number parameter</param> 
        /// <param name="b" type="String">String parameter</param> 
        /// <returns type="Number" /> 
        /// </signature> 
        /// <signature> 
        /// <summary>function summary 4 – differ by return type</summary> 
        /// <param name="a" type="Number">The first number</param> 
        /// <param name="b" type="Number">The second number</param> 
        /// <returns type="String" /> 
        /// </signature> 
     
        return a + b; 
    }
  • 相关阅读:
    Content delivery network
    散列算法的基础原理 确保资料传递无误
    科学计算 NumPy 与C语言对比 N-dimensional array ndarray 元素元素操作 计算正太分布分位数 ndarray中的所有元素的类型都是相同的,而Python列表中的元素类型是任意的,所以ndarray在存储元素时内存可以连续,而python原生list就只能通过寻址方式找到下一个元素
    t
    百度 url 当在baidu搜索结果展示页,去点击标头时
    指定文件夹 指定文件后缀名 删除整个文件夹 git 冲突解决 create a new repository on the command line push an existing repository from the command line rebase
    修改MojoWeixin 只保留用户name 取消群昵称
    AnyEvent::HTTP 介绍
    AnyEvent::HTTP 介绍
    异步和同步http请求超时机制
  • 原文地址:https://www.cnblogs.com/ZengYunChun/p/5690859.html
Copyright © 2011-2022 走看看