Skip to content

LefterisXris/CodeTour

Repository files navigation

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