-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
如何编写具有代码提示的代码,如何配置 vscode 的目录别名 #21
Comments
老哥你配置jsconfig.json后, 路径提示都可以正常使用吗? 为什么我配置后, 只能提示出js文件, 其他.vue, .png 文件都提示不了, 而且.vue文件中也无法使用@别名提示 使用相对路径 import xx from '../../xx' 都可以提示出来 |
这个问题我现在解决不了,还在查文档,之前写过 vue 的项目也有遇到,也还没找到比较好的方法进行提示
https://code.visualstudio.com/docs/languages/javascript#_javascript-projects-jsconfigjson |
你可以查下 vscod 自带的这个插件 Path Intellisense,我略看了下 这个是比 jsconfig 高级的不针对语言类型的 path 智能感知定义 |
找到了,用 vscode 的 Path Autocomplete 插件,然后在工作区配置 {
"path-autocomplete.excludedItems": {
"**/*.js": { "when": "**/*.ts" }, // ignore js files if i'm inside a ts file
"**/*.map": { "when": "**" }, // always ignore *.map files
"**/{.git,node_modules}": { "when": "**" } // always ignore .git and node_modules folders
},
"path-autocomplete.pathMappings": {
"@": "${folder}/src"
},
} 就能把 |
@Runtu4378 感谢老铁
但设置了也没啥用, 估计是与其他插件有什么冲突 换上Path Autocomplete 就没问题了 |
@action-hong 这个插件也有些小问题 比如 mihai-vlc/path-autocomplete#24 还在跟踪中 |
简单试了下
这样 注释掉
将@换成任意字符都会有这种bug, 应该是实现里面没处理好吧, 明天有空看看它代码 |
这种配置在vue文件貌似自动导航也失效了 有什么解决办法么? |
使用 jsdoc 优化 javascript 的代码提示
jsdoc 是一种通过注释来为 javascript 代码增加代码提示的规范,大概示例如下:
在类
Dom
的构造函数上面的注释就是使用 jsdoc 规范书写的对这个函数的“注释”了,现在很多 IDE 都有内置了对 jsdoc 的支持,体现在能够格式化的显示这个类的内容,函数的参数列表、使用函数时进行自动补全等:参数列表
自动补全
通过上述操作就能够很直观的将我们写的代码都纳入代码提示里面了
配置 vscode 的目录别名
实现代码提示之后就可以愉快的撸码了,然而在实际使用中我们可能用到了能够提供文件目录别名的开发工具(如 webpack 的
resolve.alias
),通过别名引入的模块 IDE 一般会因为找不到实际的物理路径而无法初始化代码提示,这里以 vscode 为例,看看怎么为 IDE 配置目录路径别名首先,在项目文件夹(workspace)的根路径创建
jsconfig.json
,关于为什么要创建 jsconfig.jsonjsconfig.json
的内容:通过
compilerOptions.paths
的定义就能够告诉 IDE,在寻找文件的时候遇到某些关键字的时候如何识别别名定义了
jsconfig.json
之后在上面的代码中就能够正常获取到代码提示啦,如果发现没有生效,可以试下重启 vscodeThe text was updated successfully, but these errors were encountered: