Muduo源代码阅读环境搭建

工具

Windows环境

  • VSCode
  • SourceInsight

Linux环境

  • Vim

问题

  1. VSCode中添加多行注释的快捷键配置
  2. SourceInsight 中如何让.cc文件支持颜色
  3. SourceInsight中头文件与源文件切换配置
  4. SourceInsight中UTF-8中文显示为乱码问题
  5. Vim配置

解决方法

1. VSCode添加快捷键配置方法

2. .cc文件支持颜色解决方法:

Options -> Documents Options…
Muduo源代码阅读环境搭建_第1张图片

Muduo源代码阅读环境搭建_第2张图片

3. TabSiPlus分页插件 (CSDN中搜索既可以查到)

TabSiPlus安装后效果

4. SourceInsight中头文件与源文件切换配置方法:SourceInsight中头文件与源文件切换配置方法:

Muduo源代码阅读环境搭建_第3张图片
Muduo源代码阅读环境搭建_第4张图片

  • 在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")
	
}
  • 然后打开muduo工程,就可以实现头文件与源文件切换。(快捷键是ctrl + .)
  • 打开Options -> Key Assignments。在Command栏选中“Macro:
    switch_cpp_hpp”;点击Assign New Key按钮设置快捷键(Ctrl+·),点击OK,就设定好了。

5.SourceInsight中UTF-8中文显示为乱码问题

解压msimg32.dll sihook.dll siutf8.dll 到Source Insight 3.X安装目录
https://blog.csdn.net/nyist327/article/details/39935379 (内含免费的dll下载链接)

6. Vim配置

参考:https://blog.csdn.net/wyy_sunshine/article/details/40144739

你可能感兴趣的:(工具)