[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
An html wrapper for python

MessySoup What is it? MessySoup is a python wrapper for html elements. While still a ways away, the main goal is to be able to build a wesbite straigh

4 Jan 05, 2022
GWAS summary statistics files QC tool

SSrehab dependencies: python 3.8+ a GNU/Linux with bash v4 or 5. python packages in requirements.txt bcftools (only for prepare_dbSNPs) gz-sort (only

21 Nov 02, 2022
Automatically deletes Capital One Eno virtual cards for when you've made a couple too many.

eno-delete Automatically deletes Capital One Eno virtual cards for when you've made a couple too many. Warning: Program will delete ALL virtual cards

h3x 3 Sep 29, 2022
Simple Python-based web application to allow UGM students to fill their QR presence list without having another device in hand.

Praesentia Praesentia is a simple Python-based web application to allow UGM students to fill their QR presence list without having another device in h

loncat 20 Sep 29, 2022
Notes on the Deep Learning book from Ian Goodfellow, Yoshua Bengio and Aaron Courville (2016)

The Deep Learning Book - Goodfellow, I., Bengio, Y., and Courville, A. (2016) This content is part of a series following the chapter 2 on linear algeb

hadrienj 1.7k Jan 07, 2023
KUIZ is a web application quiz where you can create/take a quiz for learning and sharing knowledge from various subjects, questions and answers.

KUIZ KUIZ is a web application quiz where you can create/take a quiz for learning and sharing knowledge from various subjects, questions and answers.

Thanatibordee Sihaboonthong 3 Sep 12, 2022
Aerospace utilities: flight conditions package, standard atmosphere model, and more.

Aerospace Utilities About Module that contains commonly-used aerospace utilities for problem solving. Flight Condition: input altitude to compute comm

1 Jan 03, 2022
A custom advent of code I am completing

advent-of-code-custom A custom advent of code I am doing in python. The link to the problems I am solving is here: https://github.com/seldoncode/Adven

Rocio PV 2 Dec 11, 2021
Datargsing is a data management and manipulation Python library

Datargsing What is It? Datargsing is a data management and manipulation Python library which is currently in deving Why this library is good? This Pyt

CHOSSY Lucas 10 Oct 24, 2022
Open source stenotype engine

Plover Bringing stenography to everyone. Homepage Releases Wiki Blog Google Group Discord Chat About Installation Getting help Contributing Donations

Open Steno Project 2k Jan 09, 2023
In the works, creating a new Chess Board and way to Play...

sWJz4Chess date started on github.com 11-13-2021 In the works, creating a new Chess Board and way to Play... starting to write this in Pygame, any ind

Shawn 2 Nov 18, 2021
Trashselected - Plugin for fman.io to move files that has been selected in fman to trash

TrashSelected Plugin for fman.io to move files that has been selected in fman to

1 Feb 04, 2022
Tool for working with Direct System Calls in Cobalt Strike's Beacon Object Files (BOF) via Syswhispers2

Tool for working with Direct System Calls in Cobalt Strike's Beacon Object Files (BOF) via Syswhispers2

150 Dec 31, 2022
🏃 Python3 Solutions of All Problems in GKS 2022 (In Progress)

GoogleKickStart 2022 Python3 solutions of Google Kick Start 2022. Solution begins with * means it will get TLE in the largest data set. Total computat

kamyu 38 Dec 29, 2022
management tool for systemd-nspawn containers

nspctl nspctl, management tool for systemd-nspawn containers. Why nspctl? There are different tools for systemd-nspawn containers. You can use native

Emre Eryilmaz 5 Nov 27, 2022
Percolation simulation using python

PythonPercolation Percolation simulation using python Exemple de percolation : Etude statistique sur le pourcentage de remplissage jusqu'à percolation

Tony Chouteau 1 Sep 08, 2022
Expression interpreter written in Python

Calc Interpreter An interpreter modeled after a calculator implemented in Python 3. The program currently only supports basic mathematical expressions

1 Oct 17, 2021
A competition for forecasting electricity demand at the country-level using a standard backtesting framework

A competition for forecasting electricity demand at the country-level using a standard backtesting framework

5 Jul 12, 2022
Pre-commit hook for upgrading type hints

This is a pre-commit hook configured to automatically upgrade your type hints to the new native types implemented in PEP 585.

snok 54 Nov 14, 2022
Make your Discord Account Online 24/7!

Online-Forever Make your Discord Account Online 24/7! A Code written in Python that helps you to keep your account 24/7. The main.py is the main file.

SealedSaucer 0 Mar 16, 2022