mirror of
https://github.com/antos-rde/antosdk-apps.git
synced 2025-07-23 17:29:51 +02:00
Add more packages, disable Antunnel auto connect
This commit is contained in:
2
DiffEditor/README.md
Normal file
2
DiffEditor/README.md
Normal file
@ -0,0 +1,2 @@
|
||||
# DiffEditor
|
||||
View and edit files in diff mode
|
19
DiffEditor/assets/scheme.html
Normal file
19
DiffEditor/assets/scheme.html
Normal file
@ -0,0 +1,19 @@
|
||||
<afx-app-window apptitle="Diff Editor" width="650" height="400" data-id="DiffEditor">
|
||||
<afx-vbox>
|
||||
<afx-hbox >
|
||||
<afx-file-view data-id="fileview" min-width="150" data-width="150" view="tree" status="false"></afx-file-view>
|
||||
<afx-resizer data-width="3"></afx-resizer>
|
||||
<afx-vbox>
|
||||
<afx-hbox data-height="20">
|
||||
<afx-label data-id="left-file" class="file-label"></afx-label>
|
||||
<afx-label data-id="right-file" class="file-label"></afx-label>
|
||||
</afx-hbox>
|
||||
<div data-id="diffeditor" style="position: relative;" ></div>
|
||||
</afx-vbox>
|
||||
</afx-hbox>
|
||||
<afx-hbox data-height="25" data-id="status-bar">
|
||||
<div class="status-text"></div>
|
||||
<afx-list-view data-id="langmode" dropdown="true" data-width="150"></afx-list-view>
|
||||
</afx-hbox>
|
||||
</afx-vbox>
|
||||
</afx-app-window>
|
2
DiffEditor/build/debug/README.md
Normal file
2
DiffEditor/build/debug/README.md
Normal file
@ -0,0 +1,2 @@
|
||||
# DiffEditor
|
||||
View and edit files in diff mode
|
13
DiffEditor/build/debug/main.css
Normal file
13
DiffEditor/build/debug/main.css
Normal file
@ -0,0 +1,13 @@
|
||||
|
||||
afx-app-window[data-id="DiffEditor"] afx-hbox[data-id="status-bar"] {
|
||||
background-color: #007ACC;
|
||||
}
|
||||
afx-app-window[data-id="DiffEditor"] .status-text {
|
||||
color: white;
|
||||
text-align: right;
|
||||
padding-right: 10px;
|
||||
}
|
||||
afx-app-window[data-id="DiffEditor"] afx-label.file-label {
|
||||
background-color: #333333;
|
||||
color: white;
|
||||
}
|
275
DiffEditor/build/debug/main.js
Normal file
275
DiffEditor/build/debug/main.js
Normal file
@ -0,0 +1,275 @@
|
||||
(function() {
|
||||
var DiffEditor;
|
||||
|
||||
DiffEditor = class DiffEditor extends this.OS.application.BaseApplication {
|
||||
constructor(args) {
|
||||
super("DiffEditor", args);
|
||||
}
|
||||
|
||||
main() {
|
||||
var j, len, list, opts, ref, v;
|
||||
this.editor_cnt = this.find("diffeditor");
|
||||
this.fileview = this.find("fileview");
|
||||
this.fileview.fetch = (path) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
return path.asFileHandle().read().then((d) => {
|
||||
if (d.error) {
|
||||
return reject(d.error);
|
||||
}
|
||||
return resolve(d.result);
|
||||
}).catch((e) => {
|
||||
return reject(__e(e));
|
||||
});
|
||||
});
|
||||
};
|
||||
this.fileview.onfileopen = (e) => {
|
||||
if (!(e.data && e.data.path)) {
|
||||
return;
|
||||
}
|
||||
if (e.data.type === "dir") {
|
||||
return;
|
||||
}
|
||||
return this.openFile(e.data.path.asFileHandle());
|
||||
};
|
||||
this.currdir = void 0;
|
||||
ace.config.set('basePath', "scripts/ace");
|
||||
ace.require("ace/ext/language_tools");
|
||||
this.modelist = ace.require("ace/ext/modelist");
|
||||
list = [];
|
||||
ref = this.modelist.modes;
|
||||
for (j = 0, len = ref.length; j < len; j++) {
|
||||
v = ref[j];
|
||||
list.push({
|
||||
text: v.caption,
|
||||
mode: v.mode
|
||||
});
|
||||
}
|
||||
this.langlist = this.find("langmode");
|
||||
this.langlist.data = list;
|
||||
this.langlist.onlistselect = (e) => {
|
||||
this.editors.left.getSession().setMode(e.data.item.data.mode);
|
||||
return this.editors.right.getSession().setMode(e.data.item.data.mode);
|
||||
};
|
||||
this.differ = new AceDiff({
|
||||
// ace: window.ace,
|
||||
element: this.editor_cnt,
|
||||
theme: "ace/theme/monokai",
|
||||
left: {
|
||||
content: ''
|
||||
},
|
||||
right: {
|
||||
content: ''
|
||||
}
|
||||
});
|
||||
this.editors = this.differ.getEditors();
|
||||
opts = {
|
||||
enableBasicAutocompletion: true,
|
||||
enableSnippets: true,
|
||||
enableLiveAutocompletion: true,
|
||||
highlightActiveLine: true,
|
||||
highlightSelectedWord: true,
|
||||
behavioursEnabled: true,
|
||||
//wrap: true,
|
||||
fontSize: "10pt",
|
||||
showInvisibles: true
|
||||
};
|
||||
this.editors.left.setOptions(opts);
|
||||
this.editors.right.setOptions(opts);
|
||||
this.editors.left.current_file = void 0;
|
||||
this.editors.right.current_file = void 0;
|
||||
this.editors.left.afx_label = this.find("left-file");
|
||||
this.editors.right.afx_label = this.find("right-file");
|
||||
this.editors.left.mux = false;
|
||||
this.editors.right.mux = false;
|
||||
this.on("resize", () => {
|
||||
this.editors = this.differ.getEditors();
|
||||
this.editors.left.resize();
|
||||
return this.editors.right.resize();
|
||||
});
|
||||
$('.acediff__left .ace_scrollbar-v', this.editor_cnt).scroll(() => {
|
||||
return this.editors.right.session.setScrollTop(this.editors.left.session.getScrollTop());
|
||||
});
|
||||
$('.acediff__right .ace_scrollbar-v', this.editor_cnt).scroll(() => {
|
||||
return this.editors.left.session.setScrollTop(this.editors.right.session.getScrollTop());
|
||||
});
|
||||
this.editors.left.on("focus", (e) => {
|
||||
return this.current_editor = this.editors.left;
|
||||
});
|
||||
this.editors.right.on("focus", (e) => {
|
||||
return this.current_editor = this.editors.right;
|
||||
});
|
||||
this.editors.left.on("input", (e) => {
|
||||
if (this.editors.left.mux) {
|
||||
return this.editors.left.mux = false;
|
||||
}
|
||||
if (!this.editors.left.current_file) {
|
||||
return this.editors.left.afx_label.text = __("Temporary file");
|
||||
}
|
||||
if (this.editors.left.current_file.dirty) {
|
||||
return;
|
||||
}
|
||||
this.editors.left.current_file.dirty = true;
|
||||
return this.editors.left.afx_label.text += "*";
|
||||
});
|
||||
this.editors.right.on("input", (e) => {
|
||||
if (this.editors.right.mux) {
|
||||
return this.editors.right.mux = false;
|
||||
}
|
||||
if (!this.editors.right.current_file) {
|
||||
return this.editors.right.afx_label.text = __("Temporary file");
|
||||
}
|
||||
if (this.editors.right.current_file.dirty) {
|
||||
return;
|
||||
}
|
||||
this.editors.right.current_file.dirty = true;
|
||||
return this.editors.right.afx_label.text += "*";
|
||||
});
|
||||
this.current_editor = this.editors.left;
|
||||
this.current_editor.focus();
|
||||
this.bindKey("ALT-O", () => {
|
||||
return this.menuAction("open");
|
||||
});
|
||||
this.bindKey("ALT-F", () => {
|
||||
return this.menuAction("opendir");
|
||||
});
|
||||
this.bindKey("CTRL-S", () => {
|
||||
return this.menuAction("save");
|
||||
});
|
||||
return this.toggleSideBar();
|
||||
}
|
||||
|
||||
toggleSideBar() {
|
||||
if (this.currdir) {
|
||||
$(this.fileview).show();
|
||||
this.fileview.path = this.currdir.path;
|
||||
} else {
|
||||
$(this.fileview).hide();
|
||||
}
|
||||
return this.trigger("resize");
|
||||
}
|
||||
|
||||
menu() {
|
||||
return [
|
||||
{
|
||||
text: __("File"),
|
||||
nodes: [
|
||||
{
|
||||
text: __("Open"),
|
||||
dataid: "open",
|
||||
shortcut: "A-O"
|
||||
},
|
||||
{
|
||||
text: __("Open Folder"),
|
||||
dataid: "opendir",
|
||||
shortcut: "A-F"
|
||||
},
|
||||
{
|
||||
text: __("Save"),
|
||||
dataid: "save",
|
||||
shortcut: "C-S"
|
||||
}
|
||||
],
|
||||
onchildselect: (e) => {
|
||||
return this.menuAction(e.data.item.data.dataid);
|
||||
}
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
openFile(file) {
|
||||
this.current_editor.mux = true;
|
||||
return file.read().then((d) => {
|
||||
var i, item, j, len, m, ref, v;
|
||||
file.cache = d;
|
||||
this.current_editor.current_file = file;
|
||||
this.current_editor.afx_label.text = file.path;
|
||||
this.current_editor.setValue(d, -1);
|
||||
// select current mode
|
||||
m = this.modelist.getModeForPath(file.path);
|
||||
ref = this.langlist.data;
|
||||
for (i = j = 0, len = ref.length; j < len; i = ++j) {
|
||||
v = ref[i];
|
||||
if (v.mode === m.mode) {
|
||||
item = i;
|
||||
}
|
||||
}
|
||||
if (item === void 0) {
|
||||
return;
|
||||
}
|
||||
return this.langlist.selected = item;
|
||||
});
|
||||
}
|
||||
|
||||
menuAction(dataid) {
|
||||
var fn;
|
||||
switch (dataid) {
|
||||
case "open":
|
||||
return this.openDialog("FileDialog", {
|
||||
title: __("Open file"),
|
||||
mimes: ["text/.*", "application/json", "application/javascript"]
|
||||
}).then((f) => {
|
||||
return this.openFile(f.file.path.asFileHandle());
|
||||
});
|
||||
case "opendir":
|
||||
return this.openDialog("FileDialog", {
|
||||
title: __("Open folder"),
|
||||
mimes: ["dir"]
|
||||
}).then((f) => {
|
||||
this.currdir = f.file.path.asFileHandle();
|
||||
return this.toggleSideBar();
|
||||
});
|
||||
case "save":
|
||||
fn = (ed) => {
|
||||
if (!(ed.current_file && ed.current_file.dirty)) {
|
||||
return;
|
||||
}
|
||||
ed.current_file.cache = ed.getValue();
|
||||
return ed.current_file.write("text/plain").then((r) => {
|
||||
ed.current_file.dirty = false;
|
||||
ed.afx_label.text = ed.current_file.path;
|
||||
return this.notify(__("File {0} saved", ed.current_file.path));
|
||||
}).catch((e) => {
|
||||
return this.error(__("Unable to save to: {0}", ed.current_file.path), e);
|
||||
});
|
||||
};
|
||||
fn(this.editors.left);
|
||||
return fn(this.editors.right);
|
||||
default:
|
||||
return console.log(dataid);
|
||||
}
|
||||
}
|
||||
|
||||
cleanup(evt) {
|
||||
var dirty;
|
||||
dirty = false;
|
||||
if (this.editors.left.current_file && this.editors.left.current_file.dirty) {
|
||||
dirty = true;
|
||||
}
|
||||
if (this.editors.right.current_file && this.editors.right.current_file.dirty) {
|
||||
dirty = true;
|
||||
}
|
||||
if (dirty) {
|
||||
evt.preventDefault();
|
||||
return this.ask({
|
||||
title: __("Unsaved changes"),
|
||||
text: __("Ignore modification ?")
|
||||
}).then((d) => {
|
||||
if (!d) {
|
||||
return;
|
||||
}
|
||||
this.editors.left.current_file.dirty = false;
|
||||
this.editors.right.current_file.dirty = false;
|
||||
return this.quit();
|
||||
});
|
||||
} else {
|
||||
return this.differ.destroy();
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
DiffEditor.dependencies = ["os://scripts/ace/ace.js", "pkg://AceDiff/main.js", "pkg://AceDiff/main.css"];
|
||||
|
||||
this.OS.register("DiffEditor", DiffEditor);
|
||||
|
||||
}).call(this);
|
16
DiffEditor/build/debug/package.json
Normal file
16
DiffEditor/build/debug/package.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"pkgname": "DiffEditor",
|
||||
"app":"DiffEditor",
|
||||
"name":"Diff Editor",
|
||||
"description":"Diff Editor",
|
||||
"info":{
|
||||
"author": "",
|
||||
"edsdmail": ""
|
||||
},
|
||||
"version":"0.0.1-a",
|
||||
"category":"Other",
|
||||
"iconclass":"fa fa-adn",
|
||||
"mimes":["none"],
|
||||
"dependencies":["AceDiff@3.0.3-r"],
|
||||
"locale": {}
|
||||
}
|
19
DiffEditor/build/debug/scheme.html
Normal file
19
DiffEditor/build/debug/scheme.html
Normal file
@ -0,0 +1,19 @@
|
||||
<afx-app-window apptitle="Diff Editor" width="650" height="400" data-id="DiffEditor">
|
||||
<afx-vbox>
|
||||
<afx-hbox >
|
||||
<afx-file-view data-id="fileview" min-width="150" data-width="150" view="tree" status="false"></afx-file-view>
|
||||
<afx-resizer data-width="3"></afx-resizer>
|
||||
<afx-vbox>
|
||||
<afx-hbox data-height="20">
|
||||
<afx-label data-id="left-file" class="file-label"></afx-label>
|
||||
<afx-label data-id="right-file" class="file-label"></afx-label>
|
||||
</afx-hbox>
|
||||
<div data-id="diffeditor" style="position: relative;" ></div>
|
||||
</afx-vbox>
|
||||
</afx-hbox>
|
||||
<afx-hbox data-height="25" data-id="status-bar">
|
||||
<div class="status-text"></div>
|
||||
<afx-list-view data-id="langmode" dropdown="true" data-width="150"></afx-list-view>
|
||||
</afx-hbox>
|
||||
</afx-vbox>
|
||||
</afx-app-window>
|
BIN
DiffEditor/build/release/DiffEditor.zip
Normal file
BIN
DiffEditor/build/release/DiffEditor.zip
Normal file
Binary file not shown.
204
DiffEditor/coffees/main.coffee
Normal file
204
DiffEditor/coffees/main.coffee
Normal file
@ -0,0 +1,204 @@
|
||||
class DiffEditor extends @OS.application.BaseApplication
|
||||
constructor: ( args ) ->
|
||||
super "DiffEditor", args
|
||||
|
||||
main: () ->
|
||||
@editor_cnt = @find "diffeditor"
|
||||
@fileview = @find "fileview"
|
||||
|
||||
@fileview.fetch = (path) =>
|
||||
return new Promise (resolve, reject) =>
|
||||
path.asFileHandle().read()
|
||||
.then (d) =>
|
||||
return reject(d.error) if d.error
|
||||
return resolve(d.result)
|
||||
.catch (e) =>
|
||||
return reject(__e(e))
|
||||
@fileview.onfileopen = (e) =>
|
||||
return unless e.data and e.data.path
|
||||
return if e.data.type is "dir"
|
||||
return @openFile e.data.path.asFileHandle()
|
||||
|
||||
@currdir = undefined
|
||||
ace.config.set('basePath', "scripts/ace")
|
||||
ace.require("ace/ext/language_tools")
|
||||
@modelist = ace.require("ace/ext/modelist")
|
||||
list = []
|
||||
for v in @modelist.modes
|
||||
list.push {
|
||||
text: v.caption,
|
||||
mode: v.mode
|
||||
}
|
||||
@langlist = @find("langmode")
|
||||
@langlist.data = list
|
||||
@langlist.onlistselect = (e) =>
|
||||
@editors.left.getSession().setMode e.data.item.data.mode
|
||||
@editors.right.getSession().setMode e.data.item.data.mode
|
||||
|
||||
@differ = new AceDiff({
|
||||
# ace: window.ace,
|
||||
element: @editor_cnt,
|
||||
theme: "ace/theme/monokai",
|
||||
left: {
|
||||
content: '',
|
||||
},
|
||||
right: {
|
||||
content: '',
|
||||
}
|
||||
})
|
||||
@editors = @differ.getEditors()
|
||||
opts = {
|
||||
enableBasicAutocompletion: true,
|
||||
enableSnippets: true,
|
||||
enableLiveAutocompletion: true,
|
||||
highlightActiveLine: true,
|
||||
highlightSelectedWord: true,
|
||||
behavioursEnabled: true,
|
||||
#wrap: true,
|
||||
fontSize: "10pt",
|
||||
showInvisibles: true,
|
||||
}
|
||||
|
||||
@editors.left.setOptions(opts)
|
||||
@editors.right.setOptions(opts)
|
||||
@editors.left.current_file = undefined
|
||||
@editors.right.current_file = undefined
|
||||
@editors.left.afx_label = @find("left-file")
|
||||
@editors.right.afx_label = @find("right-file")
|
||||
@editors.left.mux = false
|
||||
@editors.right.mux = false
|
||||
|
||||
@on "resize", () =>
|
||||
@editors = @differ.getEditors()
|
||||
@editors.left.resize()
|
||||
@editors.right.resize()
|
||||
|
||||
$('.acediff__left .ace_scrollbar-v',@editor_cnt).scroll(() =>
|
||||
@editors.right.session.setScrollTop(@editors.left.session.getScrollTop()))
|
||||
$('.acediff__right .ace_scrollbar-v', @editor_cnt).scroll(() =>
|
||||
@editors.left.session.setScrollTop(@editors.right.session.getScrollTop()))
|
||||
|
||||
@editors.left.on "focus", (e) =>
|
||||
@current_editor = @editors.left
|
||||
@editors.right.on "focus", (e) =>
|
||||
@current_editor = @editors.right
|
||||
|
||||
@editors.left.on "input", (e) =>
|
||||
return @editors.left.mux = false if @editors.left.mux
|
||||
return @editors.left.afx_label.text = __("Temporary file") unless @editors.left.current_file
|
||||
return if @editors.left.current_file.dirty
|
||||
@editors.left.current_file.dirty = true
|
||||
@editors.left.afx_label.text += "*"
|
||||
|
||||
@editors.right.on "input", (e) =>
|
||||
return @editors.right.mux = false if @editors.right.mux
|
||||
return @editors.right.afx_label.text = __("Temporary file") unless @editors.right.current_file
|
||||
return if @editors.right.current_file.dirty
|
||||
@editors.right.current_file.dirty = true
|
||||
@editors.right.afx_label.text += "*"
|
||||
|
||||
@current_editor = @editors.left
|
||||
@current_editor.focus()
|
||||
|
||||
@bindKey "ALT-O", () => @menuAction("open")
|
||||
@bindKey "ALT-F", () => @menuAction("opendir")
|
||||
@bindKey "CTRL-S", () => @menuAction("save")
|
||||
@toggleSideBar()
|
||||
|
||||
toggleSideBar: () ->
|
||||
if @currdir
|
||||
$(@fileview).show()
|
||||
@fileview.path = @currdir.path
|
||||
else
|
||||
$(@fileview).hide()
|
||||
|
||||
@trigger("resize")
|
||||
|
||||
menu: () ->
|
||||
return [
|
||||
{
|
||||
text: __("File"),
|
||||
nodes: [
|
||||
{ text: __("Open"), dataid: "open", shortcut: "A-O" },
|
||||
{
|
||||
text: __("Open Folder"),
|
||||
dataid: "opendir",
|
||||
shortcut: "A-F",
|
||||
},
|
||||
{ text: __("Save"), dataid: "save", shortcut: "C-S" }
|
||||
],
|
||||
onchildselect: (e) =>
|
||||
@menuAction(e.data.item.data.dataid)
|
||||
}
|
||||
]
|
||||
|
||||
openFile: (file) ->
|
||||
@current_editor.mux = true
|
||||
file.read()
|
||||
.then (d) =>
|
||||
file.cache = d
|
||||
@current_editor.current_file = file
|
||||
@current_editor.afx_label.text = file.path
|
||||
@current_editor.setValue d, -1
|
||||
# select current mode
|
||||
m = @modelist.getModeForPath(file.path)
|
||||
item = i for v,i in @langlist.data when v.mode is m.mode
|
||||
return unless item isnt undefined
|
||||
@langlist.selected = item
|
||||
|
||||
menuAction:(dataid) ->
|
||||
switch dataid
|
||||
when "open"
|
||||
@openDialog "FileDialog", {
|
||||
title: __("Open file"),
|
||||
mimes: ["text/.*", "application/json", "application/javascript"],
|
||||
}
|
||||
.then (f) =>
|
||||
@openFile(f.file.path.asFileHandle())
|
||||
|
||||
when "opendir"
|
||||
@openDialog("FileDialog", {
|
||||
title: __("Open folder"),
|
||||
mimes: ["dir"],
|
||||
})
|
||||
.then (f) =>
|
||||
@currdir = f.file.path.asFileHandle()
|
||||
@toggleSideBar()
|
||||
|
||||
when "save"
|
||||
fn = (ed) =>
|
||||
return unless ed.current_file and ed.current_file.dirty
|
||||
ed.current_file.cache = ed.getValue()
|
||||
ed.current_file.write("text/plain")
|
||||
.then (r) =>
|
||||
ed.current_file.dirty = false
|
||||
ed.afx_label.text = ed.current_file.path
|
||||
@notify __("File {0} saved", ed.current_file.path)
|
||||
.catch (e) =>
|
||||
@error __("Unable to save to: {0}", ed.current_file.path), e
|
||||
fn @editors.left
|
||||
fn @editors.right
|
||||
else
|
||||
return console.log(dataid)
|
||||
|
||||
cleanup: (evt) ->
|
||||
dirty = false
|
||||
dirty = true if @editors.left.current_file and @editors.left.current_file.dirty
|
||||
dirty = true if @editors.right.current_file and @editors.right.current_file.dirty
|
||||
if dirty
|
||||
evt.preventDefault()
|
||||
@ask { title: __("Unsaved changes"), text: __("Ignore modification ?")}
|
||||
.then (d) =>
|
||||
return unless d
|
||||
@editors.left.current_file.dirty = false
|
||||
@editors.right.current_file.dirty = false
|
||||
@quit()
|
||||
else
|
||||
@differ.destroy()
|
||||
|
||||
DiffEditor.dependencies = [
|
||||
"os://scripts/ace/ace.js",
|
||||
"pkg://AceDiff/main.js",
|
||||
"pkg://AceDiff/main.css"
|
||||
]
|
||||
@OS.register "DiffEditor", DiffEditor
|
12
DiffEditor/css/main.css
Normal file
12
DiffEditor/css/main.css
Normal file
@ -0,0 +1,12 @@
|
||||
afx-app-window[data-id="DiffEditor"] afx-hbox[data-id="status-bar"] {
|
||||
background-color: #007ACC;
|
||||
}
|
||||
afx-app-window[data-id="DiffEditor"] .status-text {
|
||||
color: white;
|
||||
text-align: right;
|
||||
padding-right: 10px;
|
||||
}
|
||||
afx-app-window[data-id="DiffEditor"] afx-label.file-label {
|
||||
background-color: #333333;
|
||||
color: white;
|
||||
}
|
16
DiffEditor/package.json
Normal file
16
DiffEditor/package.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"pkgname": "DiffEditor",
|
||||
"app":"DiffEditor",
|
||||
"name":"Diff Editor",
|
||||
"description":"Diff Editor",
|
||||
"info":{
|
||||
"author": "",
|
||||
"edsdmail": ""
|
||||
},
|
||||
"version":"0.0.1-a",
|
||||
"category":"Other",
|
||||
"iconclass":"fa fa-adn",
|
||||
"mimes":["none"],
|
||||
"dependencies":["AceDiff@3.0.3-r"],
|
||||
"locale": {}
|
||||
}
|
7
DiffEditor/project.json
Normal file
7
DiffEditor/project.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"name": "DiffEditor",
|
||||
"css": ["css/main.css"],
|
||||
"javascripts": [],
|
||||
"coffees": ["coffees/main.coffee"],
|
||||
"copies": ["assets/scheme.html", "package.json", "README.md"]
|
||||
}
|
Reference in New Issue
Block a user