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.
Master Thesis, MSc Program: Computer Science and Technology, University of Macedonia
- to find out, what makes Code reading so challenging, especially when there is no one for direct assistance,
- to identify some Best Practices that may improve Code reading and understanding process,
- 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.
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
👉 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
-
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...
TODO! Examples and Best Practices will soon be provided
feat
: A new feature adding to a particular applicationfix
: A bug fixstyle
: Feature and updates related to stylingrefactor
: Refactoring a specific section of the codebasetest
: Everything related to testingdocs
: Everything related to documentationchore
: Regular code maintenance