Tabnine - AI assistant & Chat for software developers

Add this URL to your Eclipse Installation to reach this solution's update site.

2024-09 (4.33), 2024-06 (4.32), 2024-03 (4.31), 2023-12 (4.30), 2023-09 (4.29), 2023-06 (4.28), 2023-03 (4.27), 2022-12 (4.26), 2022-09 (4.25), 2022-06 (4.24), 2022-03 (4.23), 2024-12 (4.34)

https://eclipse-update-site.tabnine.com/Tabnine/latest

Learn more...
Solution Description

Tabnine: AI-powered chat and code completion for 80+ languages and frameworks including JavaScript, Python, Java, PHP, Go, and more

Tabnine is the AI coding assistant that accelerates and simplifies software development while keeping your code private, secure, and compliant. It provides accurate, highly personalized results for generating code, writing unit tests, creating documentation, explaining legacy code, fixing code, and much more. 

Tabnine: The AI coding assistant that you control

Tabnine is the AI coding assistant that you control — helping development teams of every size use AI to accelerate and simplify the software development process without sacrificing privacy, security, or compliance. Tabnine boosts engineering velocity, code quality, and developer happiness by automating the coding workflow through AI tools customized to your team. Tabnine is trusted by more than 1,000,000 developers across thousands of organizations. Learn how to install and activate Tabnine and get started

 

Boost developer productivity with AI-powered chat and code completions

Tabnine offers best-in-class AI code completion and an AI-powered chat that increases productivity and accelerates the entire software development lifecycle. 

Here’s what you can do with Tabnine:

  • Plan: Ask Tabnine general coding questions or learn how things work in your specific project and get solutions and references relevant to your workspace. 
  • Create: Generate new code using natural language. As you continue coding, Tabnine provides inline code completions, offering real-time, context-aware suggestions that seamlessly blend with your coding style.
  • Test: Ask Tabnine to create tests for a specific function or code in your project, and get back the actual test cases, implementation, and assertion. Tabnine can also use existing tests in your project and suggest tests that align with your project’s testing framework. 
  • Fix: When tests fail, you can select code with an error and ask Tabnine for recommendations on how to fix it. 
  • Document: Generate documentation for specific sections of your code to enhance readability and make it easy for other team members to understand.
  • Explain: Tabnine Chat can provide you with an explanation for a block of existing code, which is especially useful when reading a new codebase or reading legacy code in languages you don’t know as well. 
  • Maintain: In addition to writing new code, Tabnine can help you change the existing code by adding functionality, refactoring, or fixing specific code.

Tabnine supports most popular languages, frameworks, and IDEs. 

Supported languages, frameworks, and libraries:

 JavaScript, TypeScript, Python, Java, C, C++, C#, Go, Php, Ruby, Kotlin, Dart, Rust, React/Vue, HTML 5, CSS, Lua, Perl, YAML, Cuda, SQL, Scala, Shell (bash), Swift, R, Julia, VB, Groovy, Matlab, Terraform, ABAP. 
Learn more

Supported IDEs: 

VS Code, JetBrains IDEs (IntelliJ, PyCharm, WebStorm, PhpStorm, Android Studio, GoLand, CLion, Rider, DataGrip, RustRover, RubyMine, DataSpell, Aqua, AppCode), Eclipse, Visual Studio 2022. 
Learn more 

The AI coding assistant that you control

Unlike generic coding assistants, Tabnine is:

  • Private: You choose where and how to deploy Tabnine, either as a secure SaaS offering or self-hosted on-premises or in a VPC). We never store your data or share it with any third party. Additionally, we don’t use your data to train our models. This ensures complete privacy and maximizes control over your intellectual property.
     
  • Personalized: Tabnine delivers an optimized experience for each developer and engineering team. You can increase Tabnine's contextual awareness by making it aware of your environment — from a developer’s local IDE to the entire codebase — and receive highly personalized results for code completions, explanations, and documentation. Tabnine enterprise customers can further enrich the capability and quality of the output by creating a bespoke model that’s trained on their codebase. 

     
  • Protected: Tabnine is built with enterprise-grade security and compliance at its core. It’s trained exclusively on open source code with permissive licenses, ensuring that you’re never exposed to legal liability.

Resources

Additional Details

Eclipse Versions: 2024-09 (4.33), 2024-06 (4.32), 2024-03 (4.31), 2023-12 (4.30), 2023-09 (4.29), 2023-06 (4.28), 2023-03 (4.27), 2022-12 (4.26), 2022-09 (4.25), 2022-06 (4.24), 2022-03 (4.23), 2024-12 (4.34)

Platform Support: Windows, Mac, Linux/GTK

Organization Name: Tabnine

Development Status: Production/Stable

Date Created: Tuesday, April 18, 2023 - 09:42

License: Commercial

Date Updated: Wednesday, November 13, 2024 - 07:51

Submitted by: Avichay Libeskind Mulyan

Screenshot
Date Ranking Installs Clickthroughs
December 2024 46/581 232 11
November 2024 43/658 721 24
October 2024 53/663 690 18
September 2024 44/642 789 25
August 2024 48/641 614 22
July 2024 51/663 593 22
June 2024 52/681 664 19
May 2024 56/682 688 20
April 2024 58/687 697 25
March 2024 55/694 778 31
February 2024 55/687 672 22
January 2024 63/691 688 27
View Data for all Listings

Marketplace Drag to Install Button

By adding the following code below to your website you will be able to add an install button for Tabnine - AI assistant & Chat for software developers.

HTML Code:

Markdown Syntax:

Output:

Drag to your running Eclipse* workspace. *Requires Eclipse Marketplace Client

Reviews Add new review

After installing the plugin, the tabnine button appeared in the right-bottom zone but the options were not working (e.g. when selecting the option "Open chat" the "Tabine chat" tab remained "Loading..." indefinitely).

With the help of the Tabnine support team, we've been able to determine that the problem was provoked by the .active file, which was corrupt. Fixing this file (e.g. editing it with notepad++) has solved the issue.

+1 for the quick assistance from the Tabnine support team.

I've been using Tabnine alongside Eclipse with the Darkest Dark Theme enabled, and I've encountered some visual glitches in Dark Mode. The chat feature within Tabnine appears in white and many areas are difficult to read. This makes it challenging to interact effectively with the chat functionality.

To improve the user experience, it would be beneficial if Tabnine could address these compatibility issues with the Darkest Dark Theme. Additionally, allowing users to manually select between light and dark modes as a fallback option would provide flexibility in case of compatibility failures.

Looking forward to seeing these improvements implemented in future updates.

Best regards.

Tabnine is a great AI model for eclipse. I had trouble setting it up but their support team helped me out.

If you're having trouble with installation, try this github.com/equodev/eclipse-ai-example#readme

When installing Tabnine 0.1.8, Eclipse pops up the Trust Authorities window. When I choose the checkbox of Tabnine update site, I get the error:

An error has occurred. See error log for more details. Cannot invoke "org.eclipse.jface.viewers.TreeNode.getChildren()" because "treeNode" is null

Here is the details:


!ENTRY org.eclipse.jface 4 2 2023-06-28 13:19:50.390
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jface".
!STACK 0
java.lang.NullPointerException: Cannot invoke "org.eclipse.jface.viewers.TreeNode.getChildren()" because "treeNode" is null
at org.eclipse.equinox.internal.p2.ui.dialogs.TrustAuthorityDialog.getAllChildren(TrustAuthorityDialog.java:823)
at org.eclipse.equinox.internal.p2.ui.dialogs.TrustAuthorityDialog.getAllChildren(TrustAuthorityDialog.java:818)
at org.eclipse.equinox.internal.p2.ui.dialogs.TrustAuthorityDialog.lambda$3(TrustAuthorityDialog.java:257)
at org.eclipse.jface.viewers.CheckboxTreeViewer$1.run(CheckboxTreeViewer.java:168)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
at org.eclipse.jface.viewers.CheckboxTreeViewer.fireCheckStateChanged(CheckboxTreeViewer.java:165)
at org.eclipse.jface.viewers.CheckboxTreeViewer.handleSelect(CheckboxTreeViewer.java:295)
at org.eclipse.jface.viewers.StructuredViewer$4.widgetSelected(StructuredViewer.java:1205)
at org.eclipse.jface.util.OpenStrategy.fireSelectionEvent(OpenStrategy.java:263)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:421)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4274)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4072)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
at org.eclipse.jface.window.Window.open(Window.java:799)
at org.eclipse.equinox.internal.p2.ui.ValidationDialogServiceUI.lambda$18(ValidationDialogServiceUI.java:467)
at org.eclipse.ui.internal.PendingSyncExec.run(PendingSyncExec.java:68)
at org.eclipse.ui.internal.UILockListener.doPendingWork(UILockListener.java:172)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4047)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3663)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
at org.eclipse.jface.window.Window.open(Window.java:799)
at org.eclipse.epp.internal.mpc.ui.commands.AbstractMarketplaceWizardCommand.openWizardDialog(AbstractMarketplaceWizardCommand.java:146)
at org.eclipse.epp.internal.mpc.ui.commands.AbstractMarketplaceWizardCommand.execute(AbstractMarketplaceWizardCommand.java:73)
at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:283)
at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:97)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:309)
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:243)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:173)
at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:156)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:488)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:485)
at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:438)
at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.handleWidgetSelection(AbstractContributionItem.java:449)
at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.lambda$2(AbstractContributionItem.java:475)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4274)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4072)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:643)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
at org.eclipse.equinox.launcher.Main.run(Main.java:1467)

In reply to by Gavin Yang

The Tabnine install is a complete failure.

It hangs at "Trusted Certificate Authorities" and do not complete the installation.

And it gets worst: After that, you can't install nor update anything until you go to Preferences -> Install/Update -> Available Software Sites and then remove the Tabnine site.

It's a shame, as it was a very promising plug-in.

Seems like one of the required packages is no longer available.

Here is the output from Eclipse:

An error occurred while collecting items to be installed
session context was:(profile=epp.package.jee, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
Result of processing steps.
OK
OK
OK
Public key not found for -9147676190077153272.
OK
Result of processing steps.
OK
OK
OK
Public key not found for -9147676190077153272.
OK
No repository found containing: osgi.bundle,ch.qos.logback.slf4j,1.2.3.v20221112-0806

Cannot complete the install because some dependencies are not satisfiable
  Software being installed: a.jre.javase 18.0.0
  Software being installed: Tabnine for Eclipse 0.1.8 (com.tabnine.eclipse.feature.feature.group 0.1.8)
  Cannot satisfy dependency:
    From: Tabnine-eclipse 0.1.8 (com.tabnine.eclipse 0.1.8)
    To: osgi.ee; (&(osgi.ee=JavaSE)(version=11))
  Cannot satisfy dependency:
    From: Tabnine for Eclipse 0.1.8 (com.tabnine.eclipse.feature.feature.group 0.1.8)
    To: org.eclipse.equinox.p2.iu; com.tabnine.eclipse [0.1.8,0.1.8]

After attempting to install I get the error;

 

Unable to read repository at https location  eclipse-update-site.tabnine.com/content.xml.

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target