瀏覽代碼

Remove completer from console.

Afshin Darian 8 年之前
父節點
當前提交
405554bf8d
共有 3 個文件被更改,包括 15 次插入81 次删除
  1. 4 0
      src/completer/handler.ts
  2. 10 0
      src/completer/plugin.ts
  3. 1 81
      src/console/panel.ts

+ 4 - 0
src/completer/handler.ts

@@ -60,6 +60,10 @@ class CompletionHandler implements IDisposable {
       editor.completionRequested.disconnect(this.onCompletionRequested, this);
     }
 
+    // Reset completer state.
+    this._completer.reset();
+
+    // Update the editor.
     editor = this._editor = newValue;
     if (editor) {
       editor.model.value.changed.connect(this.onTextChanged, this);

+ 10 - 0
src/completer/plugin.ts

@@ -1,6 +1,10 @@
 // Copyright (c) Jupyter Development Team.
 // Distributed under the terms of the Modified BSD License.
 
+import {
+  Widget
+} from 'phosphor/lib/ui/widget';
+
 import {
   JupyterLab, JupyterLabPlugin
 } from '../application';
@@ -48,6 +52,9 @@ const consolePlugin: JupyterLabPlugin<void> = {
         handler.kernel = kernel;
       });
 
+      // Attach the completer widget.
+      Widget.attach(completer, document.body);
+
       // Listen for parent disposal.
       parent.disposed.connect(() => {
         model.dispose();
@@ -87,6 +94,9 @@ const notebookPlugin: JupyterLabPlugin<void> = {
         handler.kernel = kernel;
       });
 
+      // Attach the completer widget.
+      Widget.attach(completer, document.body);
+
       // Listen for parent disposal.
       parent.disposed.connect(() => {
         model.dispose();

+ 1 - 81
src/console/panel.ts

@@ -6,7 +6,7 @@ import {
 } from 'phosphor/lib/core/token';
 
 import {
-  Session, Kernel
+  Session
 } from '@jupyterlab/services';
 
 import {
@@ -17,18 +17,10 @@ import {
   Panel
 } from 'phosphor/lib/ui/panel';
 
-import {
-  Widget
-} from 'phosphor/lib/ui/widget';
-
 import {
   IEditorMimeTypeService, CodeEditor
 } from '../codeeditor';
 
-import {
-  CompletionHandler, CompleterModel, CompleterWidget
-} from '../completer';
-
 import {
   BaseCellWidget, CodeCellWidget
 } from '../cells';
@@ -72,23 +64,6 @@ class ConsolePanel extends Panel {
     };
     this.console = factory.createConsole(consoleOpts);
     this.addWidget(this.console);
-
-    // Instantiate the completer.
-    this._completer = factory.createCompleter({ model: new CompleterModel() });
-
-    // Set the completer widget's anchor widget to peg its position.
-    this._completer.anchor = this.console;
-    Widget.attach(this._completer, document.body);
-
-    // Instantiate the completer handler.
-    this._completerHandler = factory.createCompleterHandler({
-      completer: this._completer,
-      kernel: options.session.kernel
-    });
-
-    // Connect to change events.
-    this.console.promptCreated.connect(this._onPromptCreated, this);
-    options.session.kernelChanged.connect(this._onKernelChanged, this);
   }
 
   /**
@@ -100,16 +75,6 @@ class ConsolePanel extends Panel {
    * Dispose of the resources held by the widget.
    */
   dispose(): void {
-    if (this._completer === null) {
-      return;
-    }
-    let completer = this._completer;
-    let completerHandler = this._completerHandler;
-    this._completer = null;
-    this._completerHandler = null;
-    completer.dispose();
-    completerHandler.dispose();
-
     this.console.dispose();
     super.dispose();
   }
@@ -128,27 +93,6 @@ class ConsolePanel extends Panel {
     super.onCloseRequest(msg);
     this.dispose();
   }
-
-  /**
-   * Handle the creation of a new prompt.
-   */
-  private _onPromptCreated(sender: CodeConsole, prompt: CodeCellWidget): void {
-    this._completer.reset();
-
-    // Associate the new prompt with the completer.
-    this._completerHandler.editor = prompt.editor;
-  }
-
-  /**
-   * Handle a change to the kernel.
-   */
-  private _onKernelChanged(sender: Session.ISession, kernel: Kernel.IKernel): void {
-    this._completerHandler.kernel = kernel;
-  }
-
-  private _completer: CompleterWidget = null;
-  private _completerHandler: CompletionHandler = null;
-
 }
 
 
@@ -207,16 +151,6 @@ namespace ConsolePanel {
      * Create a new console panel.
      */
     createConsole(options: CodeConsole.IOptions): CodeConsole;
-
-    /**
-     * The completer widget for a console widget.
-     */
-    createCompleter(options: CompleterWidget.IOptions): CompleterWidget;
-
-    /**
-     * The completer handler for a console widget.
-     */
-    createCompleterHandler(options: CompletionHandler.IOptions): CompletionHandler;
   }
 
   /**
@@ -255,20 +189,6 @@ namespace ConsolePanel {
     createConsole(options: CodeConsole.IOptions): CodeConsole {
       return new CodeConsole(options);
     }
-
-    /**
-     * The completer widget for a console widget.
-     */
-    createCompleter(options: CompleterWidget.IOptions): CompleterWidget {
-      return new CompleterWidget(options);
-    }
-
-    /**
-     * The completer handler for a console widget.
-     */
-   createCompleterHandler(options: CompletionHandler.IOptions): CompletionHandler {
-      return new CompletionHandler(options);
-   }
   }
 
   /**