Skip to content

csut017/vsInk.2019

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vsInk

Introduction

vsInk is a Visual Studio extension that allows adding freeform digital ink to a text document.

Current Functionality

The current version of vsInk provides the following functionality:

  • Draw digital ink in the code editor (any language that uses the standard code editor)
  • Erase digital ink
  • Save and load digital ink
  • Attach (anchor) ink to a location in the text document
  • Change the appearance (refit) the ink in response to changes in the underlying document

Installation Instructions

The current release can be downloaded from https://github.com/csut017/vsInk.2019/releases. vsInk.vsix is a Visual Studio installation package, when it has been downloaded, open it and follow the instructions to install vsInk to a local version of Visual Studio.

The toolbar for vsInk needs to be made visible after it has been installed. To do this, start Visual Studio, then right-click in the toolbar space and select vsInk from the dropdown menu. The toolbar can then be moved into the desired location.

Note: vsInk has only been tested in Visual Studio 2019.

The Toolbar

Most of the functionality in vsInk is controlled via the toolbar:

To add ink to a document, Enable vsInk and ensure drawing mode has been selected. The mouse pointer will then change to a dot, drawing with a mouse (hold down the left button), pen or finger will add ink to the document

Ink can be erased by selecting erase mode and then 'drawing' over the ink to be erased.

Saving and loading will happen automatically when the document is saved or loaded in Visual Studio (e.g. by pressing Ctrl-S).

Note: ink is only visible when vsInk is enabled. Enabling vsInk adds a small gray textbox to the bottom-right of the enditor containing the word vsInk.

How It Works

vsInk has a two-step process for adding and drawing (rendering) digital ink annotations. In the first step, the ink is captured and associated with a line in the document (anchoring). This step also converts the ink into a format the vsInk can use. The second step is responsible for rendering the annotation, including any refitting needed to handle changes to the underlying document. The first step is only executed once (when the ink is added), the second step is executed every time the display needs to refresh.

A renderer is responsible for refitting the annotation in response to any changes in the underlying text document. Rather than modifying the original annotation, it draws (renders) a new annotation based on the original. The included renderers are:

  • Single stroke
    • Single Point: Draws the original annotation, unmodified. Anchored to the top line of the original annotation.
    • Double Point Stretch: Stretches the annotation so it fits between the original top and bottom lines.
  • Segmented
    • Simple Line Split: Splits the annotation per line.
    • Line Split with Joiner: Splits the annotation per line and adds a vertical joining line between the endpoints. The current renderer can be changed by using the configuration settings.

History

The original version of vsInk is based on research work by Craig J. Sutherland at the University of Auckland. The current version is a stripped down version with the core functionality.

The following references provide more details on the research versions of vsInk:

  • Sutherland, C. J. (2017). An Investigation into Freeform, Dynamic, Digital Ink Annotation for Program Code (Doctoral dissertation, ResearchSpace@ Auckland).
  • Sutherland, C. J., Luxton-Reilly, A., & Plimmer, B. (2016, September). Who changed my annotation? An investigation into refitting freeform ink annotations. In 2016 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (pp. 12-20). IEEE.
  • Sutherland, C. J., & Plimmer, B. (2013, January). vsInk: Integrating digital ink with program code in Visual Studio. In Proceedings of the Fourteenth Australasian User Interface Conference-Volume 139 (pp. 13-22). Australian Computer Society, Inc.

Note: the version of vsInk in GitHub does not contain all the functionality mentioned in the references. The missing functionality may be added in future work.

About

VS.2019 extension for adding freeform digital ink to the code editor.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages