nyaovim
Version:
Web-enhanced Extensible Neovim Frontend
195 lines • 6.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const electron_1 = require("electron");
const path_1 = require("path");
const about_window_1 = require("about-window");
function startAboutWindow() {
about_window_1.default({
icon_path: path_1.join(__dirname, '..', 'resources', 'icon', 'nyaovim-logo.png'),
copyright: 'Copyright (c) 2015 rhysd',
});
}
function setMenu(win) {
const template = [
{
label: 'Edit',
submenu: [
{
label: 'Undo',
accelerator: 'CmdOrCtrl+Z',
click: () => {
if (win.webContents.isFocused()) {
win.webContents.send('nyaovim:exec-commands', ['undo']);
}
else {
electron_1.webContents.getFocusedWebContents().undo();
}
},
},
{
label: 'Redo',
accelerator: 'Shift+CmdOrCtrl+Z',
click: () => {
if (win.webContents.isFocused()) {
win.webContents.send('nyaovim:exec-commands', ['redo']);
}
else {
electron_1.webContents.getFocusedWebContents().redo();
}
},
},
{
type: 'separator',
},
{
label: 'Cut',
accelerator: 'CmdOrCtrl+X',
click: () => {
if (win.webContents.isFocused()) {
win.webContents.send('nyaovim:cut');
}
else {
electron_1.webContents.getFocusedWebContents().cut();
}
},
},
{
label: 'Copy',
accelerator: 'CmdOrCtrl+C',
click: () => {
if (win.webContents.isFocused()) {
win.webContents.send('nyaovim:copy');
}
else {
electron_1.webContents.getFocusedWebContents().copy();
}
},
},
{
label: 'Paste',
accelerator: 'CmdOrCtrl+V',
click: () => {
if (win.webContents.isFocused()) {
win.webContents.send('nyaovim:paste');
}
else {
electron_1.webContents.getFocusedWebContents().paste();
}
},
},
{
label: 'Select All',
accelerator: 'CmdOrCtrl+A',
click: () => {
if (win.webContents.isFocused()) {
win.webContents.send('nyaovim:select-all');
}
else {
electron_1.webContents.getFocusedWebContents().selectAll();
}
},
},
],
},
{
label: 'View',
submenu: [
{
label: 'Reload',
accelerator: 'CmdOrCtrl+R',
click: () => win.reload(),
},
{
label: 'Toggle Full Screen',
accelerator: process.platform === 'darwin' ? 'Ctrl+Command+F' : 'F11',
click: () => win.setFullScreen(!win.isFullScreen()),
},
{
label: 'Open Developer Tools',
accelerator: process.platform === 'darwin' ? 'Alt+Command+I' : 'Ctrl+Shift+I',
click: () => win.webContents.openDevTools({ mode: 'detach' }),
},
],
},
{
label: 'Window',
role: 'window',
submenu: [
{
label: 'Minimize',
accelerator: 'CmdOrCtrl+M',
role: 'minimize',
},
{
label: 'Close',
accelerator: 'CmdOrCtrl+W',
role: 'close',
},
],
},
{
label: 'Help',
role: 'help',
submenu: [
{
label: 'About NyaoVim',
click: () => startAboutWindow(),
},
],
},
];
if (process.platform === 'darwin') {
template.unshift({
label: 'NyaoVim',
submenu: [
{
label: 'About NyaoVim',
click: () => startAboutWindow(),
},
{
type: 'separator',
},
{
label: 'Services',
role: 'services',
},
{
type: 'separator',
},
{
label: 'Hide NyaoVim',
accelerator: 'Command+H',
role: 'hide',
},
{
label: 'Hide Others',
accelerator: 'Command+Shift+H',
role: 'hideothers',
},
{
label: 'Show All',
role: 'unhide',
},
{
type: 'separator',
},
{
label: 'Quit',
accelerator: 'Command+Q',
click: () => { electron_1.app.quit(); },
},
],
});
template[3].submenu.push({
type: 'separator',
}, {
label: 'Bring All to Front',
role: 'front',
});
}
const menu = electron_1.Menu.buildFromTemplate(template);
electron_1.Menu.setApplicationMenu(menu);
return menu;
}
exports.default = setMenu;
//# sourceMappingURL=menu.js.map