• 0.notepad++


      本来准备 学习 Lime, Lime 是 由 go + python+界面工具 写的一个 sublime 的开源实现。但是这个配置比较复杂,所以我决定先研究一下它的兄弟产品notepad++。

      notepad++的实现已经有10年了,已经是一款非常成熟的软件了。我现在 需要做的就是慢慢 把它的代码啃一遍,把它的架构理出来。由于是自主学习,所有我有更多的精力去去学习它的方方面。由点及面发散开来,夯实基础。

          为了促进学习,同时又检验学习的目标,我给自己设定的一个目标是给 notepad++开发一个插件工具。这个插件类似 eclipse 的 format 功能,用户可以设置一些 sample formated code, 之后可以对代码format。

         具体来说,例如:可以给 *.java 文件设置 sample code,可以指定Tab缩进或者 4个空格缩进,可以指定设置{处于行末,或者另起一行格式,设置完成之后,然后对 *.java文件可以按照这个模式format。当然每种文件我都提供一个默认的format格式。我重点处理c++代码和 xml 的format。

         这段日子业余的重点就是notepad++了,对go语言,以及其他开源代码及工具的学习要相对减少了。希望自己能够集中精力完成。

         暂定学习计划如下:

         1.tinyXML代码理解,tinyXML2代码理解,并且重构

         2.理清Scintilla库的使用,完整理清notepad++界面框架

         3.理清notepad++消息循环。

         4.再造一遍轮子,自己用win32仿照简单写一个notepad++。

         5.了解一些细节,如:关键字高亮匹配,编码管理,开启多个窗口,内容暂存,

         6. 学习和参考插件的实现过程。

         7.完成插件的制作

  • 相关阅读:
    Linux下安装配置jdk
    Linux基础实验(二)
    Linux基础命令(一)
    Linux基础实验(一)
    QT 参考资料
    C++ const_cast用法(转)
    05 内嵌汇编的编程
    构造函数和析构函数可以调用虚函数吗(转)
    C++之迭代器(Iterator)篇 (转)
    链接脚本
  • 原文地址:https://www.cnblogs.com/harrysun/p/opensource.html
Copyright © 2020-2023  润新知