Code generation and code search for Python and Javascript.

Overview

Codeon

Code generation and code search for Python and Javascript.

Similar to GitHub Copilot with one major difference: Code search is leveraged to make up for smaller models and less data. The generation model makes use of search results along with code context to generate contextual code. Moreover, code search results from all over GitHub are displayed in a seperate file along with the exact url of the source code.

VSCode extention:

https://marketplace.visualstudio.com/items?itemName=samipdahal.codeon

Code Generation:

Currently, GPT-Neo-125M model is used for generation.

Training code is under 'gen' directory.

Demo Video Dark

Demo Video Light

Code Search:

Codebert-base model is used for code search, along with nearest neighbor approximation algorithm ScaNN. CodeSearchNet dataset is used as codebase to search over.

Code to finetune the model and setup ScaNN is under 'search' directory.

Demo Video Js

Demo Video Py

Usage:

Python:

#YOUR_QUERY.

Javascript:

//YOUR_QUERY.

(Note the dot ‘.’ at the end.)

Example:

Python:

# concat two dicts.

Javascript:

// merge two arrays.

Notes:

  1. The extension only supports python and javascript as of now and won't run on files not ending with '.py' or '.js'

Requirements

VSCode 1.59.0 or up.

Feedback/Contact:

If you spot any mistakes or any possible improvements, please feel free to let me know and contributions are welcome!

Form or [email protected]

Some of the code are adapted from following repositories:

  1. CodeSearchNet
  2. CodeXGLUE
  3. APPS

You might also like...
Programmatically edit text files with Python. Useful for source to source transformations.

massedit formerly known as Python Mass Editor Implements a python mass editor to process text files using Python code. The modification(s) is (are) sh

Tool for translation type comments to type annotations in Python

com2ann Tool for translation of type comments to type annotations in Python. The tool requires Python 3.8 to run. But the supported target code versio

Bottom-up approach to refactoring in python

Introduction RedBaron is a python library and tool powerful enough to be used into IPython solely that intent to make the process of writing code that

AST based refactoring tool for Python.

breakfast AST based refactoring tool. (Very early days, not usable yet.) Why 'breakfast'? I don't know about the most important, but it's a good meal.

Refactoring Python Applications for Simplicity

Python Refactoring Refactoring Python Applications for Simplicity. You can open and read project files or use this summary 👇 Concatenate String my_st

Leap is an experimental package written to enable the utilization of C-like goto statements in Python functions
Leap is an experimental package written to enable the utilization of C-like goto statements in Python functions

Leap is an experimental package written to enable the utilization of C-like goto statements in Python functions

A tool (and pre-commit hook) to automatically add trailing commas to calls and literals.

add-trailing-comma A tool (and pre-commit hook) to automatically add trailing commas to calls and literals. Installation pip install add-trailing-comm

Removes unused imports and unused variables as reported by pyflakes

autoflake Introduction autoflake removes unused imports and unused variables from Python code. It makes use of pyflakes to do this. By default, autofl

A tool (and pre-commit hook) to automatically upgrade syntax for newer versions of the language.

pyupgrade A tool (and pre-commit hook) to automatically upgrade syntax for newer versions of the language. Installation pip install pyupgrade As a pre

Comments
  • Question on license

    Question on license

    Hi! Quick question on this repository's licensing: if I'm interesting in making edits or using this codebase as a starting point for some of my own potential extension development, what's the licensing for this source code?

    opened by addictgamer 0
  • Codeon not working

    Codeon not working

    anytime I try to run the codeon extension.it doesn't run instead the auto-complete of the editor will show up I don't know why. but, I'm asking why is this happening

    opened by anichinedu18 5
Owner
null
Turn your C++/Java code into a Python-like format for extra style points and to make everyone hates you

Turn your C++/Java code into a Python-like format for extra style points and to make everyone hates you

Tô Đức (Watson) 4 Feb 7, 2022
Find dead Python code

Vulture - Find dead code Vulture finds unused code in Python programs. This is useful for cleaning up and finding errors in large code bases. If you r

Jendrik Seipp 2.4k Dec 27, 2022
Safe code refactoring for modern Python.

Safe code refactoring for modern Python projects. Overview Bowler is a refactoring tool for manipulating Python at the syntax tree level. It enables s

Facebook Incubator 1.4k Jan 4, 2023
Removes commented-out code from Python files

eradicate eradicate removes commented-out code from Python files. Introduction With modern revision control available, there is no reason to save comm

Steven Myint 146 Dec 13, 2022
A library that modifies python source code to conform to pep8.

Pep8ify: Clean your code with ease Pep8ify is a library that modifies python source code to conform to pep8. Installation This library currently works

Steve Pulec 117 Jan 3, 2023
A simple Python bytecode framework in pure Python

A simple Python bytecode framework in pure Python

null 3 Jan 23, 2022
Simple, hassle-free, dependency-free, AST based source code refactoring toolkit.

refactor is an end-to-end refactoring framework that is built on top of the 'simple but effective refactorings' assumption. It is much easier to write a simple script with it rather than trying to figure out what sort of a regex you need in order to replace a pattern (if it is even matchable with regexes).

Batuhan Taskaya 385 Jan 6, 2023
Awesome autocompletion, static analysis and refactoring library for python

Jedi - an awesome autocompletion, static analysis and refactoring library for Python Jedi is a static analysis tool for Python that is typically used

Dave Halter 5.3k Dec 29, 2022
a python refactoring library

rope, a python refactoring library ... Overview Rope is a python refactoring library. Notes Nick Smith <[email protected]> takes over maintaining rope

null 1.5k Dec 30, 2022
A system for Python that generates static type annotations by collecting runtime types

MonkeyType MonkeyType collects runtime types of function arguments and return values, and can automatically generate stub files or even add draft type

Instagram 4.1k Dec 28, 2022