Giter Site home page Giter Site logo

codetour's Introduction

CodeTour an IntelliJ Plugin

CodeTour is an IntelliJ Plugin developed in the context of my MSc Thesis. University of Macedonia, Greece.

Original Name: CodeTrailer

โ— Renamed to CodeTour as a similar VSCode GREAT plugin already exist (https://github.com/microsoft/codetour), and thus this one would be compatible with it and would try to provide more enhanced experience.


๐Ÿ“œ Thesis Info ๐ŸŽ“

Code Tour UoM - LefterisXris logo

Thesis tile: Code Reading Challenges & Best Practices

Master Thesis, MSc Program: Computer Science and Technology, University of Macedonia

Thesis Goals

  1. to find out, what makes Code reading so challenging, especially when there is no one for direct assistance,
  2. to identify some Best Practices that may improve Code reading and understanding process,
  3. to provide a tool, which could be standing as a Virtual guide for a developer, providing navigation and demonstration of important code parts, as instructed/recorded by a Project member.

The whole Thesis (including research and development) is being managed on Github, and more information can be found on the repository: https://github.com/LefterisXris/CodeTour. The final results would be announced on the repo, so keep an eye on that, in case you are interested to check them.

Management

The following projects have been created for managing the whole Thesis (including research and development):

๐Ÿ“ข Participate on the research, via the Thesis survey (SurveySparrow): Code Reading Challenges & Best Practices


๐Ÿ”ง Plugin Info ๐Ÿ”Œ

Build Version Downloads Rating

Vision

๐Ÿ‘‰ Vision: A tool that stands as a Virtual guide for a new member able to navigate him throughout the code, demonstrating important code parts or features, based on the instructions (configuration) that an experienced project member has already provided. Think of it, like a tutorial-wizard that presents the code with extra info, comments, images and maybe voice as well. Adding instructions is as simple as adding a new breakpoint, and the tool is able to auto-adjust, so that on code changes, the instructions (steps) remain valid. Instructions can also be under version control, for maintainability.

CodeTour is an Intellij plugin, which allows you to record and play back guided walkthroughs of your codebases. It's like a table of contents, that can make it easier to onboard (or re-board!) to a new project/feature area, visualize bug reports, or understand the context of a code review/PR change. A Code Tour is simply a series of interactive Steps, each of which are associated with a specific file/line, and include a description of the respective code. This allows developers to clone a repo, and then immediately start learning it, without needing to refer to rely on help from others. Tours can be version controlled into a repo, to enable sharing with other contributors.

To use the Code Tour tool window, select View > Tool Windows > Tours Navigation.

Features:

  • Create new Tours and Steps easily through Editor's Gutter context menu (similar to adding breakpoints) Right Click on gutter > Add Tour Step
  • Markdown and HTML support for Step's description
  • Customizable (location, size, font etc) popup window for Step's description
  • Tree-like view of Tours and their Steps on a Tool Window
  • Code Navigation with single click (on Steps available on Tours Tree)
  • Shortcuts for Navigating on Previous (Ctrl+Alt+Q) and Next (Ctrl+ Alt+W) Steps

Ideal for:

  • Code Reviews -- e.g. Walkthrough the context of a Pull Request
  • Feature documentation -- e.g. How a feature's workflow is depicted on the code
  • Visualize bugs -- e.g. follow a scenario that led to an error/bug/issue
  • Onboard or re-board to a project -- Start learning the project through the interactive Tour Steps, without relying on help from others

Feel free to suggest features, request changes and report issues on CodeTour repo https://github.com/LefterisXris/CodeTour/discussions

Installation

  • Using IDE built-in plugin system:

    Settings/Preferences > Plugins > Marketplace > Search for "CodeTour" > Install Plugin

  • Manually:

    Download the latest release and install it manually using Settings/Preferences > Plugins > โš™๏ธ > Install plugin from disk...

Examples and Best Practices

TODO! Examples and Best Practices will soon be provided

Demos

Open Tool Window

CodeTour Demo

Create New Tour

CodeTour Demo

Create New Step

CodeTour Demo

Step Context Menu

CodeTour Demo

Navigation

CodeTour Demo

Plugin Main

CodeTour Demo

Tools Menu & Shortcuts

CodeTour Demo

Tour Context Menu

CodeTour Demo

Step Context Menu

CodeTour Demo

Step Editor

CodeTour Demo

Conventions

Type of Commits

  • feat: A new feature adding to a particular application
  • fix: A bug fix
  • style: Feature and updates related to styling
  • refactor: Refactoring a specific section of the codebase
  • test: Everything related to testing
  • docs: Everything related to documentation
  • chore: Regular code maintenance

codetour's People

Contributors

lefterisxris avatar github-actions[bot] avatar actions-user avatar noyloy 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.