DevBoon is Visual Studio Code extension, that provides a query engine inorder to help python and java developers so as to decrease development time. The current version only has 4 queries namely Search Query, Error Query, Snippet Query, Completion Query
Search Query
Error Query
Snippet Query
Completion Query
This extension can be used by developers in searching some query within vscode itself so that user doesn't need to switch to browser by providing Youtube videos and StackOverFlow posts based on query input.
This extension can be used by python and java developers whenever some compilation or runtime error occurs on vscode terminal while running python or java file.
This extension can be used by python and java developers inorder to see a useful and correct code snippet based on input query.
This extension can be used by python and java developers inorder to complete incomplete code snippets or functions.
It recommends relevant stackoverflow posts based on input query within vscode.
It recommends relevant youtube videos based on input query within vscode.
Please note that,In order to run search query ,which is provided by this extension,make sure dev-boon extension is activated by pressing (Ctrl+Shift+A).
Users Can search for their Query directly on our extension’s search box by pressing (Ctrl+Shift+Q). Then user will be given an option ( StackOverFlow or YouTube).
Users can also search for the query selected(hovered) on the editor by pressing (Ctrl+Shift+S) for StackOverFlow posts or (Ctrl+Shift+Y) for YouTube videos.
It automatically detects for what type of programming language,posts and videos should be recommended.
It automatically detects and extracts error message occured in vscode terminal.
It recommends relevant stackoverflow posts based on extracted query from vscode terminal within vscode.
It recommends relevant youtube videos based on extracted query from vscode terminal within vscode.
This query only detects runtime and compilation errors of python and java language.
Please note that,In order to run error query ,which is provided by this extension,make sure dev-boon extension is activated by pressing (Ctrl+Shift+A).
Users can run this query directly on our extension’s search box by pressing (Ctrl+Shift+E). Then user will be given an option ( StackOverFlow or YouTube).
It automatically detects for what type of programming language,code snippets should be recommended.
It uses a model called COCOMO model which is a software sizing algorithm inorder to rank code snippets based on time and effort.
It recommends relevant stackoverflow posts based on extracted query from vscode editor within vscode and automatically paste the most relevant code snippets in vscode editor where the cursor is currently positioned ( along with the link for that code as comment ).
It recommends relevant geeksforgeeks posts based on extracted query from vscode editor within vscode and automatically paste the most relevant code snippets in vscode editor where the cursor is currently positioned ( along with the link for that code as comment ).
It can simultaneously run two or more queries at the same time using threading concept.
This query only generates code snippets of python and java language.
Please note that,In order to run snippet query ,which is provided by this extension,make sure dev-boon extension is activated by pressing (Ctrl+Shift+A).
Users can run this query directly on our extension’s search box by simply writing an English sentence enclosed in between ? and ? pressing (Ctrl+Shift+N). Then user will be given an option ( StackOverFlow or geeksforgeeks).
It automatically detects for what type of programming language,code snippets should be recommended.
During fine-tuning of our model,our model uses a concept called Transfer Learning in NLP.
It uses a model called gpt2-large pretrained model from transformers library inorder to automatically generate a complete code snippet from incomplete code snippet.
The model has been designed as a sequential( different layers) model in such a way that it can memorize or summarize rules or patterns of statistically commonly-used codes by the real programmers.
Masked Self Attention mechanism has been used while fine-tuning of model.In this mechanism,all 2-D vectors which point to different locations have been seen differently by machine and thus machine can identify them differently.After that, dot multiplication happens between queries and keys which indicates how much attention a token should pay to another because the dot multiplication.result is larger if two vectors have more similar pointing directions, and vice versa.
In our model,at each layer ,Masked Self Attention mechanism is used.
This query only generates code snippets of python and java language.
Please note that,In order to run completion query ,which is provided by this extension,make sure dev-boon extension is activated by pressing (Ctrl+Shift+A).
Users can run completion query for the selected query(hovered) on the editor by pressing (Ctrl+Shift+W).
Inorder to get started with Dev Boon extension,clone git repository of dev-boon extension by executing command: git clone https://github.com/chirag2706/dev-boon
Now,execute command cd dev-boon
Now,execute command npm install
.This command will install all necessary npm packages in your computer.
Now execute command pip3 install -r requirements.txt
.This command will install all necessary python packages which are required by flask server.
Now press (Fn + F5)
.This command will run dev-boon extension in extension development host.
After extension gets run successfully,Now execute command python3 ./src/backend/main.py
.This command will run flask server in background.Wait for 20-30 secs as deployed model takes time to get loaded.
Now,everything is setup and you can run each and every feature of Dev Boon extension.
Click on DevBoon to download the extension from VS Code marketplace. Now, it will prompt you to install the extension in VS Code
Otherwise, In visual studio code, click (ctrl+shift+x) to open Extensions tab. Now search for dev-boon and install it.But ,one need to run flask server on local computer by following steps described in above.
Download ExtensionSource code of the extension can be found here - DevBoon
main.py file with path ./src/backend/main.py
interact.py file with path ./src/backend/interact.py
convert.py file with path ./src/backend/completionQuery/dataset/convert.py
data.py file with path ./src/backend/completionQuery/data.py
model.py file with path ./src/backend/completionQuery/model.py
train.py file with path ./src/backend/completionQuery/train.py
trainer.py file with path ./src/backend/completionQuery/trainer.py
evaluate.py file with path ./src/backend/completionQuery/evaluate.py
AnswerSummarizer.py file with path ./src/backend/ErrorSearchQuery/AnswerSummarizer.py
CommentClassifier.py file with path ./src/backend/ErrorSearchQuery/CommentClassifier.py
StackOverFLowPosts.py file with path ./src/backend/ErrorSearchQuery/StackOverFlowPosts.py
All typescript files are here.
Chirag Gupta, Sripranav Mannepalli, Sridhar Chimalakonda
Software Engineering Lab
Dept. of Computer Science & Engineering
Indian Institute of Technology Tirupati, Tirupati, India.
cs18b006@iittp.ac.in, cs18b036@iittp.ac.in, ch@iittp.ac.in