使用IDE宏遍历代码中的非ASCII字符

简介:
    在产品开发的时候,虽然大家知道需要做I18N的支持。不过在开发代码的过程中,由于需要首先关注逻辑实现,所以文件中也难免会hardcode中文文字什么的。在代码的UI描述和业务逻辑都很稳定后,最后还需要清理一下代码中是否还有中文资源,因为那些类似错误提示一类的描述,在程序未出错时Tester几乎是无法发现的。

    不过这个检查如果靠眼睛看,也是非常之郁闷的事情,那么除了编写额外的工具分析文档,还有没有其它简单又自动的方法帮我们解决问题呢?由于VS.NET 2003给我提供了非常强大的宏功能(可以在宏中使用.NET Framework类库!),所以对于这种小case使用宏来解决就太合适不过了。下面这个宏的功能就是在当前文档中找出非ASCII字符,并把出现的行号和内容输出到Output工具窗口中。代码如下:
Imports EnvDTE
Imports System.Windows.Forms
Imports System.Text
Imports System.Globalization
Imports System.Text.RegularExpressions
Imports System.Diagnostics
Imports MyMacros.Util

Public  Module Birdshome
     Sub FindChineseWords()
         Dim doc  As Document = DTE.ActiveDocument
         Dim docText  As TextDocument = doc.Object
         Dim lineCount = docText.EndPoint.Line
         Dim ep  As EditPoint = docText.StartPoint.CreateEditPoint()
         Dim strLine  As  String
         Dim i  As  Integer
         Dim regex  As Regex =  New Regex("[^\u0000-\u00ff]+")
         Dim strbResult  As StringBuilder =  New StringBuilder
         For i = 1  To lineCount - 1
            strLine = ep.GetLines(i, i + 1)
             Dim m  As MatchCollection = regex.Matches(strLine)
             If m.Count > 0  Then
                strbResult.Append(i.ToString())
                strbResult.Append(". ")
                 Dim j  As  Integer
                 For j = 0  To m.Count - 1
                    strbResult.Append(m(j).Value)
                    strbResult.Append(", ")
                 Next
                strbResult.Length = strbResult.Length - 2
                strbResult.Append(";")
                strbResult.Append(System.Environment.NewLine)
             End  If
         Next
         ' MessageBox.Show(strbResult.ToString)
         Dim win  As Window = DTE.Windows.Item(Constants.vsWindowKindCommandWindow)
         Dim target  As  Object
         If (DTE.ActiveWindow  Is win)  Then
            target = win.Object
         Else
            target = GetOutputWindowPane("Chinese Words")
            target.clear()
         End  If
        target.OutputString(strbResult.ToString())
     End Sub
End Module

    方法GetOutputWindowPane在如下公用模块中:
Imports EnvDTE
Imports System.Diagnostics

Public  Module Util
     Function GetOutputWindowPane( ByVal Name  As  StringOptional  ByVal show  As  Boolean =  TrueAs OutputWindowPane
         Dim win  As Window = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput)
         If show  Then win.Visible =  True
         Dim ow  As OutputWindow = win.Object
         Dim owpane  As OutputWindowPane
         Try
            owpane = ow.OutputWindowPanes.Item(Name)
         Catch e  As System.Exception
            owpane = ow.OutputWindowPanes.Add(Name)
         End  Try
        owpane.Activate()
         Return owpane
     End Function
End Module
// 多写写VB,觉得它的语法还是挺自然的:)

    以中文google首页的html代码(Formatted by IDE)为示例,运行本脚本代码的结果如下图:
    ChineseWords.png

本文转自博客园鸟食轩的博客,原文链接:http://www.cnblogs.com/birdshome/,如需转载请自行联系原博主。

目录
相关文章
|
3月前
|
IDE 网络安全 开发工具
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
本文介绍了如何使用VS Code通过Remote-SSH插件连接远程服务器进行代码开发,并与PyCharm进行了对比。作者认为VS Code在连接和配置多个服务器时更为简单,推荐使用VS Code。文章详细说明了VS Code的安装、远程插件安装、SSH配置文件编写、服务器连接以及如何在连接后切换文件夹。此外,还提供了使用密钥进行免密登录的方法和解决权限问题的步骤。
1335 0
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
|
3月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
576 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
7月前
|
IDE Java 开发工具
阿里云云效产品使用问题之在代码域中,可以通过什么方法将代码合并的内容在IDE中查看
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
8月前
|
IDE 开发工具 C语言
QT案例IDE编写 -- 代码编写
QT案例IDE编写 -- 代码编写
86 0
|
8月前
|
IDE 开发工具
IDE实用小技巧之快速的将某一段代码抽离为一个方法~
IDE实用小技巧之快速的将某一段代码抽离为一个方法~
|
JSON IDE 数据可视化
版本升级 | 兼容VSCode及全系IDE,代码风险一键查询
插件更新啦~可以在vscode里使用OpenSCA了,IDE插件也升级了一波
118 0
|
IDE 开发工具 C语言
QT案例IDE编写 -- 代码编写
QT案例IDE编写 -- 代码编写
133 0
QT案例IDE编写 -- 代码编写
|
IDE Java 网络安全
本地 IDE 开发代码方式|学习笔记
快速学习本地 IDE 开发代码方式
本地 IDE 开发代码方式|学习笔记
|
IDE Java 开发工具
IDE设置代码格式和代码模板
IDE设置代码格式和代码模板
154 0
IDE设置代码格式和代码模板
|
IDE 物联网 开发工具
安装IDE并下载AliOS Things代码 引导流程
安装IDE并下载AliOS Things代码 引导流程
安装IDE并下载AliOS Things代码 引导流程