[x]it! support for working with todo and check list files in Sublime Text

Overview

[x]it! for Sublime Text

This Sublime Package provides syntax-highlighting, shortcuts, and auto-completions for [x]it! files.

[x]it! demo

Features

  • Syntax highlighting
  • Shortcut commands for toggling the item status
  • Smart completions for due dates
    • Type e.g. 5w and have auto-complete resolve it to the date in 5 weeks from now. Works with d (days), w (weeks), m (months), and y (years), and any number prefix.
  • Some sensible default settings (e.g. indentation style)

Configuration

Keybindings for Commands

The following commands are available for you to put into your Default.sublime-keymap file. The key combination is up to you, of course.

[
	// Toggle checkbox status of the item.
	// It cycles through the statuses given in the
	// `xit_toggle` setting.
	{ "keys": ["ctrl+shift+t"], "command": "xit_toggle" },

	// Set item status to checked [x]
	{ "keys": ["ctrl+shift+x"], "command": "xit_check" },
	
	// Set item status to open [ ]
	{ "keys": ["ctrl+shift+o"], "command": "xit_open" },

	// Set item status to ongoing [@]
	{ "keys": ["ctrl+shift+a"], "command": "xit_ongoing" },

	// Set item status to obsolete [~]
	{ "keys": ["ctrl+shift+n"], "command": "xit_obsolete" },
]

Settings (Syntax Specific)

The following settings can be overriden via your syntax-specific xit.sublime-settings file. The values shown below are the default ones.

{
	// Auto-save after toggling checkboxes (via the commands `xit_check`, etc.).
	"xit_auto_save": true,

	// The checkbox statuses that the `xit_toggle` command
	// should cycle through.
	"xit_toggle": ["[ ]", "[x]"],
}

Syntax Highlighting / Colour overrides

The pre-defined syntax highlighting should look meaningful in most available colour schemes.

For [x]it! specific customisations or fixes, you can specify the following colour overrides:

  • markup.other.title.xit For the item group title
  • markup.other.checkbox.open.xit For an open checkbox: [ ]
  • markup.other.checkbox.checked.xit For a checked checkbox: [x]
  • markup.other.checkbox.ongoing.xit For an ongoing checkbox: [@]
  • markup.other.checkbox.obsolete.xit For an obsolete checkbox: [~]
  • markup.other.priority.exclamation.xit For the exclamation mark of the priority: !
  • markup.other.priority.dot.xit For the dot of the priority: .
  • markup.other.description.xit For the item description
  • markup.other.due_date.xit For the due date within the description: -> 2022-03-27
  • markup.other.tag.name.xit For a tag: #example
  • markup.other.tag.value.xit For the value of a tag: #example=value

Additionally, you can reference the following meta scopes to make adjustments based on the item status:

  • meta.item.status.open.xit
  • meta.item.status.checked.xit
  • meta.item.status.ongoing.xit
  • meta.item.status.obsolete.xit

Please also see here for a complete colouring example based on a dark scheme.

You can also configure Sublime to always use a specific colour scheme with [x]it!. This is especially useful if the default colours don’t work out in your regular colour scheme. You can specify this in your syntax-specific xit.sublime-settings file:

{
	// Always use the Monokai scheme for [x]it!
	"color_scheme": "Monokai.sublime-color-scheme"
}
Comments
  • Macros in `v1.0.0` don’t work

    Macros in `v1.0.0` don’t work

    This is reproducible installing via Git AND package control (it's LIVE 🎉 btw).

    When I enter a .xit file, if I try to start a checkbox (such as typing "[" to a new xit file), it gives the error "Unable to open res://Packages/xit/macros/Insert Open Checkbox.sublime-macro".

    opened by ryanolsonx 4
  • Add command for toggling checkbox

    Add command for toggling checkbox

    Resolves https://github.com/jotaen/xit-sublime/issues/4.

    Summary

    Add new command xit_toggle that toggles the status of a checkbox. By default, it toggles between [ ] and [x], but the sequence can be customised via the xit_toggle setting.

    opened by jotaen 3
  • Modfied the due date regex

    Modfied the due date regex

    Hi!

    I have played with xit! for Sublime a bit, and discovered that the due dates had no syntax support for Q1/Q2/Q3/Q4 yet. I have taken the liberty to add that.

    While I was taking a stab at the regex, I also made leading zeros optional, so a date like 2022-5-1 would be simply read as 2022-05-01. (Not sure if this actually violates the specs, but I think it's convenient.)

    I also added some sanity checks: Months must be 1-12, days 1-31, week numbers 1-53, quarters 1-4. This should catch most invalid dates, if not all of them. The limit I placed on years is somewhat arbitrary, although 1970-2100 should work for most cases. I finally disallowed mixing slashes and hyphens in dates, it's either one or the other.

    Feel free to use as much or as little of my suggestions as you want; it's working fine locally.

    Take care, Ingmar

    opened by igreil 2
  • ⚠️ Submit to Sublime Package Control

    ⚠️ Submit to Sublime Package Control

    ⚠️ This package is not yet available via Sublime Package Control, as it’s still under review. It will be available within the next few days.

    👉 Subscribe to this issue on the ride-hand-side, so that you get notified via Github once this issue is resolved.


    For testing purposes, you can temporarily install it by hand in the meantime:

    1. Download this repository
    2. Unpack the downloaded .zip file
    3. Rename the unzipped folder from xit-sublime-main to xit!
    4. In the Sublime Menu, click PreferencesBrowse Packages
    5. Move the xit! folder to that location
    opened by jotaen 2
  • xit formatting is unreadable with a Nord color scheme

    xit formatting is unreadable with a Nord color scheme

    Great idea with xit, really love idea of saving everything in a plain text file!

    I've immediately installed a plugin for sublime and tried this out. Unfortunately, I got a follow result:

    personal-xit-with-dark-theme

    Formatting style/coloring doesn't play with my color_scheme.

    Here is my current preferences.sublime-settings :

    {
    ...
    "color_scheme": "Packages/Nord/Nord.sublime-color-scheme",
    ..
    }
    

    Workaround

    Changing color-scheme helps

    Monokai theme already looks workable xit-monokai-theme

    But I've noticed, that Mariana theme is closer to my original Nord theme. So I'll stick with this one for a time being. xt-mariana-theme

    Expected result

    I am uncertain whether fix should be implemented in xit-sublime plugin or this is an issue related to nord scheme itself.

    But since this plugin is newer, I've decided to start off with writing this issue. I'd love to make this plugin play well with my original scheme.

    Any advice how I could do that? What could be the problem?

    Setup details:

    Sublime version 4126 OS: Manjaro OS (Arch based)

    opened by skatkov 1
  • Allow to fold item groups

    Allow to fold item groups

    If you have a group of items like this:

    Some todos
    [ ] One
    [ ] Two
    [ ] Three
    

    then it would be cool if you could fold (collapse) all the items if you don’t want to see them.

    I’m not sure this is possible by default in Sublime (via the little triangle-icon in the side bar).

    Otherwise it might be an option to write a macro that uses the regular “fold” command from the menu.

    enhancement 
    opened by jotaen 1
  • Support embedded `xit` blocks in Markdown files

    Support embedded `xit` blocks in Markdown files

    In Sublime Text, it’s possible to make packages work in embedded contexts, e.g. as xit code block within a Markdown file.

    That way, you’d have proper syntax highlighting, and maybe even the snippets and special commands would work (though I’m not sure about this).

    161813696-2772114f-3d7f-42e8-98e5-a1b3ee66c894

    enhancement 
    opened by jotaen 0
  • Spike: explore nested items

    Spike: explore nested items

    One of the most wanted features in the [x]it! file format is nested sub-items, so e.g.:

    [ ] Big project
        [ ] Task 1
        [ ] Task 2
            [ ] Sub-Task of Task 2
    

    I’ve already tried to implement support for this functionality in the Sublime plugin, but without success. Problems include the following:

    [x] Big project
            [ ] It shouldn’t be possible to “skip” a level
        [ ] If parent is checked, also mark all subitems as checked, regardless of their status
        It shouldn’t be possible to continue the description of “Big project” here
    

    I wasn’t able to make that happen, but if anyone else would be willing to give this a shot, feel free to create an explorative spike PR.

    Regarding the discussion itself, I think it’s important to have a least one working implementation to play around with, in order to assess the technical difficulties better, and in order to get a better feeling for the behaviour and corner cases of nesting.

    help wanted 
    opened by jotaen 0
  • Due dates: expand abbreviated date patterns

    Due dates: expand abbreviated date patterns

    Similar to how the plugin expands 5d to like -> 2022-05-16, it could also expand 22-5-16 or even 220516 in the same fashion. That way, the eventual formatting will still be spec-compliant, but it’s a bit more convenient to type in.

    enhancement 
    opened by jotaen 0
  • Command for moving or deleting “done” items

    Command for moving or deleting “done” items

    When an item is done, it could (optionally) be

    • just deleted
    • or moved to a separate group, e.g.
      Todos
      [ ] Something
      [ ] Some other thing
      
      Done
      [x] Do this
      [x] Do that
      

    Both could be somehow configured via the package settings (e.g. for the second option, what the “done” section is called).

    Another idea could be to offer some sort of “clean up” command, that does such things on-demand.

    enhancement 
    opened by jotaen 0
Releases(1.3.0)
Owner
Jan Heuermann
Freelance Software Developer & Consultant
Jan Heuermann
The earliest beta version of pytgcalls on Linux x86_64 and ARM64! Use in production at your own risk!

Public beta test. Use in production at your own risk! tgcalls - a python binding for tgcalls (c++ lib by Telegram); pytgcalls - library connecting pyt

Il'ya 21 Jan 13, 2022
Extremely unfinished animation toolset for Blender 3.

AbraTools Alpha IMPORTANT: Code is a mess. Be careful using it in production. Bug reports, feature requests and PRs are appreciated. Download AbraTool

Abra 15 Dec 17, 2022
A simple website-based resource monitor for slurm system.

Slurm Web A simple website-based resource monitor for slurm system. Screenshot Required python packages flask, colored, humanize, humanfriendly, beart

Tengda Han 17 Nov 29, 2022
🚀 emojimash 🚀 is a programming language with ALL THE EMOJI

🚀 emojimash 🚀 is a programming language with ALL THE EMOJI

Python Whiz 256 1 Oct 26, 2021
List of resources for learning Category Theory

A curated list of resources for studying category theory. As resources aimed at mathematicians are abundant, this list is aimed at materials whose target audience is not people with a graduate-level

Bruno Gavranović 100 Jan 01, 2023
Opensource Desktop application for kenobi.

Kenobi-Server WIP Opensource desktop application for Kenobi. Download the apple watch app to get started. What is this repo? It's repo for the opensou

Aayush 9 Oct 08, 2022
This is the old code for bitcoin risk metric, the whole purpose form it is to help you DCA your investment according to bitcoin risk.

About The Project This is the old code for bitcoin risk metric, the whole purpose form it is to help you DCA your investment according to bitcoin risk

BitcoinRaven 2 Aug 03, 2022
Simple dependency injection framework for Python

A simple, strictly typed dependency injection library.

BentoML 14 Jun 29, 2022
Create beautiful diagrams just by typing mathematical notation in plain text.

Penrose Penrose is an early-stage system that is still in development. Our system is not ready for contributions or public use yet, but hopefully will

Penrose 5.6k Jan 08, 2023
TMTC Commander Core

This commander application was first developed by KSat for the SOURCE project to test the on-board software but has evolved into a more generic tool for satellite developers to perform TMTC (Telemetr

robamu 8 Dec 14, 2022
A good Tool to comment on xmw

A good Tool to comment on xmw

1 Feb 10, 2022
Keep your company's passwords behind the firewall

TeamVault TeamVault is an open-source web-based shared password manager for behind-the-firewall installation. It requires Python 3.3+ and Postgres (wi

//SEIBERT/MEDIA GmbH 38 Feb 20, 2022
Python screenshot library, replacement for the Pillow ImageGrab module on Linux.

tldr: Use Pillow The pyscreenshot module is obsolete in most cases. It was created because PIL ImageGrab module worked on Windows only, but now Linux

455 Dec 24, 2022
A python script providing an idea of how a MindSphere application, e.g., a dashboard, can be displayed around the clock without the need of manual re-authentication on enforced session expiration

A python script providing an idea of how a MindSphere application, e.g., a dashboard, can be displayed around the clock without the need of manual re-authentication on enforced session expiration

MindSphere 3 Jun 03, 2022
Mangá downloader (para leitura offline) voltado para sites e scans brasileiros.

yonde! yonde! (読んで!) é um mangá downloader (para leitura offline) voltado para sites e scans brasileiros. Também permite que você converta os capítulo

Yonde 8 Nov 28, 2021
This is a repository containing the backend and the frontend of a simple pokédex.

Pokémon This is a repository containing the backend and the frontend of a simple pokédex. This is a work in progress project! Project Structure 🗂 pok

André Rato 1 Nov 28, 2021
A small script I made that takes any standard Decklist of magic the gathering cards and pulls all card images from scryfall at once!

A small script I made that takes any standard Decklist of magic the gathering cards and pulls all card images from scryfall at once!

15 Aug 26, 2022
Plugin to manage site, circuit and device diagrams and documents in Netbox

Netbox Documents Plugin A plugin designed to faciliate the storage of site, circuit and device specific documents within NetBox Note: Netbox v3.2+ is

Jason Yates 38 Dec 24, 2022
Scripts to integrate DFIR-IRIS, MISP and TimeSketch

Scripts to integrate DFIR-IRIS, MISP and TimeSketch

Koen Van Impe 20 Dec 16, 2022
Arknights gacha simulation written in Python

Welcome to arknights-gacha repository This is my shameless attempt of simulating Arknights gacha. Current supported banner types (with potential bugs)

Swyrin 3 May 07, 2022