Giter Site home page Giter Site logo

copilot-clone's Introduction

Captain Stack

Captain Stack — Code suggestion for VSCode

This feature is somewhat similar to Github Copilot's code suggestion. But instead of using AI, it sends your search query to Google, then retrieves StackOverflow answers and autocompletes them for you.

Have questions? Join our Discord server Discord Chat

Demo Video

Table of contents:

  1. Installation
  2. Play with Captain Stack
  3. Captain Stack configurations
  4. Notes
  5. Changelog
  6. Troubleshooting
  7. Contributors

Note: ⚠️ This extension uses a proposed API (inline-completion) and can only be used for extension development in VSCode Insider release. It's not yet available on VSCode


1. Installation

Check out the installation video: https://youtu.be/MD-kzsF0Scg

Before installation, make sure you have VSCode Insider. You'll be using this version. To install and starting Captain Stack:

  1. Download this repository to your local machine. Unzip and open it on VSCode Insider (make sure the root directory is the same as package.json file)
  2. (optional) Run npm install in the terminal to install dependencies. A postinstall script would download the latest version of vscode.proposed.d.ts
  3. Run the Run Extension target in the Debug View. Or from the top menu, choose Run > Start Debugging.

This will:

  • Start a task npm: watch to compile the code and watch for changes
  • Open a new VSCode window (you should use the extension here)

Note: When you make changes, you should refresh that window to apply changes. To refresh, open Command Palette (Command+Shift+P on MacOS, or Ctrl+Shift+P on Windows), then choose "Developer: Reload window"


2. Play with Captain Stack

To trigger inline completion, you'll need to type //find {your keyword}. (start with //find, end with a dot .)

For example

//find binary search in javascript.

Make sure that showInlineCompletions is enabled in your settings!

"editor.inlineSuggest.enabled": true

3. Captain Stack configurations

There are a few configurations available for Captain Stack. To open the configurationview:

  1. Click on the Cog icon at bottom left
  2. Choose Settings
  3. In the Search settings search box, enter "Captain Stack"

Available settings

  • sites allows to enable or disable a source site. By the default, only Stackoverflow is enabled.

  • maxResults is the maximum number of results. It's 12 by default. Note: Since Captain Stack will fetch all the results from a page, the final number of results could be more than maxResults


4. Notes

  • There are more code sources that should be considered besides StackOverflow
  • If you see unsupported error message, ignore it

Limits:

  • The extension uses fetch-node to get page content, and I don't know if there is any fetching limit
  • The extension uses querySelector to extract code and other info. There is a risk of either StackOverflow or Google changing its querySelector

If those factor became problems, the extension could be using their official APIs instead.


5. Changelog

  • Aug 15, 2021 - Added sites and maxResults configurations
  • Jul 31, 2021 — Create code extracting abstracting to add more code sources
  • Jul 14, 2021 - Adapted to VS Code Insiders Release Version 1.59
  • Jul 01, 2021 - Added snippet source (thanks for mechero's suggestion)
  • Jun 30, 2021 - Publish the initial version

6. Troubleshooting

Common reasons why you can't run Captain Stack:

  • You're not using VSCode Insider. It can be downloaded here
  • When Run debugger, it shows different target options (nodejs, edge, etc.). Your VSCode root directly might be incorrect. Make sure your root directory is the same with the package.json file.
  • Error message module "node-fetch" not found.... You need to run npm install
  • canvas.node was compiled against a different Node.js. Try to remove canvas (npm uninstall canvas)

Still not running?

  • You haven't enabled the inline completion feature. To enable, set VSCode config "editor.inlineSuggest.enabled": true
  • It might conflict with some other plugins. You might need to disable plugins to check

If none of the above works, open a thread or join our Discord channel and have a chat.


7. Contributors

The plugins is available, thanks to:

Feel free to open a thread for feedback or discussion. And have fun!


Love Captain Stack? Check out other things I do:

copilot-clone's People

Contributors

hieunc229 avatar kek5chen avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.