rescribe-dev / rescribe

Code autocomplete
https://rescribe.dev
Other
3 stars 0 forks source link
reScribe Logo

a better way to search code

Web | Docs | Status | NPM | AUR

License

Note: All source files are protected by the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license, included in this directory. Users of this source code (located in this current directory and any sub-directories) may not violate the terms of said license.

Netlify Status Netlify Status

Note: Netlify "failed" means either deployment failed or no applicable changes found in last commit.

codecov

Upload Docs Upload Website Upload Api Upload Antlr Upload NLP Deployment Run NLP Dataprocess Language Run NLP Dataprocess Library Run NLP Training Bert Upload Prerender Upload Update Sitemap Upload Update Currencies Build Dataset Libraries Java Upload Fast Upload CLI Upload vscode Upload Github Upload Emails Frontend Origin Request Frontend Viewer Request Frontend Viewer Response Docs Origin Request Docs Viewer Response Test Code

Buy Me A Coffee

things we need to do for java specifically right now for a one language demo :)

  1. go through search line by line, make sure it's calling nlp correctly and getting good outputs
    • note - this requires updating the parameters for elasticsearch & the overall query structure (a little)
  2. go page by page and fix all the styling stuff in web. List at the bottom of readme. If there are extraneous requests, clean it up using field resolvers
  3. test full search stack, index a lot of files
    • add limit to number of characters in file for parsing (we don't care about files that are super big because that'll break search)

how to do this

http://54.144.74.130:8000

things that we want to do

ensted is slow becuase we eprform multi match over each field and theyre all trigrams so it ends up beign a lot fo computation we may need to do optimizaiton of elastic past what the out of box functionality is

apprently you can convert from h5 to ast (we use h5 for antlr4 currently)

https://github.com/tree-sitter/tree-sitter
https://github.com/github/semantic#technology-and-architecture

Elatic nested fields are: comments variables imports functions classes each nested field ahs a parent as laid out in nested obejct [id parent and location] in elastic they are handled differently this is how we highlight the individual matching object instead of the whole file

think about optimizing the elastic fields for computation time instead of disk footprint possibly more than one search type (classe, functions, libraries, etc...)

Everything will still be stored in a flat fashion in the database, just with graphql we will simulate making it a phat object for ease of query

This is what flat looks like: { repostiory this id array of ids for children

    file 
        this id
        array of ids for each type of child 
        parent id 

    ...

}

This is what phat looks like: repository -> [folder] -> [file] -> [class] -> [class functions] -> [standalone funcitons] -> [imports] -> package path

A field resolver is a block of code which runs when you query for a certain field -> basically lazy evaluation of a field in your data object so we want to write lazy resolvers for each layer of this query

frontload the keyword search with keywords extracted from file documentaitno and definition names and use that to filter out the files along with public access need a compressed representation of data +

Websites that need to be checked. Most important to least important

Login Search Repository Account Profile Projects Repositories About Explore

Bugs When indexing with the CLI and making a new repository, it will throw an error that the repo does not exist and then if you run it again the repo will show up and work as expected SOEMTIMES seems like a race condition Argument Validation Error : what is it?