Giter Club home page Giter Club logo

snippetpixie's Introduction

Project Status

Snippet Pixie is no longer being developed or maintained, please use Snippet Expander instead.

Snippet Expander is Snippet Pixie's successor, re-developed from scratch for better functionality, speed and stability.

You can export your snippets from Snippet Pixie and import them into Snippet Expander.


Icon

Snippet Pixie

Get it on AppCenter Get it from the Snap Store

Demo

Your little expandable text snippet helper.

Save your often used text snippets and then expand them whenever you type their abbreviation.

For example:- "spr`" expands to "Snippet Pixie rules!"

For non-accessible applications such as browsers and Electron apps, there's a shortcut (default is Ctrl+`) for opening a search window that pastes the selected snippet.

The Search and Paste window, opened with Ctrl+` (can be changed), is very convenient for quickly finding and pasting snippets, and shows the most recently used snippets first for quick access. Using Shift+Return or Shift+Click on an entry in the Search and Paste window will Shift+Ctrl+V paste, great for terminal emulators, vim etc.

Snippets can be imported and exported in a simple JSON format.

Supports placeholders:-

  • Date/Time: Insert the current or calculated date/time with configurable format.
  • Clipboard: Insert the text contents of the clipboard.
  • Snippets: Insert snippets in your snippets!
  • Cursor: Set where the cursor should end up after the snippet has expanded.

Snippet Pixie Edit Screen

Snippet Pixie Welcome Screen

Snippet Pixie Search and Paste Shortcut Window

Placeholders

All placeholders are delimited (wrapped) by $$, with the placeholder name starting with an @ symbol.

For example, today's date can be inserted with $$@date$$.

Some placeholders allow for extra arguments when : follows their name and that is followed by the argument. For example a format for a date, or the abbreviation for a snippet. Check the following descriptions for each placeholder for more details.

To use $$ in your snippet body, escape the second $ with a backslash like so: $\$.

@date

Quick Examples:

  • Today's date with system format: $$@date$$
  • Today's date with custom format: $$@date:%Y-%m-%d %H:%M:%S$$
  • Tomorrow's date with system format: $$@date@+1D$$
  • Date 2 weeks from today with custom format: $$@date@+2W:%x$$
  • Time 3 hours from now: $$@time@+3H$$

@time is an alias for @date, with one important difference, the default output if no format specified is the default time format (%X) rather than default date format (%x).

The optional format specified after : can take a format string as detailed in the GLib.DateTime.format function's docs.

The optional date calculation starts with an @ after the placeholder name, followed by a signed integer and unit. The unit types are as follows:

  • Y: Years
  • M: Months
  • W: Weeks
  • D: Days
  • h: Hours
  • m: Minutes
  • s: Seconds

You can apply more than one date calculation, for example +2h+30m adds 2 hours and 30 minutes to the current time.

You can use both positive (+) and negative calculations, for example -3D takes 3 days from the current date.

@clipboard

When $$@clipboard$$ is part of a snippet's body, when its abbreviation is expanded the current text contents of the clipboard will replace the placeholder.

@snippet

You can have up to three levels of embedded snippets with the @snippet placeholder.

The abbreviation for the snippet to be embedded is entered after :, for example $$@snippet:sigg;$$ expands the snippet with abbreviation sigg; in place of the placeholder.

@cursor

Adding $$@cursor$$ to a snippet's body will put the cursor in its place after expansion instead of at the end of the expanded text.

If $$@cursor$$ is entered more than once in a snippet's body or via snippet embedding, then the last occurrence of the cursor placeholder wins.

Known Issues

  • Auto-expansion only works on accessible applications, use the shortcut to open the search and paste window for other applications such as browsers and Electron based apps.
  • Auto-expansion does not work in terminals, but the shortcut method works with terminals that accept Ctrl+v for paste such as the elementary OS terminal.
  • The cursor placeholder is not supported when using the shortcut method rather than auto-expansion.

Roadmap

  • Automatically add to Startup apps
  • Export/Import snippets
  • Date/Time, clipboard, other snippets and cursor placeholders
  • Snippet search
  • Group snippets?
  • Undo/Redo of snippet edits
  • Right To Left (RTL) language support
  • Rich text?

Building, Testing, and Installation

You'll need the following dependencies to build:

  • meson
  • valac
  • appstream
  • desktop-file-utils
  • libatspi2.0-dev
  • libgee-0.8-dev
  • libglib2.0-dev
  • libgranite-dev
  • libgtk-3-dev
  • libibus-1.0-dev
  • libjson-glib-dev
  • libsqlite3-dev
  • libxtst-dev
  • libx11-dev

Run meson build to configure the build environment and then change to the build directory and run ninja test to build and run automated tests

meson build --prefix=/usr 
cd build
ninja test

There's also a convenient 01-setup.sh script that should need only be run once to set up the build directory.

02-build-bin.sh is a neat way of building build/com.github.bytepixie.snippetpixie after changing the source while keeping the translation templates and language files up to date with any changes and running the automated tests.

To install, use ninja install, then execute with com.github.bytepixie.snippetpixie

sudo ninja install
com.github.bytepixie.snippetpixie

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.