Saturday, 15 March 2014

Planned changes to CodeSnip's handling of the Code Snippets Database - comments please

I'm considering a major change to the way CodeSnip handles the online Code Snippets Database and am seeking comments, either here or on CodeSnip's Google+ page.

First, a little background

CodeSnip v1 was just a read-only viewer for the online database. It simply displayed a searchable snapshot of the database. Users could update the snapshot from time to time as the database changed.

Users wanted the ability to store their own snippets alongside those from the database. That was tagged on in CodeSnip 2 and developed in versions 3 and 4, but underneath its still rather a hack. (User snippets are still stored separately the imported database code - the two even use different data formats).

The program needs, and is getting, a major overhaul in an attempt to cure its split peronality.

Proposed changes in CodeSnip 5

  • There will be just a single code bank where users will store all snippets, both user-created and imported.
  • Instead of treating the online database a separate entity users will be able to import a some, none or all snippets from the database into their code bank. The ability to import only a selection of the database should help keep the size of the code bank manageable: there are currently over 600 snippets in the database. My thinking is that very few people want all of them!
  • Snippets will also be able to be imported from other sources, e.g. other users or the SWAG database. This means that users will be able to share snippets and keep them in synch if they wish†.
  • All snippets will now be editable.
  • The rigid system of categorisation of snippets will be scrapped and replaced with a flexible system of user-defined tags, where each snippet can be grouped under one or more tags (a bit like in GMail and GistBox).
  • The code bank will now be friendlier towards non-Pascal snippets, with a new sytax highlighted editor etc. However, Pascal snippets will continue to be the main focus with unit generation and test compilation etc. still available.

† NOTE: Over a year ago I had a request to allow users to share their snippets via a web space. While I would like to include that it's proving harder to implement than I first thought, so it may have to slip to version 6. Unless there's demand of course.

My questions

Before I go too much further with development I'd like to get some feedback from you about these proposed changes. In particular:

  • What do you think of them: useful or not?
  • Anything else / different you'd like to see?
  • Should CodeSnip become mainly a code bank for your own code with links to the online database and other sources, or should it treat the online database as special as now?
  • Is there any demand for an online code sharing repository accessible from CodeSnip? What what it do that can't be done with the likes of Gists on Github.

I'm still hoping (rather than planning!) to get a preview release out before the end of Q2 this year and hope to start the next stage in development around the end of March.