Using in JetBrains IDEs
AI that understands your codebase in JetBrains IDEs (e.g., PyCharm)
Last updated
AI that understands your codebase in JetBrains IDEs (e.g., PyCharm)
Last updated
Bito Inc. (c) 2024
This feature is only available for our 10X Developer Plan. Visit the pricing page or billing documentation to learn more about our paid plans.
Open your project’s folder using a JetBrains IDE. For this guide, we are using PyCharm.
Bito uses AI to create an index of your project’s codebase. It enables Bito to understand the code and provide relevant answers. There are three ways to start the indexing process:
When you open a new project, a popup box will appear through which Bito asks you whether you want to enable indexing of this project or not. Click on the “Enable” button to start the indexing process. You can also skip this step by clicking the “Maybe later” button. You can always index the project later if you want.
In the bottom-left of Bito plug-in pane, hover your mouse cursor over this icon. You can also enable indexing from here by clicking on the “Click to enable it” text.
Another option is to open the "Manage Repos" tab by clicking the laptop icon in the top-right corner of the Bito plugin pane.
From here you can start the indexing process by clicking on the “Start Indexing” button given in front of your current project. Here, you will also see the total indexable size of the repository. Read more about What is Indexable Size?
Bito usually takes around 12 minutes per each 10MB of code to understand your repo.
Bito will still work correctly if you don’t enable indexing of your project. However, in that case, Bito will only be able to provide general answers.
If you have previously indexed some projects using Bito then they will show in the “Other projects” section.
Index building is aborted if the user logs out or if the user's subscription is canceled (downgraded from a paid plan to a free plan).
Let’s start the indexing process by using any of the above-mentioned methods.
The status will now be updated to “Indexing in progress...” instead of “Not Indexed”. You will also see the real-time indexing progress for the current folder, based on the number of files indexed.
In case you close the JetBrains IDE (e.g., PyCharm) while the indexing is in progress then don’t worry. The indexing will be paused and will automatically continue from where it left off when you reopen the IDE. Currently, the indexing will resume 5-10 minutes after reopening the IDE.
The progress indicator for the other folders is updated every 5 minutes.
Once the indexing is complete, the status will be updated from “Indexing in progress...” to “Indexed”, and will look like this.
Now you can ask any question regarding your codebase by adding the keyword "my code" to your AI requests in the Bito chatbox. Bito is ready to answer them!
Example: in my code explain the file apiUser.js
Additional keywords for various languages are listed on the Available Keywords page. Also, here are some Example Questions.
In case you ever want to delete an index then you can do that by clicking on this three dots button and then clicking the “Delete” button.
Index deletion is allowed even if the index is in progress or in a paused state.
A warning popup box will open in the bottom of Bito’s plugin pane. You can either click on the “Delete” button to delete the project’s index from your system or click on the “Cancel” button to go back.
For the sake of this tutorial, we’ve created a clone of popular game “Wordle” using Python.
Here’s how it looks:
We have stored the list of words in files that are inside the “word_files” folder. A word is selected from these files randomly at the start of the game that the player has to guess.
Let’s ask Bito to understand my code and briefly write about what this game is all about and how to play it
Here is the link to conversation with Bito AI.
Bito correctly described the game by just looking at its source code.
Our game (PyWordle) is working fine, but there is no count down timer to make it a bit more challenging.
So, let’s ask Bito to add this feature.
Here’s the question I used:
suggest code for main.py "class PyWordle" to add a count down timer for this game in my code. I'm using "self" in functions and variable names, so suggest the code accordingly. The player will lose the game if the time runs out. Set the time limit to 2 minutes (format like 02:00). The timer will start when the game starts. Also reset the timer when the game restarts, such as when player closes the "you won / you lost" popup. Display this real-time count down timer on the right-side of where the player score is displayed. Use the similar design as the player score UI. Also tell me exactly where to add your code. Make sure all of this functionality is working.
Bito suggested the code which looks good. But, it was a bit incomplete and needs some improvements. So, I further asked a series of questions to Bito (one-by-one) to fix the remaining issues.
Here’s a link to the conversation with Bito AI.
After adding the code suggested by Bito, here's how the PyWordle game looks now. As you can see the countdown timer is accurately added where we want it to be added.
You can download the source code for this PyWordle game from GitHub.