自己动手改写komodo sourcetree插件 对C/C++的支持

阅读更多

其实很简单了,

    找到sourcetree.js 的 正则判断那一块加上

case 'C++':
                   function_tag =/^\s*[\w<>\(\)_\s"\*]+\s+([\w:\*&>\[\]=<]+)\(.*[^;]+$|^\s*(main)\(|\s*(\w+::[\w~]+)\(.*[^;]+$/;
                    class_support = false;
                    break; 

对每一个匹配行做
line = parts[current_line];
// process line
re = /\r/g;
line = line.replace(re, "");
re = /\/\*.*\*\//g;
line = line.replace(re,"");
re = /\/\/.*$/g;
line = line.replace(re,"");
re = /\s+$/g;
line = line.replace(re,"");
if(line.match(/\s*if\s*\(/) || line.match(/\s*for\s*\(/) || line.match(/\s*while\s*\(/)|| line.match(/\s*switch\s*\(/))
    var found_function = false;
else
    var found_function = function_searcher.exec(line);
var found_class = false;



 处理。

 对C/C++的扩展

并且在之后的正则匹配的地方加上

switch(current_language){
                            case "SQL":
                                obj_name = found_function[1]+" "+found_function[2]+" "+found_function[3]+" ";
                                break;
                            case "C++":
                                obj_name = found_function[1];
                                if(found_function[2])
                                {
                                    obj_name = found_function[2];
                                }else if(found_function[3])
                                {
                                    obj_name = found_function[3];
                                }
                                break;

                           default:
                                obj_name = found_function[1];
                        }


就ok了!!o(∩_∩)o...哈哈。

又可以用komodo写c++了。

你可能感兴趣的:(C,C++,C#,SQL)