[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
This is where I learn machine learning

This is where I learn machine learning🤷‍ This means that this repo covers no specific topic of machine learning or a project - I work in here when I want to learn/try something

Wilhelm Berghammer 47 Nov 16, 2022
A platform for developers 👩‍💻 who wants to share their programs and projects.

Fest-Practice-2021 This project is excluded from Hacktoberfest 2021. Please use this as a testing repo/project. A platform for developers 👩‍💻 who wa

Mayank Choudhary 40 Nov 07, 2022
HogwartsRegister - A Hogwarts Register With Python

A Hogwarts Register Installation download code git clone https://github.com/haor

0 Feb 12, 2022
Set of scripts that schedules employees for shifts throughout the week based on availability, shift times, and shift necessities

Automatic-Scheduler Set of scripts that schedules employees for shifts throughout the week based on availability, shift times, and shift necessities *

Matthew 1 May 01, 2022
Width-customizer-for-streamlit-apps - Width customizer for Streamlit Apps

🎈 Width customizer for Streamlit Apps As of now, you can only change your Strea

Charly Wargnier 5 Aug 09, 2022
Tindicators is a Python library to calculate the values of various technical indicators

Tindicators is a Python library to calculate the values of various technical indicators

omar 3 Mar 03, 2022
This directory gathers the tools developed by the Data Sourcing Working Group

BigScience Data Sourcing Code This directory gathers the tools developed by the Data Sourcing Working Group First Sourcing Sprint: October 2021 The co

BigScience Workshop 27 Nov 04, 2022
A complete python calculator with 2 modes Float and Int numbers.

Python Calculator This program is made for learning purpose. Getting started This Program runs using python, install it via terminal or from thier ofi

Felix Sanchez 1 Jan 18, 2022
Drop-down terminal for GNOME

Guake 3 README Introduction Guake is a python based dropdown terminal made for the GNOME desktop environment. Guake's style of window is based on an F

Guake 4.1k Dec 25, 2022
A prototype COG-based tile server for sparse Mars datasets

Mars tiler Mars Tiler is a prototype web application that serves tiles from cloud-optimized GeoTIFFs, with an emphasis on supporting planetary dataset

Daven Quinn 3 Mar 23, 2022
A test repository to build a python package and publish the package to Artifact Registry using GCB

A test repository to build a python package and publish the package to Artifact Registry using GCB. Then have the package be a dependency in a GCF function.

1 Feb 09, 2022
A streamlit app for exploring image search results from HuggingPics

title emoji colorFrom colorTo sdk app_file pinned huggingpics-explorer 🤗 blue red streamlit app.py false huggingpics-explorer A streamlit app for exp

Nathan Raw 4 Sep 10, 2022
Advanced Keylogger in Python

Advanced Keylogger in Python Important Disclaimer: The author will not be held r

Suvanth Erranki 1 Feb 07, 2022
SHF TEST BACKEND

➰ SHF TEST BACKEND ➿ 🐙 Goals Dada una matriz de números enteros. Obtenga el elemento máximo en la matriz que produce la suma más pequeña al agregar t

Wilmer Rodríguez S 1 Dec 19, 2021
Mahadi-6 - This Is Bangladeshi All Sim 6 Digit Cloner Tools

BANGLADESHI ALL SIM 6 DIGIT CLONER TOOLS TOOLS $ apt update $ apt upgrade $ apt

MAHADI HASAN AFRIDI 2 Jan 23, 2022
Mdisk - 🚧 On Construction 🚧

Mdisk Install For Package pip install mdisk pip install git+https://github.com/HeimanPictures/Mdisk.git Usage You can use this as python module or via

AkKiL 6 Aug 08, 2022
Battle-Ship - Python-console battle ship

Battle-Ship this SHOULD work in lenux(if i spelled it wrong spam issues till I fix it) the thing that maby wont work is where it clears the screen the

pl608 2 Jan 06, 2022
Tethered downgrade 64-bit iDevices vulnerable to checkm8

ra1nstorm Tethered downgrade 64-bit iDevices vulnerable to checkm8 Since the purpose of this tool is to tethered downgrade a device, after restoring p

mini_exploit 65 Nov 08, 2022
适用于HoshinoBot下的雀魂插件。可进行近期对局查询、查询个人数据等功能,更多功能正在扩展

Majsoul_bot This is a Majsoul plugin for HoshinoBot 这是一个HoshinoBot的雀魂相关插件 本项目目前正在扩展,后续会扩展更多功能,敬请期待 前言 项目地址:https://github.com/DaiShengSheng/Majsoul_bo

黛笙笙 33 Dec 14, 2022
Registro Online (100% Python-Mysql)

Registro elettronico scritto in python, utilizzando database Mysql e Collegando Registro elettronico scritto in PHP

Sergiy Grimoldi 1 Dec 20, 2021