From 6e88bd3cf692604931fb4b27e34cf7b45f084a64 Mon Sep 17 00:00:00 2001 From: avasid Date: Wed, 13 May 2020 10:10:16 +0530 Subject: [PATCH 01/25] Change popup behaviour First option will be in focus by default and also the navigation of options will not change the code until a consecutive ENTER is pressed --- src/jupyter_tabnine/static/main.js | 31 +++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/jupyter_tabnine/static/main.js b/src/jupyter_tabnine/static/main.js index fa41921..9178656 100644 --- a/src/jupyter_tabnine/static/main.js +++ b/src/jupyter_tabnine/static/main.js @@ -379,13 +379,14 @@ define([ 'top': top + 'px', 'display': 'initial' }); + var options = $("#complete").find('.complete-container'); + $(options[0]).css('background', 'lightblue'); }; DeepCompleter.prototype.add_keyevent_listeners = function () { var options = $("#complete").find('.complete-container'); var editor = this.editor; - var currIndex = -1; - var preIndex; + var currIndex = 0; this.isKeyupFired = true; // make keyup only fire once var that = this; this._handle_keydown = function (comp, event) { // define as member method to handle close @@ -402,28 +403,28 @@ define([ event._ipkmIgnore = true; event.preventDefault(); // it's better to prevent enter key when completions being shown - if (event.keyCode == keycodes.enter) { + + if (event.keyCode == keycodes.up) { + currIndex = currIndex - 1; + } else if (event.keyCode == keycodes.tab || event.keyCode == keycodes.down) { + currIndex = currIndex + 1; + } else { + var end = editor.getCursor(); + if (that.completions[currIndex].old_suffix) { + end.ch += that.completions[currIndex].old_suffix.length; + } + var replacement = that.completions[currIndex].new_prefix; + replacement += that.completions[currIndex].new_suffix; + editor.replaceRange(replacement, that.completeFrom, end); that.close(); return; } - preIndex = currIndex; - currIndex = event.keyCode == keycodes.up ? currIndex - 1 : currIndex + 1; currIndex = currIndex < 0 ? options.length - 1 : (currIndex >= options.length ? currIndex - options.length : currIndex); $(options[currIndex]).css('background', 'lightblue'); - var end = editor.getCursor(); - if (that.completions[currIndex].old_suffix) { - end.ch += that.completions[currIndex].old_suffix.length; - } - var replacement = that.completions[currIndex].new_prefix; - replacement += that.completions[currIndex].new_suffix; - editor.replaceRange(replacement, that.completeFrom, end); - if (preIndex != -1) { - $(options[preIndex]).css('background', ''); - } } else if (needUpdateComplete(event.keyCode)) { // Let this be handled by keyup, since it can get current pressed key. } else { From 952ce4afcc1d488874ac5e03abde053c8e4a51af Mon Sep 17 00:00:00 2001 From: avasid Date: Wed, 13 May 2020 10:24:39 +0530 Subject: [PATCH 02/25] Fix bug --- src/jupyter_tabnine/static/main.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/jupyter_tabnine/static/main.js b/src/jupyter_tabnine/static/main.js index 9178656..42bca78 100644 --- a/src/jupyter_tabnine/static/main.js +++ b/src/jupyter_tabnine/static/main.js @@ -387,6 +387,7 @@ define([ var options = $("#complete").find('.complete-container'); var editor = this.editor; var currIndex = 0; + var preIndex; this.isKeyupFired = true; // make keyup only fire once var that = this; this._handle_keydown = function (comp, event) { // define as member method to handle close @@ -404,6 +405,7 @@ define([ event.preventDefault(); // it's better to prevent enter key when completions being shown + preIndex = currIndex; if (event.keyCode == keycodes.up) { currIndex = currIndex - 1; } else if (event.keyCode == keycodes.tab || event.keyCode == keycodes.down) { @@ -425,6 +427,9 @@ define([ currIndex - options.length : currIndex); $(options[currIndex]).css('background', 'lightblue'); + if (preIndex != -1) { + $(options[preIndex]).css('background', ''); + } } else if (needUpdateComplete(event.keyCode)) { // Let this be handled by keyup, since it can get current pressed key. } else { From 2e97a4ce5667a664c1f541305c9b105724e9c9a3 Mon Sep 17 00:00:00 2001 From: avasid Date: Wed, 13 May 2020 10:33:32 +0530 Subject: [PATCH 03/25] Minor change --- src/jupyter_tabnine/static/main.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/jupyter_tabnine/static/main.js b/src/jupyter_tabnine/static/main.js index 42bca78..0c81026 100644 --- a/src/jupyter_tabnine/static/main.js +++ b/src/jupyter_tabnine/static/main.js @@ -427,9 +427,7 @@ define([ currIndex - options.length : currIndex); $(options[currIndex]).css('background', 'lightblue'); - if (preIndex != -1) { - $(options[preIndex]).css('background', ''); - } + $(options[preIndex]).css('background', ''); } else if (needUpdateComplete(event.keyCode)) { // Let this be handled by keyup, since it can get current pressed key. } else { From b081132f11d7fc19c2c312a2e1b46f6fdbbe5091 Mon Sep 17 00:00:00 2001 From: avasid Date: Wed, 13 May 2020 10:43:52 +0530 Subject: [PATCH 04/25] Minor change Add ESC key function --- src/jupyter_tabnine/static/main.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/jupyter_tabnine/static/main.js b/src/jupyter_tabnine/static/main.js index 0c81026..0241cf0 100644 --- a/src/jupyter_tabnine/static/main.js +++ b/src/jupyter_tabnine/static/main.js @@ -399,14 +399,18 @@ define([ } that.isKeyupFired = false; if (event.keyCode == keycodes.up || event.keyCode == keycodes.tab - || event.keyCode == keycodes.down || event.keyCode == keycodes.enter) { + || event.keyCode == keycodes.down || event.keyCode == keycodes.enter + || event.keyCode == keycodes.esc) { event.codemirrorIgnore = true; event._ipkmIgnore = true; event.preventDefault(); // it's better to prevent enter key when completions being shown preIndex = currIndex; - if (event.keyCode == keycodes.up) { + if (event.keyCode == keycodes.esc) { + that.close(); + return; + } else if (event.keyCode == keycodes.up) { currIndex = currIndex - 1; } else if (event.keyCode == keycodes.tab || event.keyCode == keycodes.down) { currIndex = currIndex + 1; From 9ee417570a5e5a88d050796544c2ccb7953f4ab7 Mon Sep 17 00:00:00 2001 From: avasid Date: Wed, 13 May 2020 11:34:57 +0530 Subject: [PATCH 05/25] Fix typos --- README.md | 10 +++++----- README.rst | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 9a3c64f..69d0d5d 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ This extension for Jupyter Notebook enables the use of coding auto-completion ba Other client plugins of TabNine require starting a child process for TabNine binary and using Pipe for communication. This can’t be done with Jupyter Notebook, since child process can’t be created with JQuery and Jupyter Notebook doesn’t provide any way for adding third-part js libs to plugins. -In this repository, it is achived by developing a client plugin and a server plugin for Jupyter Notebook. The client plugin generate request info and send http request to the server plugin. The server plugin pass the request info to it’s client process (TabNine) and return the request to client plugin. +In this repository, it is achieved by developing a client plugin and a server plugin for Jupyter Notebook. The client plugin generate request info and send http request to the server plugin. The server plugin pass the request info to its client process (TabNine) and return the request to client plugin. ## Installation @@ -27,7 +27,7 @@ jupyter nbextension enable --py jupyter_tabnine --user jupyter serverextension enable --py jupyter_tabnine --user ``` -If you want to install and congiure in a customized way, you can refer to following: +If you want to install and configure in a customized way, you can refer to following: The extension consists of a pypi package that includes a javascript notebook extension, along with a python jupyter server extension. Since Jupyter 4.2, pypi is the recommended way to distribute nbextensions. The extension can be installed: @@ -36,7 +36,7 @@ notebook extension, along with a python jupyter server extension. Since Jupyter * via pip for the version hosted on pypi -From the github repo or from Pypi, +From the github repo or from pypi, 1. install the package * `pip3 install https://github.com/wenmin-wu/jupyter-tabnine/archive/master.zip [--user][--upgrade]` * or `pip3 install jupyter-tabnine [--user][--upgrade]` @@ -68,10 +68,10 @@ jupyter serverextension enable where `` is the output of the first python command. ## Usage -* Jupyter TabNine will be active after being installed. Sometimes, you may want to show the Jupyter original complete temporally, then click `shift` + `space`. +* Jupyter TabNine will be active after being installed. Sometimes, you may want to show the Jupyter original complete temporarily, then click `shift` + `space`. ![show original complete demo](images/show-original-complete.gif) -* Remote auto-completion server is also supported. You may want this to speed up the completion request handing. Or maybe your company want to deploy a compeltion server cluster that services everyone. Read following to learn how to deploy remote server. +* Remote auto-completion server is also supported. You may want this to speed up the completion request handing. Or maybe your company want to deploy a completion server cluster that services everyone. Read following to learn how to deploy remote server. ## Contributing Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. diff --git a/README.rst b/README.rst index 497241f..35a1c9b 100644 --- a/README.rst +++ b/README.rst @@ -7,9 +7,9 @@ Other client plugins of TabNine require starting a child process for TabNine bin and using Pipe for communication. This can't be done with Jupyter Notebook, since child process can't be created with JQuery and Jupyter Notebook doesn't provide any way for adding third-part js libs to plugins. -In this repository, it is achived by developing a client plugin and a server plugin for Jupyter Notebook. +In this repository, it is achieved by developing a client plugin and a server plugin for Jupyter Notebook. The client plugin generate request info and send http request to the server plugin. -The server plugin pass the request info to it's client process (TabNine) and return the request to client plugin. +The server plugin pass the request info to its client process (TabNine) and return the request to client plugin. Installation ------------ @@ -21,7 +21,7 @@ The extension can be installed - from the master version on the github repo (this will be always the most recent version) - via pip for the version hosted on pypi -From the github repo or from Pypi, +From the github repo or from pypi, 1. install the package @@ -70,5 +70,5 @@ command. Tips ------------ -- A shortcut is added to let you switch between Jupyter raw completion and TabNine auto-competion. Just enter ``shift`` + ``space`` when you want raw completion of Jupyter :) -- Remote auto-completion server is also supported. You may want this to speed up the completion request handing. Or maybe your company want to deploy a compeltion server cluster that services everyone. Refer https://github.com/wenmin-wu/jupyter-tabnine to learn how to deploy remote server. +- A shortcut is added to let you switch between Jupyter raw completion and TabNine auto-completion. Just enter ``shift`` + ``space`` when you want raw completion of Jupyter :) +- Remote auto-completion server is also supported. You may want this to speed up the completion request handing. Or maybe your company want to deploy a completion server cluster that services everyone. Refer https://github.com/wenmin-wu/jupyter-tabnine to learn how to deploy remote server. From 5de6bb8d5de81769c9496e823c0fbff9d3d0b147 Mon Sep 17 00:00:00 2001 From: avasid Date: Wed, 13 May 2020 16:12:23 +0530 Subject: [PATCH 06/25] Fix typo --- src/jupyter_tabnine/static/tabnine.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jupyter_tabnine/static/tabnine.yaml b/src/jupyter_tabnine/static/tabnine.yaml index 9e31d4f..749eb1b 100644 --- a/src/jupyter_tabnine/static/tabnine.yaml +++ b/src/jupyter_tabnine/static/tabnine.yaml @@ -41,7 +41,7 @@ Parameters: - name: jupyter_tabnine.remote_server_url description: | remote server url, you may want to use a remote server to handle client request. - this can spped up the request handling depending on the server configuration. + this can speed up the request handling depending on the server configuration. refer to https://github.com/wenmin-wu/jupyter-tabnine to see how to deploy remote server. input_type: string default: '' From 90a3d8b6fff4ff75102646ce7f7657db39eba256 Mon Sep 17 00:00:00 2001 From: avasid Date: Sat, 23 May 2020 19:07:30 +0530 Subject: [PATCH 07/25] Fix typo --- src/jupyter_tabnine/static/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jupyter_tabnine/static/README.md b/src/jupyter_tabnine/static/README.md index 3207f5f..75a8443 100644 --- a/src/jupyter_tabnine/static/README.md +++ b/src/jupyter_tabnine/static/README.md @@ -31,4 +31,4 @@ Options * `jupyter_tabnine.remote_server_url`: remote server url, you may want to use a remote server to handle client request. - This can spped up the request handling depending on the server configuration. Refer to https://github.com/wenmin-wu/jupyter-tabnine to see how to deploy remote server. \ No newline at end of file + This can speed up the request handling depending on the server configuration. Refer to https://github.com/wenmin-wu/jupyter-tabnine to see how to deploy remote server. \ No newline at end of file From 7b45b7de9fa5f8f77b6e3ed199f962ab9870ea53 Mon Sep 17 00:00:00 2001 From: shaiahr Date: Tue, 23 Jun 2020 09:53:32 +0300 Subject: [PATCH 08/25] Update README.md Add uninstall instructions for mac/linux. --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 9a3c64f..f865a16 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,13 @@ where `` is the output of the first python command. ![show original complete demo](images/show-original-complete.gif) * Remote auto-completion server is also supported. You may want this to speed up the completion request handing. Or maybe your company want to deploy a compeltion server cluster that services everyone. Read following to learn how to deploy remote server. +## Uninstallation +To uninstall TabNine plugin from mac/linux run the following commands: +```Bash +jupyter nbextension uninstall --py jupyter_tabnine +pip3 uninstall jupyter-tabnine +``` + ## Contributing Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. From 97d76a1ae06f322c10716333853790223287bf4e Mon Sep 17 00:00:00 2001 From: William Wu Date: Sat, 11 Jul 2020 21:28:10 +0800 Subject: [PATCH 09/25] add star trend --- README.ch.md | 6 ++++++ README.md | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/README.ch.md b/README.ch.md index 488963d..76be1a9 100644 --- a/README.ch.md +++ b/README.ch.md @@ -61,3 +61,9 @@ jupyter serverextension enable [MIT License](LICENSE) ## 部署自动补全Server (可选) + +很快添加 + +## Star 趋势 + +[![Stargazers over time](https://starchart.cc/wenmin-wu/jupyter-tabnine.svg)](https://starchart.cc/wenmin-wu/jupyter-tabnine) \ No newline at end of file diff --git a/README.md b/README.md index 9a3c64f..c46b391 100644 --- a/README.md +++ b/README.md @@ -68,17 +68,26 @@ jupyter serverextension enable where `` is the output of the first python command. ## Usage + * Jupyter TabNine will be active after being installed. Sometimes, you may want to show the Jupyter original complete temporally, then click `shift` + `space`. ![show original complete demo](images/show-original-complete.gif) * Remote auto-completion server is also supported. You may want this to speed up the completion request handing. Or maybe your company want to deploy a compeltion server cluster that services everyone. Read following to learn how to deploy remote server. ## Contributing + Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate. ## License + [MIT License](LICENSE) ## Remote Completion Server Deployment + +Will be added soon + +## Stargazers over time + +[![Stargazers over time](https://starchart.cc/wenmin-wu/jupyter-tabnine.svg)](https://starchart.cc/wenmin-wu/jupyter-tabnine) \ No newline at end of file From 803b78cbdce442eb892b4350774a3415a273693c Mon Sep 17 00:00:00 2001 From: Boaz Berman Date: Thu, 5 Nov 2020 12:50:37 +0200 Subject: [PATCH 10/25] Change client name to jupter --- go/pkg/tabnine/tabnine.go | 2 +- src/jupyter_tabnine/tabnine.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/go/pkg/tabnine/tabnine.go b/go/pkg/tabnine/tabnine.go index f821386..c428ce9 100644 --- a/go/pkg/tabnine/tabnine.go +++ b/go/pkg/tabnine/tabnine.go @@ -81,7 +81,7 @@ func (t *TabNine) init() (err error) { t.outPipeReader, t.outPipeWriter = io.Pipe() wg.Wait() if err == nil { - t.cmd = exec.Command(binaryPath, "--client=vscode") + t.cmd = exec.Command(binaryPath, "--client=jupyter") t.cmd.Stdin = t.inPipeReader t.cmd.Stdout = t.outPipeWriter t.outReader = bufio.NewReader(t.outPipeReader) diff --git a/src/jupyter_tabnine/tabnine.py b/src/jupyter_tabnine/tabnine.py index ba7b739..5e9c1e7 100644 --- a/src/jupyter_tabnine/tabnine.py +++ b/src/jupyter_tabnine/tabnine.py @@ -124,7 +124,7 @@ def _restart(self): [ path, "--client", - "sublime", + "jupyter", "--log-file-path", os.path.join(self._install_dir, "tabnine.log"), ], From 1e7fe901ec66ebc524556022ca126c7771de926f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=96=87=E6=95=8F?= Date: Sun, 29 Nov 2020 01:17:48 +0800 Subject: [PATCH 11/25] Update README.md --- README.md | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7dbacd4..f2c8acf 100644 --- a/README.md +++ b/README.md @@ -92,9 +92,24 @@ Please make sure to update tests as appropriate. [MIT License](LICENSE) ## Remote Completion Server Deployment - -Will be added soon +It's useful to deploy a remote tabnine server if you don't want it do occupy too much resources on your laptop. You can build, deploy and config a remote tabnine server according to the following steps. +### Build Server Image +**I have uploaded an image to Docker Hub, you can use it directly** +* Install the golang (recommended version is 1.13 - 1.14) +* Issue `go get -v github.com/wenmin-wu/jupyter-tabnine/go/cmd` +* Issue `cd $HOME/go/src/github.com/wenmin-wu/jupyter-tabnine` +* Issue `bash ./build-image.sh` +### Start Server +**Change the image name in this bash script to `wuwenmin1991/tabnine-server:1.0` if you did't build your own image** +* Simply issue `bash start-server.sh` + +### Configure Under Nbextensions +* Please [install Nbextensions](https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/install.html) if you haven't installed. +* Go + +### Stop Server +* Simply issue `bash stop-server.sh` ## Stargazers over time -[![Stargazers over time](https://starchart.cc/wenmin-wu/jupyter-tabnine.svg)](https://starchart.cc/wenmin-wu/jupyter-tabnine) \ No newline at end of file +[![Stargazers over time](https://starchart.cc/wenmin-wu/jupyter-tabnine.svg)](https://starchart.cc/wenmin-wu/jupyter-tabnine) From 5483bea2fa4d49201a86bd116c4dc4b11a2da52a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=96=87=E6=95=8F?= Date: Sun, 29 Nov 2020 01:23:03 +0800 Subject: [PATCH 12/25] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f2c8acf..e7a8180 100644 --- a/README.md +++ b/README.md @@ -92,7 +92,7 @@ Please make sure to update tests as appropriate. [MIT License](LICENSE) ## Remote Completion Server Deployment -It's useful to deploy a remote tabnine server if you don't want it do occupy too much resources on your laptop. You can build, deploy and config a remote tabnine server according to the following steps. +It's useful to deploy a remote tabnine server if you don't want to occupy too much local resources. You can build, deploy and config a remote tabnine server according to the following steps. ### Build Server Image **I have uploaded an image to Docker Hub, you can use it directly** * Install the golang (recommended version is 1.13 - 1.14) @@ -105,7 +105,8 @@ It's useful to deploy a remote tabnine server if you don't want it do occupy too ### Configure Under Nbextensions * Please [install Nbextensions](https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/install.html) if you haven't installed. -* Go +* Open Jupyter Notebook and go to the Nbextensions setting page, click **Jupyter TabNine**, scroll down and fill in the remote server url, e.g. + ### Stop Server * Simply issue `bash stop-server.sh` From 9e272ef2dbcbcb752e7c76002007ca160b48307e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=96=87=E6=95=8F?= Date: Sun, 29 Nov 2020 01:30:48 +0800 Subject: [PATCH 13/25] Add files via upload --- images/remote-server-url-config.jpg | Bin 0 -> 179300 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/remote-server-url-config.jpg diff --git a/images/remote-server-url-config.jpg b/images/remote-server-url-config.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a6e1ff316f969fd1137f28a970f1ee4fec033ef2 GIT binary patch literal 179300 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 literal 0 HcmV?d00001 From 7eecf203aeeee92095994b2e5ce5c70058017f9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=96=87=E6=95=8F?= Date: Sun, 29 Nov 2020 01:32:03 +0800 Subject: [PATCH 14/25] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e7a8180..9aeae4e 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ Please make sure to update tests as appropriate. ## Remote Completion Server Deployment It's useful to deploy a remote tabnine server if you don't want to occupy too much local resources. You can build, deploy and config a remote tabnine server according to the following steps. +**NOTE:** You need to install jupyter-tabnine with `pip3 install https://github.com/wenmin-wu/jupyter-tabnine/archive/master.zip`, because the version which fix this plugin with remote server problem haven't been relased to PyPi. ### Build Server Image **I have uploaded an image to Docker Hub, you can use it directly** * Install the golang (recommended version is 1.13 - 1.14) @@ -106,8 +107,7 @@ It's useful to deploy a remote tabnine server if you don't want to occupy too mu ### Configure Under Nbextensions * Please [install Nbextensions](https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/install.html) if you haven't installed. * Open Jupyter Notebook and go to the Nbextensions setting page, click **Jupyter TabNine**, scroll down and fill in the remote server url, e.g. - - +![remote-server-url-config](images/remote-server-url-config.jpg) ### Stop Server * Simply issue `bash stop-server.sh` From 0db72c54e9010f5055f42e65eacf0232bf2a9002 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=96=87=E6=95=8F?= Date: Sun, 29 Nov 2020 01:32:45 +0800 Subject: [PATCH 15/25] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9aeae4e..60f7b38 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ Please make sure to update tests as appropriate. ## Remote Completion Server Deployment It's useful to deploy a remote tabnine server if you don't want to occupy too much local resources. You can build, deploy and config a remote tabnine server according to the following steps. + **NOTE:** You need to install jupyter-tabnine with `pip3 install https://github.com/wenmin-wu/jupyter-tabnine/archive/master.zip`, because the version which fix this plugin with remote server problem haven't been relased to PyPi. ### Build Server Image **I have uploaded an image to Docker Hub, you can use it directly** From a22d64065ef203dcd32f3e19915a0ddfd252e34e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=96=87=E6=95=8F?= Date: Sun, 29 Nov 2020 01:34:16 +0800 Subject: [PATCH 16/25] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 60f7b38..064b549 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ It's useful to deploy a remote tabnine server if you don't want to occupy too mu **NOTE:** You need to install jupyter-tabnine with `pip3 install https://github.com/wenmin-wu/jupyter-tabnine/archive/master.zip`, because the version which fix this plugin with remote server problem haven't been relased to PyPi. ### Build Server Image -**I have uploaded an image to Docker Hub, you can use it directly** +**I have uploaded an image to Docker Hub, skip this section if you want to use it directly.** * Install the golang (recommended version is 1.13 - 1.14) * Issue `go get -v github.com/wenmin-wu/jupyter-tabnine/go/cmd` * Issue `cd $HOME/go/src/github.com/wenmin-wu/jupyter-tabnine` From 9ba819d7a8f6d3d0cb7474968110143569eaa52b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=96=87=E6=95=8F?= Date: Sun, 29 Nov 2020 01:34:49 +0800 Subject: [PATCH 17/25] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 064b549..236d18b 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ It's useful to deploy a remote tabnine server if you don't want to occupy too mu **NOTE:** You need to install jupyter-tabnine with `pip3 install https://github.com/wenmin-wu/jupyter-tabnine/archive/master.zip`, because the version which fix this plugin with remote server problem haven't been relased to PyPi. ### Build Server Image -**I have uploaded an image to Docker Hub, skip this section if you want to use it directly.** +**I have uploaded an image to Docker Hub, skip this section if you prefer to use it directly.** * Install the golang (recommended version is 1.13 - 1.14) * Issue `go get -v github.com/wenmin-wu/jupyter-tabnine/go/cmd` * Issue `cd $HOME/go/src/github.com/wenmin-wu/jupyter-tabnine` From f1615b54a2662f8c80e2ead225c40cf298f68e2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=96=87=E6=95=8F?= Date: Thu, 4 Feb 2021 11:15:37 +0800 Subject: [PATCH 18/25] Limit number of lines in before and after --- src/jupyter_tabnine/static/main.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/jupyter_tabnine/static/main.js b/src/jupyter_tabnine/static/main.js index fa41921..cd226ed 100644 --- a/src/jupyter_tabnine/static/main.js +++ b/src/jupyter_tabnine/static/main.js @@ -21,6 +21,9 @@ define([ ) { 'use strict'; + const N_LINES_BEFORE = 50; + const N_LINES_AFTER = 50; + var assistActive; var config = { @@ -226,6 +229,8 @@ define([ this.before = before; this.after = after; + before = before.slice(Math.max(0, before.length - N_LINES_BEFORE), before.length); + after = after.slice(0, N_LINES_AFTER); requestInfo.request.Autocomplete.before = before.join("\n"); requestInfo.request.Autocomplete.after = after.join("\n"); @@ -292,8 +297,10 @@ define([ } else { this.after.push(currLineAfter); } - requestInfo.request.Autocomplete.before = this.before.join('\n'); - requestInfo.request.Autocomplete.after = this.after.join('\n'); + var before = this.before.slice(Math.max(0, this.before.length - N_LINES_BEFORE), this.before.length); + var after = this.after.slice(0, N_LINES_AFTER); + requestInfo.request.Autocomplete.before = before.join('\n'); + requestInfo.request.Autocomplete.after = after.join('\n'); var that = this; requestComplterServer(requestInfo, true, function (data) { if (data.results.length == 0) { From 30e3a382813e72f1fc3a83fae86f87a2d1dab16b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=96=87=E6=95=8F?= Date: Thu, 4 Feb 2021 16:56:45 +0800 Subject: [PATCH 19/25] this close #57 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index eb1a35d..f72ac1f 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ setuptools.setup( name="jupyter_tabnine", - version='1.1.0', + version='1.2.0', url="https://github.com/wenmin-wu/jupyter-tabnine", author="Wenmin Wu", long_description=readme, From e8c5c482ac69b76b248cc83cc5fa1039720b3847 Mon Sep 17 00:00:00 2001 From: Dror Weiss Date: Sun, 7 Feb 2021 23:00:21 +0200 Subject: [PATCH 20/25] Credit wenmin-wu as creator --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 236d18b..431b588 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # TabNine for Jupyter Notebook +**This plugin has been created by [wenmin-wu](https://github.com/wenmin-wu).** + **This plugin has been tested on MacOS, Linux and Windows, it support all these systems. For browsers it supports Chrome and Safari but not IE** If you found this plugin doesn't work for you, please debug according to [How to Debug](DEBUG.md). And if you can't figure out what's wrong, please release an issue and report the logs in detail. From 65304df212cac2d626a9dd86a62698cb9a3e5ad3 Mon Sep 17 00:00:00 2001 From: Dima Date: Thu, 25 Feb 2021 18:15:06 +0200 Subject: [PATCH 21/25] bump version + go client name --- go/pkg/tabnine/tabnine.go | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/go/pkg/tabnine/tabnine.go b/go/pkg/tabnine/tabnine.go index c428ce9..e72d33b 100644 --- a/go/pkg/tabnine/tabnine.go +++ b/go/pkg/tabnine/tabnine.go @@ -81,7 +81,7 @@ func (t *TabNine) init() (err error) { t.outPipeReader, t.outPipeWriter = io.Pipe() wg.Wait() if err == nil { - t.cmd = exec.Command(binaryPath, "--client=jupyter") + t.cmd = exec.Command(binaryPath, "--client=jupyter-server") t.cmd.Stdin = t.inPipeReader t.cmd.Stdout = t.outPipeWriter t.outReader = bufio.NewReader(t.outPipeReader) diff --git a/setup.py b/setup.py index f72ac1f..ecad078 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ setuptools.setup( name="jupyter_tabnine", - version='1.2.0', + version='1.2.1', url="https://github.com/wenmin-wu/jupyter-tabnine", author="Wenmin Wu", long_description=readme, From c8023d8b071c604742f2d856f8f41643c294a79e Mon Sep 17 00:00:00 2001 From: Dima Date: Sun, 28 Feb 2021 15:53:45 +0200 Subject: [PATCH 22/25] release CI --- .github/workflows/release.yaml | 48 ++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .github/workflows/release.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..95d6e2e --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,48 @@ +name: Create Release + +on: + push: + tags: + - 'v*.*.*' +jobs: + release: + name: Create Release + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: '3.x' + - name: Tag Version + id: tag-version + run: echo ::set-output name=RELEASE_VERSION::$(echo ${GITHUB_REF:10}) + - name: Package Version + id: setup-version + run: echo ::set-output name=SETUP_VERSION::$(python3 setup.py --version) + - name: Tag & setup.py Versions Not Matching + if: ${{ format('v{0}', steps.setup-version.outputs.SETUP_VERSION) != steps.tag-version.outputs.RELEASE_VERSION}} + run: exit 1 + - name: Build package + id: build_package + run: | + pip3 install wheel && \ + python3 setup.py sdist bdist_wheel + if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + draft: false + prerelease: false + - name: Publish package + if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') + uses: codota/gh-action-pypi-publish@master + with: + user: ${{ secrets.PYPI_USERNAME }} + password: ${{ secrets.PYPI_TOKEN }} \ No newline at end of file From 84ea6777b9e94332ec886ecc6bf560c2f68b68d0 Mon Sep 17 00:00:00 2001 From: Dima Date: Sun, 28 Feb 2021 15:55:04 +0200 Subject: [PATCH 23/25] bump version --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index ecad078..520c992 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ setuptools.setup( name="jupyter_tabnine", - version='1.2.1', + version='1.2.2', url="https://github.com/wenmin-wu/jupyter-tabnine", author="Wenmin Wu", long_description=readme, From 8b039361c1ee3cead92ab4f0492e7bb74a1df498 Mon Sep 17 00:00:00 2001 From: Aakif Vasid Date: Sun, 14 Mar 2021 00:38:10 +0530 Subject: [PATCH 24/25] Change in pop-up behaviour --- src/jupyter_tabnine/static/main.js | 37 ++++++++++++++++++------------ 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/src/jupyter_tabnine/static/main.js b/src/jupyter_tabnine/static/main.js index cd226ed..c639030 100644 --- a/src/jupyter_tabnine/static/main.js +++ b/src/jupyter_tabnine/static/main.js @@ -386,12 +386,14 @@ define([ 'top': top + 'px', 'display': 'initial' }); + var options = $("#complete").find('.complete-container'); + $(options[0]).css('background', 'lightblue'); }; DeepCompleter.prototype.add_keyevent_listeners = function () { var options = $("#complete").find('.complete-container'); var editor = this.editor; - var currIndex = -1; + var currIndex = 0; var preIndex; this.isKeyupFired = true; // make keyup only fire once var that = this; @@ -404,33 +406,38 @@ define([ } that.isKeyupFired = false; if (event.keyCode == keycodes.up || event.keyCode == keycodes.tab - || event.keyCode == keycodes.down || event.keyCode == keycodes.enter) { + || event.keyCode == keycodes.down || event.keyCode == keycodes.enter + || event.keyCode == keycodes.esc) { event.codemirrorIgnore = true; event._ipkmIgnore = true; event.preventDefault(); // it's better to prevent enter key when completions being shown - if (event.keyCode == keycodes.enter) { + preIndex = currIndex; + if (event.keyCode == keycodes.esc) { + that.close(); + return; + } else if (event.keyCode == keycodes.up) { + currIndex = currIndex - 1; + } else if (event.keyCode == keycodes.tab || event.keyCode == keycodes.down) { + currIndex = currIndex + 1; + } else { + var end = editor.getCursor(); + if (that.completions[currIndex].old_suffix) { + end.ch += that.completions[currIndex].old_suffix.length; + } + var replacement = that.completions[currIndex].new_prefix; + replacement += that.completions[currIndex].new_suffix; + editor.replaceRange(replacement, that.completeFrom, end); that.close(); return; } - preIndex = currIndex; - currIndex = event.keyCode == keycodes.up ? currIndex - 1 : currIndex + 1; currIndex = currIndex < 0 ? options.length - 1 : (currIndex >= options.length ? currIndex - options.length : currIndex); $(options[currIndex]).css('background', 'lightblue'); - var end = editor.getCursor(); - if (that.completions[currIndex].old_suffix) { - end.ch += that.completions[currIndex].old_suffix.length; - } - var replacement = that.completions[currIndex].new_prefix; - replacement += that.completions[currIndex].new_suffix; - editor.replaceRange(replacement, that.completeFrom, end); - if (preIndex != -1) { - $(options[preIndex]).css('background', ''); - } + $(options[preIndex]).css('background', ''); } else if (needUpdateComplete(event.keyCode)) { // Let this be handled by keyup, since it can get current pressed key. } else { From 038ecac06604fae4e9ce2439d19ff268ae12bd27 Mon Sep 17 00:00:00 2001 From: Aakif Vasid Date: Sun, 14 Mar 2021 00:52:15 +0530 Subject: [PATCH 25/25] resolve merge conflict --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index be48d38..ebfe7ff 100644 --- a/README.md +++ b/README.md @@ -70,12 +70,7 @@ jupyter serverextension enable where `` is the output of the first python command. ## Usage -<<<<<<< HEAD - -* Jupyter TabNine will be active after being installed. Sometimes, you may want to show the Jupyter original complete temporally, then click `shift` + `space`. -======= * Jupyter TabNine will be active after being installed. Sometimes, you may want to show the Jupyter original complete temporarily, then click `shift` + `space`. ->>>>>>> 90a3d8b6fff4ff75102646ce7f7657db39eba256 ![show original complete demo](images/show-original-complete.gif) * Remote auto-completion server is also supported. You may want this to speed up the completion request handing. Or maybe your company want to deploy a completion server cluster that services everyone. Read following to learn how to deploy remote server.