似乎从一开始我们就是在模仿别人的editor,不知道这是不是必要的,但是在有时候觉得没有必要再造一个轮子,或者说我们应该考虑我们想要的功能到系统里,而不是和别人一样?
Mock atom编辑器到这里算是要告一段落了,献上截图一张。
或许写脚本会比较好,但是还是没有Makefile
给人的感觉爽
代码还是在github上,可能会有点大,中间还经历zip
压缩了.git
的过程
zip -r app.nw * -x ".git/*"
zip不包含某路径的写说就是上面那个
nw = /Applications/node-webkit/node-webkit.app/Contents/MacOS/node-webkit
default:
zip -r app.nw * -x ".git/*"
@echo "done"
$(nw) app.nw
这里似乎没有考虑跨平台,不过我想这不是个问题,问题都是要被node-webkit解决,又是严重依赖某一个库。
之前使用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"
}
主要的库还是上面这些。
构造这样一个sidebar对于HTML来说还是比较简单,而且这里用的还是atom的样式。。
<div class="tree-view-resizer tool-panel panel-left" style="width: 140px;">
<div class="tree-view-scroller">
<ul id="files"></ul>
</div>
</div>
虽然可以写,但是显得有些没有必要。
唯一还要加的就是#file
加个css
#files {
font-size: 11px;
}
接着
前两个事情就用node-webkit的示例过去了,我们还要做的就是打开文件。
var folder = new folder_view.Folder($('#files'));
folder.open(process.cwd());
folder.on('navigate', function(dir, mime) {
if (mime.type == 'folder') {
folder.open(mime.path);
} else {
onChosenFileToOpen(mime.path);
}
});
也就是来判断是否是目录,当我们点击的是文件的时候打开文件。
onChosenFileToOpen();
就是之前用于打开文件到编辑器的函数。
最后呢?成为另外一个sublime text?另外一个atom?
一个编辑器应该有其特色才会有开发者用它,如果这个编辑器和那个编辑器用上去没有什么区别的话,那么他完全可以用一个更好的编辑器,有着更好的社区支持。而不是为了符合大众的需求,符合小众需求,就一部分人的需求而言,会发展得更好,也会有更好的竞争力。
在早期Vim相较于一个Emacs显得轻量级,但是Emacs比Vim强大得多,所以两个人群就分开了。
换在今天来说Sublime是一个轻量级的editor,相对于intellij idea而言,当然我们还会有其他选择比较textmate、atom,因为sublime是收费的。
对于有重构需求的人来说Intellij idea会是一个更好的选择,这是在一般的编辑器中不会有的,只是对于写其他语言的人来说,可能QT会是更好的答案,他们需要跨平台,需要其他更好的支持,不同的人对于IDE会有不同的需要,而IDE也是有针对性的,相比于没有针对性的editor来说
围观我的Github Idea墙, 也许,你会遇到心仪的项目