Code Snippets Manager是VS2005专门用来管理代码块智能感知的工具。

然而,使用它并没有预想中的那么顺利,特别是在做过多次目录添加和删除之后,可能出现添加在列表中的目录无法在智能感知列表中显示出来的情况;甚至会出现列表当中明明没有这个目录,却也添加不进去的情况,它总是认为这个目录已经在列表中存在。为了解决这个问题,我对它的存储方式作了一些研究,并跟踪了相关的注册表和文件变化,下面是我的研究结果。

Code Snippets Manager主要在三个地方保存信息:

1. HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\Open Find\Microsoft Visual Studio\Settings\Code Snippets Directory\File Name MRU\Value

这是一个REG_MULTI_SZ 类型的值,可以用来存储多个字符串,可以看作是一个字符串数组,这里用来存储路径,用回车作为分隔符,在我的机器上,它的值是这样的。

C:\Documents and Settings\tonyqus\My Documents\MSDN\Visual C# 2005 Code Snippets\filesystem
C:\Documents and Settings\tonyqus\My Documents\MSDN\Visual C# 2005 Code Snippets\datatypes
C:\Documents and Settings\tonyqus\My Documents\MSDN\Visual C# 2005 Code Snippets\database
C:\Documents and Settings\tonyqus\My Documents\code1
C:\Documents and Settings\tonyqus\My Documents\MSDN\Visual C# 2005 Code Snippets\
C:\Program Files\Microsoft Visual Studio 8\VC#\Snippets\1033\Refactoring
C:\Documents and Settings\tonyqus\My Documents\MSDN\Visual C# 2005 Code Snippets\application

2.  HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\Languages\CodeExpansions\Visual C#\Path

这是一个REG_SZ 类型的值,可以用来存储字符串,这里用来存储路径,用分号分割,在我的机器上,它的值如下:

%InstallRoot%\VC#\Snippets\%LCID%\Visual C#\;%MyDocs%\Code Snippets\Visual C#\My Code Snippets\;%InstallRoot%\VC#\Snippets\%LCID%\OfficeDevelopment\;%InstallRoot%\VC#\Snippets\%LCID%\Refactoring\;C:\Documents and Settings\tonyqus\My Documents\code1\;C:\Program Files\Microsoft Visual Studio 8\VC#\Snippets\1033\Workflow\;C:\Documents and Settings\tonyqus\My Documents\MSDN\Visual C# 2005 Code Snippets\datatypes\

3.  C:\Documents and Settings\<Your Account Name>\Local Settings\Application Data\Microsoft\VisualStudio\8.0\1033\ExpansionsXML.xml

这是一个xml文件,结构比较复杂,我们可以看到在上面的两个设置中,仅存储目录,而在这个文件中既保存目录又保存目录中的.snippet文件的完整路径,这可能是为了提供.snippet文件的import功能而特地设计的。这里就不做展开了,大家有兴趣的话,可以研究一下它的结构。

来说说可能出现的问题:
问题 1

在HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\Languages\CodeExpansions\Visual C#\Path 中存储着两个完全相同的路径,如
C:\Documents and Settings\tonyqus\My Documents\MSDN\Visual C# 2005 Code Snippets\database
C:\Documents and Settings\tonyqus\My Documents\MSDN\Visual C# 2005 Code Snippets\database\
我们可以看到这两个路径唯一的差别就是一个'\',但似乎Code Snippets Manager不会对这样的情况进行处理,它会认为这是两个完全不同的路径,所以如果出现这种情况,建议删掉其中一个。

问题 2
在注册表的两个值中目录明明存在,但却无法在智能感知时列出该目录,这可能是由于ExpansionsXML.xml没有改目录的相关信息所致,建议删除或者重命名ExpansionsXML.xml,然后重新启动VS2005,并打开Code Snippets Manager,你会发现一个Code Snippets Manager会根据注册表中的路径新建一个新的ExpansionsXML.xml文件。

问题 3
智能感知可以列出的目录,在Code Snippets Manager的列表中根本没有,但每次试图添加目录时,会报目录已存在的错误。遇到这种情况,恐怕要对这三个存储位置都要做处理,首先要确保注册表中确实把这个目录删除了,还有就是重建ExpansionXML.xml文件。

关于VS2005中的Code Snippets Manager的问题及解决相关推荐

  1. Xcode可重用代码块code snippets

    一. 关于code snippets 通过Xcode的重用代码块(code snippets)可快速输入预设好的常用代码模板,如通过键入 hystrong 系统会直接替代为 @property(non ...

  2. Code Snippets Library

    在做项目开发的过程中,实际上是比较麻烦的,因为相同内容,我们需要书写多次,无形中给我们的开发增加了工作量.那么有什么办法可以避免这样重复的工作量吗?这就是这里要说的Code Snippets Libr ...

  3. snippets vscode 配置_创建自己的Code Snippets在VSCode中

    创建自己的Code Snippets在VSCode中 创建Vuejs文件模板代码片段 1. Go to Code → Preferences → User Snippets 2.弹出提示框,选择一个v ...

  4. 【编程技巧】Code snippets(代码片段)在Visual Studio中的使用(附简单的Snippet管理工具)

    引言 Code snippet (代码片段)在VS中指的是基于IDE支持的利用快捷方式快速输入一小段,或者称之为一整块代码的功能,在日常编程,特别是在工作中写内容相似的业务代码时,利用Snippet功 ...

  5. 添加 code snippets (转)

    找回ECM Starter kit的代码段(Snippet) 2006-12-31 15:43 安装了ECM Starter kit之后,试做了一些SharePoint工作流,在编辑Feature.x ...

  6. [Xcode]自己常用的Code Snippets、Xcode插件、文件目录

    目录 目录 Code Snippets Xcode代码块 常用的Xcode插件 Xcode相关的文件目录 Code Snippets Xcode代码块 Code Snippets Library是Xc ...

  7. Sublime Text3—Code Snippets(自定义代码片段)

    摘要 程序员总是会不断的重复写一些简单的代码片段,为了提高编码效率,我们可以把经常用到的代码保存起来再调用. 平时用sublime安装各种插件,使用Tab键快速补全,便是snippets(可译为代码片 ...

  8. wordpress js 运行短代码_7个WordPress常用代码段(Code Snippets)

    运用代码段(Code Snippets)插件管理代码,可以不用额外安装更多插件,来解决WordPress建站过程中的一些常见功能需求,譬如安装Google analytics跟踪代码.下文中记录了我在 ...

  9. Code Snippets 使用

    一个偶然的机会,了解了到了xcode一个非常不错的.可以提高代码编写效率的工具,Code Snippets.关于如何使用Code Snippets来设置自己的代码片段,请参考下面这篇文章: http: ...

最新文章

  1. Python爬虫(十三)_JSON模块与JsonPath
  2. 多层神经网络Java代码800行
  3. 科学计算:Python VS. MATLAB(3)----线性代数基础
  4. Mysql: SQL JOIN 子句详解
  5. jetty9更改post请求长度
  6. 高效java工具类总结
  7. Java使用JNDI调用配置在服务器(Weblogic、Tomcat)的数据源配置
  8. python-rrdtool python-pyrrd
  9. Flutter实战1 --- 写一个天气查询的APP
  10. linux shell 中的idd,shell脚本入门教程.pdf
  11. Redis数据结构-sds
  12. 人教版,北师大版,北京版和苏教版的四年级数学知识点对比(附视频)
  13. 手写C语言之函数概念-函数分类-实参与形参-传值调用与传址调用介绍(11)
  14. Linux查看系统基本信息
  15. win10局域网中设置共享文件夹
  16. (洛谷刷题)P1830 轰炸机III
  17. ElementUI图片上传 回显
  18. 文件上传与下载----上传
  19. 每日一题 —— Java篇
  20. 计算机启动到桌面就蓝屏怎么办,电脑一开机进入桌面就蓝屏,怎么处理

热门文章

  1. 【杂谈】为了让大家学好深度学习模型设计和优化,有三AI都做了什么
  2. 【每周CV论文推荐】 初学深度学习人脸关键点检测必读文章
  3. 360的困兽之斗——重新探讨奇虎商业模式
  4. 山东谋定富硒产业示范园-农业大健康·万祥军:国研功能农业
  5. 世界种业并购史 国际农民丰收节贸易会起底农化巨头构架
  6. 拼多多谋定500个供应链品牌 农民丰收节交易会“拼农货”
  7. Go 命令行参数,JSON 序列化与反序列化
  8. 2019.7.16 网络层协议与应用
  9. Flask Web开发入门
  10. 2015 UESTC Winter Training #10【Northeastern Europe 2009】