止于至善

In me the tiger sniffs the rose


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

编辑器主题插件

发表于 2018-06-27

是否希望语法突出显示脱颖而出?下面我们已经选择一些我们在优达学城中最常用的主题。主题不分对错,完全取决于个人偏好。

Monokai

基于 Wimer Hazenberg 设计的原始 TextMate 主题, Monokai 多年以来广受欢迎。Monokai 是 Sublime 使用的默认颜色主题, 大多数文本编辑器和 IDE 中均广泛提供了该主题。

Monokai Theme

##Solarized

Solarized 是由 Ethan Schoonover 设计的一个十六色调色板 (八个单调色、八个强调色),可与终端和 GUI 应用程序联用。颜色主题使用精确的亮度关系和基于固定色盘关系的精致色调。

Solarized Theme

主题列表

Sublime Text

  • Material Theme – 很不错的一款主题插件
  • Theme - Brogrammer – 推荐的一款主题插件。

Atom

  • seti-ui: 一个黑色系的UI主题,并且包含文件图标
  • atom-material-ui: 一个来源Google的动态UI主题

VS Code

  • Panda Theme - 很不错的一个主题,推荐
  • Enki Theme - 代码高亮很好看。
  • Material Icon Theme - 提供很漂亮的文件图标。

是否想要更多主题?

请查阅 https://colorsublime.github.io/ 来查找更多主题,让你的 Sublime text 大放异彩!

如果正在查找 Atom 中的主题,只需访问 Atom 主题页,并在网站中进行搜索。

VS Code 中的主题,可在 点击此处 中查询。

实用的编辑器插件

发表于 2018-06-27

实用的编辑器插件

Sublime Text

工具类

  • Emmet – 非常实用的插件,提高编程效率

    Emmet官网

  • AdvancedNewFile – 文件创建插件

  • Git – 整合 Git 功能插件

  • ColorPicker – 取色器插件

  • Sublime-HTMLPrettify – 集成了格式化(美化)html、css、js三种文件类型的插件

  • csscomb-for-sublime – 按照一定的CSS属性排序规则,将杂乱无章的CSS属性进行重新排序

  • DocBlockr – 可以轻松为文件生成描述

  • Minify – 代码压缩和美化二合一

  • AutoFileName – 自动补全路径插件

  • Color Highlighter – 颜色插件

  • Sublime Tutor – Sublime Text 3 教程

语言类

  • AngularJS – AngularJS 插件
  • Babel – ES6 和 React
  • CSS3 – 最好的 CSS 支持插件,颜色高亮
  • Vue Syntax Highlight – VUE 语法高亮

MarkDown

  • Markdown Preview – 编写Markdown 文件
  • MarkdownEditing – 帮助更好的编写 MarkDown 文件

Atom

代码辅助

  • emmet: 使用Emmet语法快速编写HTML
  • linter-eslint: eslint atom插件,用于检索javascript代码,可以自定义配置
  • docblockr: 一键生成注释模板,使写注释更高效
  • autocomplete-paths: 在写路径的时候的自动补全
  • pigments — 颜色插件, 相当于Sublime中的Color Highlighter

Git功能

  • git-plus: 使用atom命令行来进行基本的Git操作(例如Commit,Pull,Push等)
  • git-log: 在Atom中查看Git提交记录

美化

  • file-icons: 文件前面显示图标,增加辨识度的同时使界面更好看
  • atom-beautify: 一键代码美化

VS Code

功能性

  • Auto Close Tag - 匹配标签,关闭对应的标签, 很实用
  • Document This - JSDOC注解调用,值得易用
  • Auto Rename Tag - 改变标签的时候自动改变对应的闭合标签
  • Beautify - 良好的拓展性,可以格式化JSON|JS|HTML|CSS|SCSS,比内置格式化好用
  • Code Runner - 代码编译运行看结果,支持众多语言
  • colorize - 会给颜色代码增加一个当前匹配代码颜色的背景,非常好
  • Git History (git log) - 很棒的GIT插件,推荐
  • Path Intellisense - 智能补全路径

语法校验

  • stylelint - 用于支持 CSS/SCSS/Less 实时语法校验
  • ESLint -用于支持 JavaScript 实时语法校验

是否想要更多的包?

如果希望看到 Sublime 中可用包的完整列表, 请访问 https://packagecontrol.io/.

如果正在查找 Atom 中的包,只需前往 Atom 主页,并在网站中进行搜索

如果想要获取 VS Code 中的拓展,你可以点击 此处 查看更多

test

发表于 2018-06-23

自己写一个Promise A+

发表于 2018-06-23

自己手动写一个Promise A+代码, 实现了基本功能(包括then/catch/all方法), 代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
class Promise {
// constructor
constructor(executorCallBack) {
this.status = "pending";
this.value = undefined;
this.fulfilledAry = [];
this.rejectedAry = [];

let resolveFn = result => {
let timer = setTimeout(() => {
clearTimeout(timer);
if (!this.status === "pending") {
return;
}
this.status = "fulfilled";
this.value = result;
this.fulfilledAry.forEach(item => item(this.value));
}, 0);
};
let rejectFn = reason => {
let timer = setTimeout(() => {
clearTimeout(timer);
if (!this.status === "pending") {
return;
}
this.status = "rejected";
this.value = reason;
this.fulfilledAry.forEach(item => item(this.value));
}, 0);
};

try {
executorCallBack(resolveFn, rejectFn);
} catch (err) {
rejectFn(err);
}
}

// methods
then(fulfilledCallBack, rejectedCallBack) {
typeof fulfilledCallBack !== "function"
? (fulfilledCallBack = result => result)
: null;
typeof rejectedCallBack !== "function"
? (rejectedCallBack = reason => {
throw new Error(reason instanceof Error ? reason.message : reason);
})
: null;
return new Promise((resolve, reject) => {
this.fulfilledAry.push(() => {
try {
let x = fulfilledCallBack(this.value);
x instanceof Promise ? x.then(resolve, reject) : resolve(x);
} catch (err) {
reject(err);
}
});
this.rejectedAry.push(() => {
try {
let x = rejectedCallBack(this.value);
x instanceof Promise ? x.then(resolve, reject) : resove(x);
} catch (err) {
reject(err);
}
});
});
}

catch(rejectedCallBack) {
return this.then(null, rejectedCallBack);
}

static all(promiseAry = []) {
// 用Promise.all() 来执行
return new Promise((resolve, reject) => {
let successCounter = 0,
result = [];
for (let i = 0; i < promiseAry.length; i++) {
// promiseAry[i] 每一个处理的promise实例
promiseAry[i].then(val => {
successCounter++;
result[i] = val;
if (successCounter === promiseAry.length) {
resolve(result);
}
}, reject);
}
});
}
}

module.exports = Promise;
ilexwg

ilexwg

4 日志
3 标签
GitHub Twitter
© 2018 ilexwg
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4