标签: javascript-intellisense

如何在Visual Studio Intellisense中记录JavaScript配置对象

我一直在使用Visual Studio的JavaScript Intellisense功能一段时间,并且大部分都对它为标准API提供建议的程度感到满意,但我发现我无法让Visual Studio了解配置对象(即具有多个可选项的单个对象)或者必需的属性作为函数的参数).

官员JSDoc语法表明,如果一个参数,预计将有属性,您创建一个单独的@param线为每使用点表示法:

/**
 * @param {Object} config
 * @param {String} config.name
 * @param {Number} config.gold
 */
function do_it(config) { ... }
Run Code Online (Sandbox Code Playgroud)

但是,Visual Studio不承认这一点-它呈现config,config.name以及config.gold作为三个独立的顶级参数.

do_it()注册三个独立的参数

更糟糕的是,方法体内的自动完成功能也无法识别参数,更不用说它们的类型了:

尝试访问config.name的方法会产生黄色三角形,没有帮助.

在Visual Studio中看起来更接近的唯一解决方案是使用适当的文档(@constructor@property标记)编写永不调用的构造函数,这使我编写了大量死代码并且还违反了JavaScript的无类思维(这是我首先使用配置对象的原因).它甚至不让我写配置对象!

不仅如此,我也知道Visual Studio不需要它.举例来说,当我写了一个调用这个库函数,它能够收集到的参数对象需要的属性叫id,sourcetarget,当我创建了一个对象字面函数的参数建议那些名字-并没有一个单一的线文件.据推测,它来自于使用它们的简单事实:

Visual Studio自动提取这三个属性,根本没有文档注释

当然,如果这些属性不在对象上并且类型不正确,那么该方法会抛出异常,但仍然如此. 编辑:我最近能够使用对象文字参数在我自己的代码中复制效果 - 我用一个明确定义的对象调用了一个函数,当我在代码中的其他位置再次调用该函数时,它给了我智能感知建议.但我仍然没有函数体内的类型信息或语义访问.

Visual Studio显然理解配置对象的概念,并且正在做一些提供建议属性的逻辑.那算法是什么?如何在不破坏我的代码的情况下利用它?

javascript documentation javascript-intellisense jsdoc visual-studio-2015

13
推荐指数
1
解决办法
1436
查看次数

如何从json模式创建jsdoc类型

我为node.js项目提供了大量的json模式.我可以以任何方式使用它们:

  • 从".js"代码文件中将它们作为jsdoc类型访问,以提高webstorm智能感知的准确性
  • 或者自动创建jsdoc类型定义

jsonschema javascript-intellisense jsdoc webstorm jsdoc3

10
推荐指数
1
解决办法
627
查看次数

在VSCode中记录用于智能感知的Javascript代码

我正试图在Visual Studio Code中为我的javascript代码获取正确的Intellisense建议.特别是,我有以下AngluarJS服务:

/// <reference path="definitelytyped/angularjs/angular.d.ts" />
var module = angular.module( 'testApp', [] );
module.factory( 'backend', function ( $http ) {
    return {
        "getComments": function HoverHereToSeeType( post ) {
            /// <summary>Retrieves comments from the backend</summary>
            /// <param name="post" type="string">Post to retrieve comments for</param>
            return $http.get( "/rest/" + post );
        }
    };
} )
Run Code Online (Sandbox Code Playgroud)

我以为我应该使用XML文档注释,但它们似乎不起作用 - 当我将鼠标悬停在HoverHereToSeeType参数上时显示为"any"(而返回值是使用angular.d.ts正确推断的).所以问题的第一部分是:我如何在函数中注释类型?

实际尝试使用该服务时,问题的第二部分出现了:

module.controller( 'MyCtrl', function( backend ) {
    backend.getComments( "test" );
} );
Run Code Online (Sandbox Code Playgroud)

我知道IntelliSense不理解Angular的依赖注入,所以我需要注释backend的类型.但是我该如何引用这种类型呢?

简而言之:如何backend.getComments()在第二个片段中为调用获取正确的Intellisense ,即参数必须是字符串的信息,返回的值将是ng.IHttpPromise?

javascript javascript-intellisense angularjs visual-studio-code

9
推荐指数
1
解决办法
2710
查看次数

运行项目后为什么会丢失JavaScript intellisense?

出于某种原因,在Visual Studio 2012中调试ASP.NET Web应用程序后,我失去了JavaScript intellisense.

你可以看到,当我开始时,我有完整的智能感知.在下图中我得到了knockoutjs intellisense:

intellisense工作

但是,一旦我调试应用程序,我就失去了智能感知.例如,如果我按F5调试[更新:顺便说一句,这也发生在CNTL-F5]当我返回到我的代码时,我失去了智能感知:

intellisense不起作用

我发现让intellisense再次工作的唯一方法是使用工具 - > 导入和导出设置 - > 重置所有设置.问题是这只会继续工作,直到我再次运行应用程序.

有谁知道如何永久解决这个问题?谢谢!

更新:看起来这与ReSharper有关(我使用的是7.0.1).如果我在ReSharper的General Options下将它从ReSharper更改为Visual Studio intellisense,问题就会消失.我想这会稍微改变我的问题 - 当使用ReSharper时,如何使用intellisense为knockoutjs这样的框架工作?

resharper javascript-intellisense visual-studio-2012

8
推荐指数
1
解决办法
639
查看次数

无论如何在Visual Studio intellisense中定义一个未定义的对象?

假设我在AngularJS中有一个控制器:

myApp.controller('SearchController',
    function ($scope, UserService) {

        // for intellisense, UserService is undefined here
        var user = UserService.getUsers().then(function(data){
                             // yada yada
                   }, function(err){
                             // yada yada
                   });
    });
Run Code Online (Sandbox Code Playgroud)

但是,在我的intellisense文件中,我可以动态注入UserService来获取它的函数:

intellisense.addEventListener('statementcompletion', function (event) {
    // tried doing this, but doesn't work!
    // event.target   = {};

    var injector   = angular.injector(['ng', 'myApp']);
    var dependency = injector.get(event.targetName);

    event.items    = [];
    for (method in dependency) {
        intellisense.logMessage(method);
        event.items.push({ name: method, kind: 'field', value: function () { } });
    }

});
Run Code Online (Sandbox Code Playgroud)

现在,如果我有一个全局变量(或函数变量)定义为UserService = {}我的控制器函数并在其中输入UserService. …

javascript intellisense javascript-intellisense angularjs visual-studio-2012

8
推荐指数
1
解决办法
3377
查看次数

VSCode IntelliSense 不会自动完成 JavaScript DOM 事件和方法

我使用的是 Visual Studio Code 1.17.1 版。

*.js文件中,当我输入时,我document.querySelector("#elementId").style.没有关于样式(如边距、显示等)的 IntelliSense 提示。之后甚至没有onclick事件提示document.querySelector("#elementId").

在此处输入图片说明

在此处输入图片说明

我不使用任何 npm 包。它只是一个简单的 html\css\js 项目。

如何打开正确的 IntelliSense 提示?谢谢。

intellisense javascript-intellisense visual-studio-code

8
推荐指数
1
解决办法
5243
查看次数

Visual Studio 2019 + ReSharper 智能感知无法识别 JavaScript 中的空合并运算符 (??)

将 Visual Studio 2019 与 ReSharper(均为最新版本)一起使用,我无法获得智能感知来停止抱怨 ECMAScript 2020 功能,例如空合并运算符 (??)。

该代码有效,但编辑器认为这是一个错误,这很烦人。这是我看到的:

截屏

我尝试在 VS 中将项目的 TypeScript Build ECMAScript 版本设置为 ECMAScript 2020:ReSharper ECMAScript 版本设置为“实验性”。有没有人设法让这个工作?

resharper null-coalescing-operator javascript-intellisense visual-studio-2019

8
推荐指数
0
解决办法
152
查看次数

VS代码自动完成基于文件中的单词

我刚开始使用VS Code,我现在对它非常满意!

我来自Notepad ++,我没有找到与我正在做的事情相同"级别"的任何IDE.直到现在!我非常喜欢VS Code正在做的事情以及所有现代集成技术如何帮助我.

但是我想念NPP做的一件事就是文件中单词的自动完成基础.那么我可以在VS Code中做同样的事情吗?

谢谢.

intellisense javascript-intellisense visual-studio-code

7
推荐指数
2
解决办法
3047
查看次数

在新的 VsCode 版本中未获得 JavaScript 自动完成功能

我以前曾经获得自动完成和智能提示,但现在我没有获得自动完成,也没有获得错误的波浪形红线。我该怎么办?请帮忙。我已经花了 2 个小时在 google 上搜索但找不到答案。

在此输入图像描述

其他人也得到了像上面这样的正确建议。我不明白。下面是我的 VsCode 编辑器。

在此输入图像描述

javascript settings autocomplete javascript-intellisense visual-studio-code

7
推荐指数
1
解决办法
1万
查看次数

Visual Studio 2012 JavaScript智能感知参考组恢复为隐式(Windows)

我已根据_references.js(http://blog.craigtp.co.uk/post/Javascript-jQuery-Intellisense-in-Visual-Studio-2012.aspx)中设置的引用设置我的IDE以显示JS Intellisense .在这样做时,您必须将JavaScript IntelliSense Reference Group设置为"Implicit(Web)",我已经完成了.一段时间以来,它的工作非常精彩.

然而,在一些看似随机的时间(可能是几小时或几天,但通常不超过一天左右)后,我的JS IntelliSense停止工作.当我返回参考组设置时,我发现参考组已恢复为"隐式(Windows)".

有没有其他人有这个问题?可能是什么造成的,或者这是VS2012中的一个错误(这是发布的版本)?

谢谢!

intellisense javascript-intellisense visual-studio-2012

6
推荐指数
1
解决办法
1344
查看次数