自己动手写编辑器——Lumia Sidebar

阅读: 评论:0

自己动手写编辑器——Lumia Sidebar

自己动手写编辑器——Lumia Sidebar

似乎从一开始我们就是在模仿别人的editor,不知道这是不是必要的,但是在有时候觉得没有必要再造一个轮子,或者说我们应该考虑我们想要的功能到系统里,而不是和别人一样?

最后效果

Mock atom编辑器到这里算是要告一段落了,献上截图一张。

Makefile

或许写脚本会比较好,但是还是没有Makefile给人的感觉爽

代码还是在github上,可能会有点大,中间还经历zip压缩了.git的过程

zip -r app.nw * -x ".git/*"

zip不包含某路径的写说就是上面那个

nw = /Applications/node-webkit/node-webkit.app/Contents/MacOS/node-webkitdefault:zip -r app.nw * -x ".git/*"@echo "done"$(nw) app.nw

这里似乎没有考虑跨平台,不过我想这不是个问题,问题都是要被node-webkit解决,又是严重依赖某一个库。(转载保留:自己动手写编辑器——Lumia Sidebar)

打包node_modules?

之前使用python的时候经历过类似的事,所以无论怎么说还是带上这个好,而且大小又不是很大。

 "dependencies": {"underscore": "~1.6.0","jquery": "~2.1.0","coffee-script": "~1.7.1","backbone": "~1.1.2","string": "~1.8.0","jade":"~1.3.1"}

主要的库还是上面这些。 

Lumia Sidebar

构造这样一个sidebar对于HTML来说还是比较简单,而且这里用的还是atom的样式。。 虽然可以写,但是显得有些没有必要。 唯一还要加的就是``#file``加个css

#files {font-size: 11px;}

接着

  • 遍历文件
  • 获取文件名
  • 打开文件

前两个事情就用node-webkit的示例过去了,我们还要做的就是打开文件。

 var folder = new folder_view.Folder($('#files'));folder.open(process.cwd());('navigate', function(dir, mime) {if (pe == 'folder') {folder.open(mime.path);} else {onChosenFileToOpen(mime.path);}});

也就是来判断是否是目录,当我们点击的是文件的时候打开文件。

onChosenFileToOpen();就是之前用于打开文件到编辑器的函数。

还要做的?

  • 增加包管理
  • 增加扩展
  • 增加终端功能
  • 修复bug?

最后呢?成为另外一个sublime text?另外一个atom?

欠缺的部分

  • 没有利用好nodejs的优势
  • 没有利用好webkit
  • 离系统底层远

缺少的核心:特色

一个编辑器应该有其特色才会有开发者用它,如果这个编辑器和那个编辑器用上去没有什么区别的话,那么他完全可以用一个更好的编辑器,有着更好的社区支持。而不是为了符合大众的需求,符合小众需求,就一部分人的需求而言,会发展得更好,也会有更好的竞争力。

在早期Vim相较于一个Emacs显得轻量级,但是Emacs比Vim强大得多,所以两个人群就分开了。

换在今天来说Sublime是一个轻量级的editor,相对于intellij idea而言,当然我们还会有其他选择比较textmate、atom,因为sublime是收费的。

对于有重构需求的人来说Intellij idea会是一个更好的选择,这是在一般的编辑器中不会有的,只是对于写其他语言的人来说,可能QT会是更好的答案,他们需要跨平台,需要其他更好的支持,不同的人对于IDE会有不同的需要,而IDE也是有针对性的,相比于没有针对性的editor来说

本文发布于:2024-02-05 07:38:43,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170727570664559.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:编辑器   自己动手   Sidebar   Lumia
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23