浏览代码

Merge pull request #150 from blink1073/linennumbers

Line number handling
Dave Willmer 9 年之前
父节点
当前提交
660e6dd15a
共有 2 个文件被更改,包括 47 次插入0 次删除
  1. 42 0
      src/notebook/plugin.ts
  2. 5 0
      src/shortcuts/plugin.ts

+ 42 - 0
src/notebook/plugin.ts

@@ -67,6 +67,8 @@ const cmdIds = {
   insertBelow: 'notebook-cells:insert-below',
   selectPrevious: 'notebook-cells:select-previous',
   selectNext: 'notebook-cells:select-next',
+  toggleLinenumbers: 'notebook-cells:toggle-linenumbers',
+  toggleAllLinenumbers: 'notebook:toggle-allLinenumbers',
   editMode: 'notebook-cells:editMode',
   commandMode: 'notebook-cells:commandMode'
 };
@@ -213,6 +215,36 @@ function activateNotebookHandler(app: Application, manager: DocumentManager, ser
       if (model) model.activeCellIndex += 1;
     }
   },
+  {
+    id: cmdIds['toggleLinenumbers'],
+    handler: () => {
+      let model = handler.currentModel;
+      if (model) {
+        let cell = model.cells.get(model.activeCellIndex);
+        let lineNumbers = cell.input.textEditor.lineNumbers;
+        for (let i = 0; i < model.cells.length; i++) {
+          cell = model.cells.get(i);
+          if (model.isSelected(cell) || i === model.activeCellIndex) {
+            cell.input.textEditor.lineNumbers = !lineNumbers;
+          }
+        }
+      }
+    }
+  },
+  {
+    id: cmdIds['toggleAllLinenumbers'],
+    handler: () => {
+      let model = handler.currentModel;
+      if (model) {
+        let cell = model.cells.get(model.activeCellIndex);
+        let lineNumbers = cell.input.textEditor.lineNumbers;
+        for (let i = 0; i < model.cells.length; i++) {
+          cell = model.cells.get(i);
+          cell.input.textEditor.lineNumbers = !lineNumbers;
+        }
+      }
+    }
+  },
   {
     id: cmdIds['commandMode'],
     handler: () => {
@@ -304,6 +336,16 @@ function activateNotebookHandler(app: Application, manager: DocumentManager, ser
     category: 'Notebook Cell Operations',
     text: 'Select next cell'
   },
+  {
+    command: cmdIds['toggleLinenumbers'],
+    category: 'Notebook Cell Operations',
+    text: 'Toggle line numbers'
+  },
+  {
+    command: cmdIds['toggleAllLinenumbers'],
+    category: 'Notebook Operations',
+    text: 'Toggle all line numbers'
+  },
   {
     command: cmdIds['editMode'],
     category: 'Notebook Cell Operations',

+ 5 - 0
src/shortcuts/plugin.ts

@@ -151,6 +151,11 @@ const SHORTCUTS = [
     selector: '.jp-Notebook.jp-mod-commandMode',
     sequence: ['ArrowDown']
   },
+  {
+    command: 'notebook-cells:toggle-linenumbers',
+    selector: '.jp-Notebook.jp-mod-commandMode',
+    sequence: ['L']
+  },
   {
     command: 'notebook-cells:editMode',
     selector: '.jp-Notebook.jp-mod-commandMode',