sourceInsight 3.5 有注册机的
新建工程
安装后, project -> new project 选择一个空目录作为项目的目录,确定后在选择源代码目录,
建议源代码目录不要与项目目录在一起,因为sourceInsight会在project目录里面生成一些文件(一些数据文件),
而且sourceInsight也会自动执行 Options->Save Configuration 这些文件默认保存在我的文档->source Insight
里面。如果卸载软件的话,这里面是会自动保存的,你下次再安装会用这些配置的。
1.让.cc文件支持颜色
导入C++项目发现 不支持 .cc文件 岂有此理cc姐都不支持,果断配置搞定
Options->Document Options -> Document Type File filter:里面添加 *.cc, Close即可
还有 Screen Fonts可以调节字体大小(建议不要乱调字体,自己调过很悲催)
这样子就解决了怎么支持 .cc文件的问题了。
2.TabSiPlus分页插件
发现打开多个文件后没有“分页的那个任务条”就是没有 Tab那个东西,果断上网查了查,有插件可以搞定,
下载了一个 TabSiPlus_0_99b2_1510.rar ,解压后允许里面的TabSiHost.exe即可安全方便。
3.头文件和源文件之间的跳转问题
在.h文件中对着一个函数名字 按Ctrl 键鼠标指针会变成手形,点击他应该跳到源代码才对,但是我们发现
他现在不能跳到源代码,原因在哪里呢,原因在于作者对源代码的组织方式。 .h中是把他放到一个名称空间以内。
就是用 namespace muduo{} 把类代码括起来,是不是说这个源代码查看器就不支持名称空间呢。不是的,那是以为
作者源代码这边名称空间的使用方式呢,这便是using namespace muduo;我们把他注释掉,如果这么写的话
namespace muduo{} 把源代码放里面。这样子就可以啦,在.h里面Ctrl点一下就可以定位到.cc文件,
原来原因在于作者源代码的组织方式问题。那这样子的话不是很麻烦吗。或者把光标定位到.h 的函数名中,
下边的窗口出现这个接口的代码,在那里双击也可以进入源代码(就可以很容易的跳过来)。
但是由于作者源代码的组织方式是using namespace muduo;是这样子的,我们总不能把他的代码都改了吧。
那怎么办呢,最好在设置一个东西能够在头文件和源文件之间来回切换,那也可以省事儿一些,
即使我们跳不过去,按某个快捷键也能够跳转到源文件的话也可以的。
先关闭这个工程,Project->Open Project 里面有个(sourceInsight默认就有的一个工程)的Base工程,
这个工程呢,有个Utils.em文件,打开,在这个文件的末尾呢,加入代码
/*
cpp和hpp文件互换(当前只支持同一目录下的文件互换)
*/
macro switch_cpp_hpp()
{
hwnd = GetCurrentWnd()
hCurOpenBuf = GetCurrentBuf()
if (hCurOpenBuf == 0)
stop
curOpenFileName = GetBufName(hCurOpenBuf)
curOpenFileNameLen = strlen(curOpenFileName)
// 文件类型临时缓冲区
strFileExt = NewBuf("strFileExtBuf")
ClearBuf(strFileExt)
// 头文件类型
index_hpp_begin = 0 // 头文件开始索引
AppendBufLine(strFileExt, ".h")
AppendBufLine(strFileExt, ".hpp")
index_hpp_end = GetBufLineCount(strFileExt) // 头文件结束索引
// 源文件类型
index_cpp_begin = index_hpp_end // 源文件开始索引
AppendBufLine(strFileExt, ".c")
AppendBufLine(strFileExt, ".cpp")
AppendBufLine(strFileExt, ".cc")
AppendBufLine(strFileExt, ".cx")
AppendBufLine(strFileExt, ".cxx")
index_cpp_end = GetBufLineCount(strFileExt) // 源文件结束索引
isCppFile = 0 // 0:未知 1:头文件 2:源文件,默认未知扩展名
curOpenFileExt = "" // 当前打开文件的扩展名
index = index_hpp_begin
// 遍历头文件,判断是否当前打开文件是头文件类型
while(index < index_cpp_end)
{
curExt = GetBufLine(strFileExt, index)
curExtLen = strlen(curExt)
curOpenFileExt = strmid(curOpenFileName, curOpenFileNameLen-curExtLen, curOpenFileNameLen) // 当前打开文件的扩展名
// 调试
// AppendBufLine(debugBuf, curExt)
// AppendBufLine(debugBuf, curOpenFileExt)
if(curOpenFileExt == curExt) // 匹配成功
{
if (index < index_hpp_end)
isCppFile = 1 // 当前打开文件是头文件
else
isCppFile = 2 // 源文件
break
}
index = index + 1
}// while(index < index_cpp_end)
// 调试
// AppendBufLine(debugBuf, isCppFile)
index_replace_begin = index_hpp_begin
index_replace_end = index_hpp_end
if (isCppFile == 1) // 当前打开文件是头文件
{
index_replace_begin = index_cpp_begin
index_replace_end = index_cpp_end
}
else if(isCppFile == 2) // 当前打开文件是源文件
{
index_replace_begin = index_hpp_begin
index_replace_end = index_hpp_end
// 调试
// AppendBufLine(debugBuf, "cpp")
}
else // 未知类型
{
//CloseBuf(strFileExt) // 关闭缓冲区
//stop
index_replace_begin = 9999
index_replace_end = index_replace_begin // 下面循环不会执行
}
index = index_replace_begin
while(index < index_replace_end)
{
destExt = GetBufLine(strFileExt, index)
destFileName = strmid(curOpenFileName, 0, curOpenFileNameLen-strlen(curOpenFileExt)) // 不包括扩展名,绝对路径
// 尝试当前目标扩展名是否能够打开
destFilePath = cat(destFileName, destExt)// 文件名(包括扩展名)
hCurOpenBuf = OpenBuf(destFilePath)
if(hCurOpenBuf != 0)
{
SetCurrentBuf(hCurOpenBuf)
break
}
// 尝试进行目录替换,看能否打开文件(如何设计:支持多个目录)
// ...(赞不支持)
index = index + 1
}
CloseBuf(strFileExt) // 关闭缓冲区
// 调试
// AppendBufLine(debugBuf, "finished")
}
打开Option -> Key Assignments。在Command栏选中“Macro: switch_cpp_hpp”;
点击Assign New Key按钮设置快捷键(Ctrl+·),点击OK,就设定好,这时候就可以按 Ctrl+. 来在.cc文件和.h文件之间来回切换了。
开源的C++项目都有自己的命名空间的
4.汉语注释的字体之间的间距问题
5.配置文件的问题
SourceInsight的配置文件保存在我的文档,SourceInsight里面,卸载软件的时候最好把这个文件也删除掉,还有每一个工程也可以有自己的专属的配置文件。
6.为什么机器关机重启后分页没有了,还得重启打开exe的问题