Skip to content

Latest commit

 

History

History
3186 lines (2380 loc) · 100 KB

File metadata and controls

3186 lines (2380 loc) · 100 KB

1.2.41

Thank you for the contribution Sinamore:

  • Some small agenda fixes from Sinamore for the agena when day of week starts on Monday it was showing the wrong week.
  • Datepicker had problems with date wrap around.
  • A bug in mouse hovering with hasattr

1.2.40

Refile Improvements

2 new commands for refiling:

  • org_refile_to_file command vs heading, quick refile at end of file.
  • org_refile_to_file_and_headline - 2 step prompt file + headline

Right now, for vimmers bound to:

  • <space> r f for refile to file.
  • <space> r r for refile to file and headline

Capture

  • Added new capture type: ‘plain’ we now support ‘entry’ and ‘plain’ Eventually I will add all the capture types but we are a bit off from that.
  • Added new capture type: ‘item’ This will add at the end of the first list found in the node
  • Added new capture item: ‘checkitem’ This will add at the end of the first checklist found in the node
  • Added really early attempt at ‘table-line’. Not sure if this is sufficient

All of the types above only work with the snippet type

  • Added first stab at ‘file+olp+datetree’ I only have the full day mode not month or week yet. The olp part will take a heading and will add something like: under that heading
    • 2021

    ** 2021-11 November *** 2021-11-27 Saturday <your snippet here>

    The target should look something like: [‘file+olp+datetree’,”{myfile}”,”Heading a”,”Heading b”,”Heading c”]

    We have 3 non standard properties implemented for datetree:

    These are python date strings and allow you to control the header format of your datetree “year-format”: “%Y”, - The root of your datetree * 2021 “month-format”: “%Y-%m %B”, - The month section ** 2021-11 November “day-format”: “%Y-%m-%d %A”, - The day section *** 2021-11-27 Saturday

1.2.39

Improving Org Capture

  • file+regexp now works for inserting entry’s no item or anything else, just entry’s but it works. This searches an org file line by line for the first match. [“file+regexp”,”filename”,”REGEX”]
  • file+olp - full path in a file. When there are multiple paths this is the safest. [“file+olp”,”filename”,”Heading level 1”,”Heading level 2” …]

1.2.38

Day Page

  • Bugfix, regression: snippets were not running when creating a new daypage.

Capture

  • Fixed symbol expansion of filenames
  • Indent fix when inserting at the end of the buffer
  • file+headline improved insertion

1.2.37

  • Fixed a bug with agenda having extra spaces after calendar view.

dayPage - Capture symbols

  • added {daypage} symbol as a capture target symbol
"target": ["file","{daypage}"],
  • you can now also set a symbol in your sublime settings file and use it as a target expansion:
"mysym": "to use over and over"
...
"target": ["file","{mysym}"],

Capture

Added file+headline to capture templates.

"target": ["file+headline","{myfile}","MyHeadline"]

1.2.36

Slightly Improved DatePicker

  • Working to improve the datepicker a bit, there is sooo much functionality that org offers here and I only support a tiny fraction of the abilities.
  • Added clock to demonstrate current time to the datepicker.
  • Added Ctrl+Shift+. and Ctrl+Shift+, to change the active hour
  • Added Alt+Shift+. and Alt+Shift+, to change the active minute
  • Clock disappears if we failed to parse a time out of your date string.
  • I have added REALLY basic duration capabilities to the date picker.
    1d    -- Will select a date tomorrow at the current time.
    3h    -- Will select a time 3h from now.    
    4     -- Will select the next day 4 of the month in the future.
    Fri   -- Jump to the next friday from curren day
    sept 12 -- Jump to sept 12
        

This is still nowhere NEAR: https://orgmode.org/manual/The-date_002ftime-prompt.html But I am slowly working in that direction. Hopefully one day we will have a date picker that that is as powerful and flexible as the full orgmode version.

1.2.35

Bold Italic etc only on word boundaries

  • Emacs org mode only supports formatting on propper word boundaries:

    THIS_SHOULD_NOT_BE_HIGHLIGHTED THISSHOULDBE

    This/Is/Not/Italics This is italics

    I have adjusted the grammar to avoid formatting improperly.

Experimental Trello Export

Org is an interchange format and can be used like markdown to export to other formats. It is also a great way to store notes and other todos. that said, sometimes you have to work in other systems, like trello, but still want Org goodness. This is an experimental export feature from Trello to a local org file. This is not only a handy backup but I am hoping I might evolve this into a 2 way sync. This builds on and requires the existing Trello package, you will need it to be able to use the new Trello sync features herein.

  • Ability to author an org file from a trello board. This requires that you have installed the Trello package and set it up. Running “Org Trello Sync Board” Will let you select a board and generate an org file from it.
  • The command will not be present if you have not setup the Trello package.
  • Eventually I would like this to be a 2 way sync but that is going to take a bit more work.

Day Page Extension

  • The day page system got a bit of a facelift.
  • dayPageMode: “week” Will now flip the system to have one page per week rather than a page per day. NOTE: The page will always be the monday of every week.
  • dayPageCopyOpenTasks:true will now copy any unfinished todo’s from the previous page to today when you create a new day page.
  • dayPageArchiveOld:true will add an archive tag to the previous day when you start a new day page.

1.2.34

Active Table Cell Highlight

Show cursor for current cell.

Use the following option to turn this off if it is causing you problems.

"tableShowCursor": false,

Babel Preview

  • Perl is now supported. Like the other languages you have to tell the language handler where your perl interpreter can be found with:

    “perlPath”: “<path to perl interpreter”,

    abc
    123
    foreach(my $m = 0; $m <= $#DATA; $m++)
    {   
        for(my $n = 0; $n <= $#{$DATA[$m]} ; $n++)
        {  
          print "$DATA[$m][$n] ";  
        }  
        print "\n";  
    } 
        

    I am certainly not a perl master, if someone wants to tweak my perl integration please be my guest.

    return "Hello world"
        

R

The R language in source blocks was not marked up properly.

Agenda

Files outside of orgDir were being included in the agenda. A request was made to fix this. The old behaviour can be toggled using the following:

"agendaIncludeFilesOutsideOrgDir": true     

Sinamore Slow Checkbox Improvement [0/5]

  • Improvement to checkbox performance in files with lots of checkboxes and summaries.

1.2.33

Editing

  • Tag insertion could not insert tags on headings with colons this has now been fixed. Issue

Indenting

An attempt to improve heading indentation with exiting content. We will see how this new attempt plays out.

Syntax Highlighting

  • Internal syntaxes are now hidden.
  • Syntaxes are now marked as version 2 which may improve perf.

Org Beancount Experiment

This is a bit of a departure from org’s primary purpose. I however use beancount and beancount is designed to work inside other markup languages like markdown and… orgmode!

Due to how packages and syntaxes work I have not found a good way to create an amalgamated syntax without doing inside the orgmode package. So… here we are. By default we highlight .orgbeancount files.

This also adds a snippet for inserting a transaction with some additional metadata. My hope is to eventually facilitate babel and beancount.

Clocking

  • I was logging clock entries into the PROPERTIES drawer. this is a bit non standard.
  • this is now configurable and by default we are now logging into a LOGBOOK drawer which is more orgmode standard.

    Use the following to preserve the old behaviour:

    "clockInPropertyBlock": true,
        

1.2.32

Insert Sibling Heading

  • If the next line has spaces the inserted heading could have spaces which is not a good idea. This is now stripped properly.

Agenda

  • Done - a new view that lists done tasks WATCH OUT this can be massive! Use this with other filters.
  • durationfilter added -2w filters items 2 weeks ago from right now. a negative duration value will filter against CLOSED values while a positive will filter against SCHEDULED and DEADLINE values.
  • datefilter allows you to filter by absolute date range >=20210501 <=20210531
  • hasclose and other attributes were not handled properly as filter keywords, this has been fixed.

Reveal Exporter

  • Tables are now actually supported

Exporting

  • Tables had a bug if tabs were present in front of the table.

Editing

  • New override setting: logDone - forces CLOSED entries to be inserted even if logdone is not in your #+STARTUP: tags or global “startup”: “…” settings.
"logDone": true,

Tables

Found a bug with complete relative syntax. They were always evaluating to 1,1 in the table.

This has been fixed.

@-1$+1 

Known issue:


Complex expansions are not working:

@int($-1)$1 This would look up the row from the neighboring cell

There is a workaround for now till I can improve the parser

getcell(int($-1), 1, 1, 0)

not relative
column 1
relative offset

grab value 1 cell to the left, ensure it is an int

New Table Commands

The following will pull the active formula for the current cell into the current cell. Facilitating editing.

Org Edit Table Formula

The following will clear the current cell

Org Clear Table Cell

The following will run a temporary formula on the cells on and below the cursor which can be handy when fixing up a table.

Org Table Exec Below

Babel Preview

  • Improved results block discovery previously results might confuse a source block as being part of the results.

1.2.31

Insert Heading

Slight improvement to DWIM behaviour File with no headings will behave a little better on insertion.

RevealJs Exporter

  • Converted RevealJs exporter to use version 4.1.0
  • Converted RevealJs exporter to use new export framework written for the latex exporter
  • New global option for CDN:
    "RevealLocation": "https://cdn.jsdelivr.net/npm/reveal.js@4.1.0/",
        
  • Switched CDNs from cdnjs to jsdelivr to get presenters notes working again.

Show Inline Images

  • Improvement when unadorned http links are next to images Show Images would not work Thanks to waynezhang for this bugfix.

Indentation Rules Improvement

  • Fixing small bug with indent rules regexs.

1.2.30

Auto Indentation

  • Not yet perfect but some simple auto indentation rules
  • begin blocks are automatically indended.
  • Headings get indentation inserted when you hit enter off them

BEGIN_NOTES

  • notes block added to syntax highlighter
  • <n snippet added as well.

New Agenda Filter Keyword

statefilter is a new filter that can help tweak a todo view to only a subset of open states.

Loose Tasks: statefilter +TODO +NEXT : tagfilter MyTag

Known Issues

  • Since the default reveal.js exporter uses a CDN the presenter notes are not being shown because the notes.html file is not hosted anymore. I will work to fix this in the future.

    (As well as upgrade to the latest reveal.js distribution)

1.2.29

Links

  • New command “Org Search Links” searches links across all org files.

Backlinks

  • Fixed a bug where folds in the backlinks buffer would get confused.

Awk

  • Syntax highlighting for awk source blocks:
BEGIN {OFS="|"}; { sum+= $2}; END { print "Sum", sum} 

1.2.28

Backlinks Experimentation

Org Roam is a very powerful package. I am nowhere near supporting the power pretty views and flexibility of that package. That said, I am experimenting with the backlinks feature. This release has an experimental version of the org-roam backlinks view. These are links that are referencing your current document in your orgDirs not links that this document references.

  • Org Jump To Backlinks - is a new quick menu command that shows the links referencing your current file and lets you jump to them.
  • Org Show Backlinks - is a new command that pops up a panel with the backlinks to the file you are currently looking at.

This is an experimental feature. It automatically tries to keep the backlinks display visible but this is somewhat challenging with the existing sublime API. You can turn this off if it is causing you problems:

Turn off the attempts to update the backlinks display using the following option in your settings file:

"backlinksUpdate": false, 

Mermaid Source Blocks

  • Syntax is supported if you install the mermaid package
  • Can be executed to generate diagrams if setup.

Setting it up is a bit of a pain:

  1. npm install @mermaid-js/mermaid-cli
  2. NOTE it gets installed into a node_modules folder. This is REQUIRED!
  3. Set the mermaid variable in your settings to point to mmdc in the node_modules.bin\mmdc path
  4. Ensure node is in your path

Then execute this block:

gantt
    title A Gantt Diagram
    dateFormat  YYYY-MM-DD
    section Section
    A task           :a1, 2014-01-01, 30d
    Another task     :after a1  , 20d
    section Another
    Task in sec      :2014-01-12  , 12d
    another task      : 24d
   
Loading

1.2.27

LaTeX Exporter

  • LATEX: and @@ @@ support in the latex exporter.
  • Something went wrong with 1.2.26, People are downloading 1.1.13 instead… I don’t know why. Pushing another version in the hopes this fixes it.

1.2.26

Bugfix: Do What I Mean Insert

Ctrl + Enter is a DWIM insert Sadly I broke it when I renamed the orgsnippets folder

1.2.25

Latex Preview

  • more #+OPTIONS: controls date:nil toc:nil toc:2 author:nil title:nil
  • Table export supports some ATTR_LATEX options: :environment bmatrix :mode math

Hide Images

  • This was removing indent for some reason which was disconcerting.

1.2.24

Day Page

  • Fixed small exception with create
  • Fixed inserting templates when moving back and forth to current day page a disturbing leftover from a previous debugging session.

Latex

  • Improved output parsing in list contents
  • Images have some ATTRS_LATEX support
  • table of contenst is included

1.2.23

Day Page

  • Bugfix - Create was subject to a timing problem that would stop it from expanding the snippet. This has been fixed.

Latex Preview

  • We continue to move the latex exporter forward with some basic image support
  • Results have the results header stripped properly now A first stab at :exports keyword (not really well tested yet)
  • More keywords that should be removed are stripped out.

1.2.22

Table Bug

Fixing a remote indexing bug. If the local table does not have enough columns to match your remote index the remote target would get capped to the local width:

Note the a in the second table, it should have been a b, this is because we are trying to access column 2 remotely but our local table only has 1 column.

The temporary fix was to add another column.

abc
12
a

After the fix this now reads b

Link Insertion

  • Thanks to waynezhang link insertion using “Link To File” or the autocomplete method now inserts relative paths relative to the current file.
  • The title of the link reflects the #+TITLE: field in the file is present.
  • “linkFindUseRoamTags”: False will turn off visualization of ROAM_TAGS in quick panel if desired. (NOTE they do not appear in the search unless you have them in the file)

Capture

  • Somehow the snippets folder was not renamed orgsnippets when I normalized my extension folder names. This means that while my local snippets were working none of the default ones that come with the package were working. Hopefully this has been fixed.

Day Page

  • I am moving the day page feature forward a little bit.
  • Do not forget to set the “dayPagePath” setting if using this feature
  • “Org Day Page Create” is really going to be more of a goto today. It will create the day page or open it.
  • Create also now uses a snippet that is keyed off of: This should be the filename of a snippet file that lives in your orgsnippets folder. (without the .sublime-snippet extension)
    "dayPageSnippet": "dayPageSnippet",
        

    This snippet will get expanded into the file on creation as a means of authoring a new day. Symbols exist to help in your snippet authoring the list of symbols is similar to the capture templates.

    Two new symbols exist for use in your snippet: ORG_FILENAME is the filename without the org extension and ORG_AUTHOR is your username.

    • Day Page Filenames are now configurable They use the python strftime syntax for defining the filename:

      Note changing this with pre-existing content will likely have consequences when searching old files.

      "dayPageNameFormat": "%a_%Y_%m_%d",
              
    • New Commands: Lets you cycle through your day pages in sequence.
      Org Day Page Next
      Org Day Page Previous
              

Latex Exporter

  • NAME now exports a label like it should
  • LATEX_HEADER tag should now add to the latex preamble
  • LATEX_CLASS_OPTIONS now adds an option next to the documentclass
  • surrounding an expression with dollar signs will export properly in latex
  • Slightly improved spacing in latex documents
  • Fixed a bug with the segment parser and secments right at the start of a line
  • Better stripping of html attributes
  • Added first try at SetupFile tag.

1.2.21

Html Exporter

  • Exporting source blocks that do not have handlers was generating an error.

Early Preview of Latex Exporter

  • An early perview of a new latex exporter.
  • Many of the basic org data types work already.
  • Thanks to FleurDePassion for his time in helping work on this.

Links To Files in OrgDirs

New command: quick panel based insertion of links to files

"Org Link To File" 

This was requested by: Autocompletion of Links

In addition to the quick insert autocompletion during link insertion also tries to help with mapping to local files if possible. You can turn off autocomplete in the settings file if you are finding it annoying.

Home Directory orgDirs

Thanks to waynezhang for implementing this. We now support ~ in orgDirs in your settings file.

1.2.20

Html Exporter

Continuing the Babel adventure we add support for :exports [code,results,both,none]

NOTE: this means that the default parameters for babel header args are now more important Before we would default to exporting both code and results, now, due to the defaults set in our settings we only export code. This is in complaince with org mode defaults. If you would like to change that add the key to your settings file and set the defaults as you need:

print("hi") 
hi
"orgBabelDefaultHeaderArgs": ":session none :results replace :exports code :cache no :noweb no",

Skip Source

Some source formats it is handy to always skip the source and only include results. We have added a list of formats where this overrides the defaults (listed above) for convenience:

"htmlDefaultSkipSrc": ["plantuml","graphviz","ditaa","gnuplot"], 

Remove this list if you would like to always have explicit control with the exports keyword.

Source Block Execution on Export

This is now turned on by default. If you would like to disable it:

"htmlExecuteSourceOnExport": false,

1.2.19

Html Exporter

  • Exporter now exports as utf-8 to avoid problems with unicode characters.
  • Fixed a type in the postamble handling
  • The exporter can handle “* NOTE :” malformed headings and not crash.
  • The collapse system had problems computing the correct max-height on startup and nodes would not fold properly.
  • Added plain style to htmlstyles

1.2.18

Syntax Highlighting

Beancount is now supported for syntax highlighting in source blocks

Html Exporter

  • Fixed issue with exporting unordered lists.
  • Org Export Subtree as Html now handles HTML_STYLE properly
  • Org Export Subtree as Html will export <filename>_subtree.html rather than as a temp file.
  • “htmlExportPartialCheckboxChecked”: False - Will export partial checkboxes as unchecked vs checked.

1.2.17

More source block handlers!

Alias Support in Source Blocks

bat = cmd js = javascript

SH source blocks kind on windows with WSL (assuming you have WSL setup)

This is not yet tested on any other platform!

abcde
12345
echo "$DATA" 

Not yet sure if value types work like this in emacs. I may need to adjust this.

return 5

Javascript source blocks require node.js

Set nodejsPath in your settings file.

console.log('Hello world ' + x);
console.log(DATA);

1.2.16

Source Blocks

  • Improved noweb error reporting and handling
  • Added “builtinSourceBlockHandlers” setting allowing users to override one of the built in source handlers with their own.

Cmd Source Block Support

Batch files do not support arrays so we play some games. VAR_width and VAR_height are defined to help with iteration and array like variables are defined a value at a time VARNAME[r#,c#]

abcde
12346
    setLocal enableDelayedExpansion 
echo Hello World %x%
FOR /L %%r IN (1,1,%DATA_height%) DO (
    FOR /L %%c IN (1,1,%DATA_width%) DO (
  echo|set /p dummy=!DATA[%%r,%%c]!
)
echo .
)

Cmd Return Values

Value execution is kind of funny. Batch files can reach out and touch a parent parameter var. The return value is the first. Set it like so:

echo "hi"
set "%~1=5"

1.2.15

1.2.15 introduces the start of noweb like macro support to our babel offering.

The contents of source blocks can be dynamically included from remote blocks. (Much like a macro the code is pasted into the block)

References can be done by parameters or by name. The noweb-ref parameter allows you to define the target of a reference much like a name would.

Since the source of a noweb reference can be named in a parameter this means that property parameters can apply to a set of source blocks that each has a part of the full snippet. In this case snippets will be pasted in the order they appear in your file.

print("Hello World")
print("And again!")
print("Even More!")
<<includeme>>
<<by-name>>
<<by-results(x=5)>>

By-Name Source Block

In the example above we are referencing the blocks by a name in the parameter field. Here we are referencing the source block by the name of the block.

print("By-Name")

If you use () in your reference you are requesting the results of the block be pasted rather than the block itself. This can be useful but can easily get complicated if abused. So use with restraint.

print("print('By-Results: " + str(x) + "')")

1.2.14

Color Scheme Generator

  • FIXED: Improved color scheme generator. It did not handle comments so Solarized Dark as throwing. Issue

Max Header Depth In Syntax Coloring

  • This has been extended to 10 as per request from antidistinctiminty (Was 7 previously)

1.2.13

  • Fixed a fairly major regression with capture templates.
  1. Capture snippets now live in Packages\User\orgsnippets folder (for consistency with other extension types)
  2. A bug was fixed which would fail to find a snippet in some cases.

1.2.12

  • Thankfully the problem with dateutil has been discovered by wbond. we should now be able to install again once dateutil clears. I have removed the dependency on an internal dateutil.

1.2.11

  • Trying to get dateutil to operate well as a package inside OrgExtended. Had some problems with six.py’s location.
  • I believe this will fix it.

1.2.10

Dateutil seems to have vanished on package control. This was causing some people to have problems installing. I have been forced (for now) to embed dateutil into orgextended so we can continue chugging along.

My hope is that in doing this it will fix the ST3 issues we have been seeing.

1.2.9

Babel Cache

Caching will try to avoid executing a block if the source and or parameters have not changed. Caching uses a Sha1 hash of the source and parameter mix to determine if it should re-run the block.

This mode is dangerous if the operation has any side effects.

It does however skip execution when the operation is already present. It will keep a hash of the source and params and will only execute if the source does not change.

print("Hello world") 

This feature is not yet well tested with source block chaining.

#+RESULTS[5ce4498b4cf15deb48101207ad5673485754fd11]:

Hello world

Never Eval

A security feature of org is that you can specify that a block should never execute. This is now mostly working.

print("hi")   

Query Eval

Query evaluation is mostly working now although the title of the query prompt is not great.

print("Hello World")

Tangle

This release marks the begining of tangle work. Marking a source block as tangleable allows someone to export just the source code to a “detangled” file containing the source code and data from the page without the rest of the document. The resulting file will have the name of the the org file with the appropriate file extension for the source code.

We get a new command with this release:

  • Org Tangle File
Write-Host("Hello World")

1.2.8

  • 1.2.7 was missing a source file. This fixes that.

1.2.7

Core Idea: Quality of Life

This release is about stability, testing and validating the core babel feature set before I move on to noweb and tangle.

Babel Unit Tests

  • Having most of the core babel features in place we have started to work towards validating the core babel feature set and putting a rough stamp of non preview on the babel feature set.
  • Added “Org Show Table Tests” and “Org Show Source Block Tests” which will create a file with the unit tests for these features as a means of documentation and exploration for new users.
  • FIXED: Issues with multiple :var statements on the fence line of a babel block.
  • FIXED: Exception with initial inserts with drawer formatter.

SBE

  • FIXED: The Source Block Execute method had a bug that was preventing propper execution due to some of the features introduced in 1.2.6
  • FIXED: cell being passed to an sbe function would sometimes not evaluate properly.

Table Execution

  • New command: “Org Execute Formula” This will only execute the formula targetting the current cell vs the entire table. This can help when building a table.

Table Highlights

  • Some expressions using SBE can get fairly expensive to compute. When highlighting cells the system executes formulas in the background to determine which cells the formula touches. To avoid paying that cost when moving around you can turn this off for a node in the heirarchy as follows:
    :PROPERTIES:
      :NoTableHighlight: True
    :END:
        

    I had to do this for the unit tests since our unit tests were generating diagrams as a result of the sbe calls Although an unrealistic real world case, this was slowing down the highlight to be somewhat unusable so merited the feature.

Day Page

  • olegBc asked for a day page system. The project still has a little definition before we know where we need to take it. That said, I added a text command to create a day page as a first little step in that direction.

1.2.6

Core Idea: Inline Babel Blocks

With this release we are focusing on some fringe pieces of the core babel feature set that we need to be complete.

Inline babel blocks allow you to call a babel function within some other text providing even more dynamic living breathing documents.

Header blocks extend the core babel features providing more real estate to add parameters to a source block.

Links

  • Bugfix thanks to Anti-Distinctlyminty - on windows uses os.startfile() to launch a file link providing better support for out of sublime file links. Also some improved error notation in the contols when a link cannot resolve.

Agenda Hover

  • Sometimes this would assert when the agenda was not active.

Settings orgDirs

  • If someone sets their orgDirs to a string vs a list we would treat each character as an orgDir which was just plain wrong. I have augmented the db to detect that and just “do the right thing”

Input

  • Additional guards against asserts in popups for the input box: Errors in Sublime Console

    Thanks to OlegBc for finding this one.

Inline Blocks

Basic inline source block syntax highlighting now works. Org has a somewhat odd inline syntax:

src_python[:var x=5]{print(“hello” + str(x))} {{{results(hello5)}}}

Simple execution seems to be working:

src_powershell{Write-Host “Hello World”} {{{results(Hello World)}}}

PList Enhancements

  • Plists now have propper exclusion properties so :results output value will only have the last value since the options are considered mutually exclusive.
  • The unit tests have been enhanced to cover exclusivity.
  • Source blocks now have a global setting allowing you to control their default behaviour globally. this is inline with what you can do in emacs with: org-babel-default-header-args
"orgBabelDefaultHeaderArgs": ":var x=5"

HEADER comments

Added support for the more generic HEADER comment blocks as seen below.

print(str(y) + " x " + str(x))

Buffer Swap Respects Startup Comment

I find that as I move around the buffer I tend to unfold a lot of “things” When I have a buffer set to “content” mode I like it to clean up the open folds when it can.

This new setting will allow sublime to aggressively cleanup the folds to just your active subtree of the file if you turn this on.

What I really want is org-narrow-to-subtree which is the ability to restrict a view to a narrowing of the buffer but in the absence of that capability this helps keep me focused on the things that matter in my file.

  • This is controlled by a setting:
"onFocusRespectStartupFolds": true,

1.2.5

Core Idea: Better Chaining Support

Agenda - WeekView

  • Bugfix: The weekview could show things last month but in the current week erroneously.

PlantUML

  • Fixed a regression in the parameter handling for plantuml.
a -> b
b -> c

Handling Drawers in Chained Sources

abcde
12345

This source block uses the output from the table above

print(DATA)

This source block uses the output from python-src as an input

print(DATA) 

Handling Lists in Chained Sources

Here we have a list that acts as a source for some python that acts as a source for more python.

  1. a
  2. b
  3. c
print(DATA)
print(DATA) 

Numeric and Text Values

Here the powershell scripts results are piped into the python script.

return 5     
print(DATA)

Silent Exec

$DATA
print(DATA)
print(DATA)
print(DATA) 

Call

Begining support for the babel call syntax. Here we define a function that can be called elsewhere in the document with different parameters.

print(DATA)

First Draft Source Block Execute in Tables

This is a slight breakaway from orgmode as we do not support lisp and in orgmode this would be done with (org-sbe ‘name’ (key x) (key y)) This is not a syntax I can easily support properly without implementing a full lisp parser inside sublime and… I don’t like that idea. So, I am using the more python friendly function call as seen below. Note this is running the varfunction above, taking the results and placing them in the table below in cell 2,1.

ab
123456

1.2.4

Core Idea: Value vs Output execution

Links Improvements

By default most file links will be loaded within sublime. If there is a file type you want launched outside of sublime use:

"file_exclude_pattern": ["*.pdf"],

Column View

  • Fixed a problem where the columnview dynamic block was grabbing its column definitions from the current node. This would cause column view to use the default definition.
    TODOTaskTagseffort
    1.2.4
    DONE..Column View

Value Type Execution

Acts like a function, the return statement of the code is returned.

print("Hello world")
print("Hello world2")
if 5 < 10:
  print("hi")
return 11
Write-Host "Hello World"
return 10

Chainging Execution

A src block should be able to reference another src block as an input. This is a REALLY early version of this. Only tables work at the moment.

There are a couple of challenges here:

  • Things move as other items execute, I haven’t fully solved that yet.
  • Right now I ALWAYS execute the target source block, I need to improve that going forward.
  • Errors in the chain are not handled very well yet.
abcde
12345

This source block uses the output from the table above

print(DATA)

This source block uses the output from python-src as an input

print(DATA) 

1.2.3

Core Idea - Better output support and results controls

Column View

  • Fixed a small regression introduced in plists in some of the earlier babel work. This was impacting columnview

Test File

To help new users we now have an:

“Org Show Testfile” command that will quickly create a testfile for a user to play with.

Babel Preview Output Handlers

List Handler

print(str([1,2,3,4,5]))

File Handler With a List

print(str([1,2,3,4,5]))

Babel Preview Output Formatting

These wrap the output in a formatting block of some sort.

Drawer Formatter

will wrap output in a drawer

print("Hello World")
print(x)

Code Formatter

will generate a code block with the output:

print(str([1,2,3,4,5]))

Org Mode Formatter

will generate a code block specific to org

print("#+COMMENT: org data here")
#+COMMENT: org data here

Append Prepend Silent Replace

print("#+COMMENT: org data here")
#+COMMENT: org data here
#+COMMENT: org data here
#+COMMENT: org data here
print("#+COMMENT: org data here")
#+COMMENT: org data here
#+COMMENT: org data here
#+COMMENT: org data here
print("#+COMMENT: org data here")

1.2.2 - Improving Babel Input

Worklog

  • “Org Show Worklog” will generate our worklog to a new buffer

Babel PList Params

Quotes work for variables in plists

print(x)      

Property Parameters

All of the following are now possible sources of variables In a parameter block, including the local fence variable

This required fixing the properties parser to understand multiple semi colons in a variable list.

print(v)   
print(x)   
print(y)   
print(z)
print(p)
print(g)

Output As Table

I have started working on output handling. Right now things are pretty manual.

Things that work:

:results table - This will try to format your output as a table :results verbatim - This will output things in verbatim format :file - The presence of a file parameter will cause the system to output a link to the file. This does not work for script output yet only for ditaa, plantuml and graphviz modules that naturally want to output to a file.

Things that do not work: :file - for script blocks, that is comming :results - auto detection of tables :results - value a bunch of other stuff…

abcde
12345
67890
$DATA | %{"$_"}
print(str(DATA))
print("Hello World This Is Tablular?")
a -> b
b -> c

1.2.1

Just like 1.2.0 was focused on supporting tables 1.3.0 has a focus on better babel support.

Core Idea for 1.2.1: Input - More language handlers supporting table and list data sources.

This is a fairly simple first step into the world of babel. The GNU Plot handler paved the way for this we are just adding the same support to the other handlers.

Right now we only really have python and powershell handlers anyways. As this matures we will document how to add your own language handlers as well as extend the list of supported languages.

There is still more to do with input. This gets us 30% of the way to handling input sources. We still have to improve our plist handle spaces a little better and then handle the various ways that variables can be set for handlers vs the local mechanism. We also need to handle source blocks being the source of data for other source blocks. We are going to hold off on that until we have a slightly better handle on the various execution types for source blocks.

PlantUML

  • Thanks to Antidistinctlyminty for improving file handling in the plantuml source block handler. The module not respects the :file tag properly. This was actually fixed in the 1.2.0 release but went unmentioned.

Lists

  • fixed a bug with unordered list sorting including source blocks.

Source Block Output Formatting

  • In preparation for working on output formatting in a future release (for babel) we have tweaked the output formatting to respect indents a little better when executing source blocks.

Python

Python now supports tables as data sources. True babel execution would auto format the output or provide controls over how we handle the output but… these are our first steps here.

abcde
12345
67890
	  print(str(DATA))

Basic variables are also somewhat operational.

	  print(str(DATA))

Powershell

$DATA | % {"$_"} 

List Data Sources Within a File.

Source blocks are also getting list as as data sources: Notice that the indented item is excluded this is normal org behaviour with lists.

  • b
  • a
    • a
  • c
print(str(DATA))
,$DATA 

Numbered List Data Sources Within a File.

Numbered lists are also now potential data sources:

  1. b
  2. a
  3. c
    1. 4
    print(str(DATA))
        
    ,$DATA
        

1.2.0

Core Idea: I am considering the spreadsheet feature out of preview now. most of the core org features with spreadsheets are now supported. While there are a ton of functions yet to support to have calc equivalence I believe what we have is a pretty good line in the sand to say we have something some usable.

Spreadsheets Beta

More core functions

  • tanh
  • cosh
  • sinh
  • atanh
  • acosh
  • asinh
  • atan
  • acos
  • asin
  • degrees
  • radians
  • sqrt
  • pow
  • log
  • log10
  • log2

Added unit tests for these functions.

Editing

  • New Command: “Org Insert Archive Tag” will add the :ARCHIVE: Tag to a node. Not currently bound to a key.
  • ARCHIVE tag gets filtered out by default in agenda. This means archived TODO’s do not accidentally show up if you have a FILETAG on your archive file.
  • Fixed a bug with moving headings up and down when the heading is at the end of the file.

Tags

  • FILETAGS comment is now respected properly as an inheritied tag on a heading.

Notifications

  • Notifications system now respects the ARCHIVE tag.

1.1.30

Core Idea: Testing pass on tables to ensure what is there is relatively usable.

Spreadsheet Preview V14

  • added:
    • bool(cell)
    • int(cell)
    • float(cell)

    to convert string cells to boolean, ints and floats explicitly if desired

  • added highlight(cell,color,text) which highlights a cell a specific color for you
  • added passed(test) that will highlight a target cell green or red and write PASSED or FAILED into the cell. We are using this for unit testing at the moment.
  • added unit tests org file for tables.
  • Execute table now restores the cursor after the evaluation of the table improving usability.
  • Fixed assert when cursor was on a formula during table formula execution due to call to table_editor_align requiring the cursor be in the table
  • Fixed a bug with <= not evaluating properly next to a cell name ($1<=$2 would fail)
  • Added Org Execute All Tables - scans the whole file for tables and executes all of them.
  • Improved all date functions handling of datestrings
  • Fixed double digit row index parsing, @10$2 was failing to parse properly sometimes.
  • Fixed a bug with vmedian where it would sometimes not compute the median!
  • More docs including a little view of the new highlight in action in a unit test capture: (at the bottom of the tables doc)

Tables

  • New documentation on adding the emacs constants.el to your table experience in docs

Math Constants

GNU Plot

  • Calling “Org Plot Table” on the #+PLOT: header rather than the table would cause problems.

1.1.29

Core Idea: Add GNU Plot Script Blocks

  • [x] Add a syntax for gnu plot script blocks if one does not already exist
  • [x] Add a src handler to execute these script blocks.

Spreadsheets Preview V13

  • Fixed a bug with TBLFM appearing after a END marker on dynamic blocks
  • Fixed a bug with if statements and equals signs in TBLFM blocks
  • Fixed a bug with tables where it would look up the properties on the root node of the file. this would cause an assert.

GNU Plot Script Block

We now have a GNU Plot script block and source handler. We have a very limited set of source hanlders.

Here is some gnu plot code that draws a sine wave if executed and gnuplot can be found in your settings file. The requirements are the same as those for table plotting.

# We don't need a key (or legend) for this simple graph.
set key off
 
# Set the title for the graph.
set title "Sine against Phase"
  
# We want the graph to cover a full sine wave.
set xrange [0:6.28]
  
# Set the label for the X axis.
set xlabel "Phase (radians)"
  
# Draw a horizontal centreline.
set xzeroaxis
  
# Pure sine wave amplitude ranges from +1 to -1.
set yrange [-1:1]
  
# No tick-marks are needed for the Y-axis .
unset ytics
  
# Plot the curve.
plot sin(x) 
  • Params for src blocks have been converted to use the new PList system added in 1.1.28
  • Source Blocks now have a PreProcessSourceFile() method that allows for injection of file and other paramters into the source block.
  • GNU Plot is the first module to start implementing the data source mechanism: The following example generates a graphed line line by feeding the data in my-table into gnu plot using babel like mechanics. NOTE: Babel is in its infancy in our system. We have source handlers for python, powershell, gnuplot, ditaa, plantuml, graphviz and that is it. ONLY GNU Plot can read from tables at this time. This will change.
plot "$DATA" using 1:2 with lines title "hello"
    
12
23
34

Powershell Block Execute Bug

  • this was using the OrgExtended package dir as it’s cwd which was causing problems when running as a package. FIXED.

1.1.28

Dynamicblocks

  • Params structure is now a PList class and has:
    Get(name,default)
    Returns the parameter as a string value
    GetInt(name,default)
    Returns the parameter as an int value
    GetFloat(name,default)
    Returns the parameter as a float value
    GetList(name,default)
    Returns the parameter as a list of strings
    GetIntList(name,default)
    Returns the parameter as a list of ints

    Plists now support double quotes “” and () brackets delimiting parameter values.

Image Links

  • Fixed an assert that could happen when backing image was removed.
  • Sublime will now show the non image icon as expected.
  • ORG_ATTR comments on image links with plists specifying image dimensions are now respected in inline sublime visualization of an image.
#+ORG_ATTR: :width 700

Spreadsheets Preview V12

Mostly quality of life improvements in this release.

  • Table cache works across files properly now.
  • Turned off highlight updates during formula execution it was costing us during the update needlessly.
  • Improved function table, symbol table and constants table construction. They are now lazy loaded and reused as much as possible for all tables reducing the costs associated with highlighting cells and navigation.
  • In the interest of supporting only pay for what you use. Dynamic table extensions (user added functions) are reloaded ONCE when the tables are first constructed, if you are developing a function for table handling you can now turn on:
    	    "forceLoadExternalExtensions": True
        

    In your settings to dynamically reload your extension all the time. This reduces the cost of building the function table.

  • Added abs function
    • Improved remote() function, it no longer requires you to open a view / tab although the file has to have been parsed so should be in your orgDirs / orgFile list.
    • Added the ability to add dynamic symbols as well as functions.

      To use add a python file in your User folder like so:

          	.../Packages/User/orgtable/mysymbols.py
                  

      And add the symbols you would like exposed for use in your tables.

      def AddSymbols(symbolTable):
      	symbolTable['pi'] = 3.14159268
      	symbolTable['c']  = 299792458
                  
    ad
    0.50251
    0.46356
    0.1942
    0.0253
    0.4964
    0.6475

Source Blocks

  • gnuplot language added to syntax, to use install the GNU Plot package.

Folding

  • “Org Fold Others” - New command that folds all other headings but the immediate part of the tree you are on.

1.1.27

Archiving

  • Fixed a bug where ARCHIVE_TIME was missing a colon at the front when inserted.
  • Switched archiving to save as utf-8 by default to avoid some of the unicode problems I have been running into.

Editing

  • Org Insert Now Active - Inserts right now as an active datetime
  • Org Insert Now Inactive - Inserts right now as an inactive datetime
  • Org Insert Date Active - Pops up the date picker to insert an active datetime
  • Org Insert Date Inactive - Pops up the date picker to insert an inactive datetime
  • Dynamic Block Snippet:
	  <b
  • Example blocks are now orgmode syntax inside the block.

Spreadsheet Preview V11

  • date() function improved to auto convert strings and cells to OrgDate objects.
  • duration() added to handle columnview duration syntax. This is compatible with adding to dates.
  • if statements work although they do not follow the calc style, here we are diverging a little at the moment due to the fact that our backend is really python ast. “If” is a keyword, I can’t easily use it like a function without playing some games I am not sure I am ready to do.
  • percentages can be treated like numbers much like they can in orgmode
abcdefgh
<2021-03-10 Wed 22:25><2021-03-09 Tue 22:25>5d<2021-03-15 Mon 22:25>5d5020%10.0

Columnview

  • Empty properties still make a row in the column view (allowing you to setup additional rows for calculations)
  • Table format blocks can live after the end marker on a dynamic block. This is not org standard but it lets us build formulas for generated tables which can be really handy on clock tables and columnviews (building timesheets and project plans)
  • Org syntax is turned on inside a dynamic block now allowing tables to be highlighted inside the block.
TaskEffortTesting
1.1.27
Archiving
Editing
Spreadsheet Preview V11
Columnview

1.1.26

Configuration

  • improvements to orgdir globbing / error handling / parsing thanks to Anti-Distinctlyminty

Source Blocks

New languages colored in source blocks:
  • clojure
  • bat|cmd
  • org
  • pascal
  • actionscript
  • applescript
  • dtd
  • haskell
  • markdown|md
  • groovy
  • regexp
  • ruby
  • restructuredtext
  • xsl
  • scala
  • hex
  • erlang
  • diff
  • d
  • css
  • cmake
  • asp
  • json
  • r

Folding

  • Block folding inside a block was driving me nuts I have changed it so you can only fold a dynamic block or a source block from its header If this bothers you, we can make this configurable, just let me know.

Properties

  • New Command: “Org Create Heading Id” This will add a UUID ID to the current heading.
  • Db handling of ids reworked a little to support jumping to an ID or a CUSTOM_ID
  • New Command: “Org Insert Effort” Must be org duration format. Will insert an effort property defaultEffortEstimateUnit - setting (defaults to d) can be used to set the default effort unit

Spreadsheets Preview V11

<2021-03-09 Tue 14:53>
  • remote function can now take a custom id or id as per: Remote Table References
  • Nodes now have a table property that lists the position of the first table in the node.
    • It doesn’t really work well because the existing table system requires a view, which means that we have to load the file which cannot easily be done during the execution of a formula. This means you can get odd tab swaps if you have a remote reference and the file is not opened. I will have to think about another way of handling this in the future.

[#B] ColumnView Dynamic Block

[2021-03-09 Tue 11:00]

Part of the reason for the tags, priorities and effort markers in these release notes is to show the new column view dynamic block. It is still in its infancy. It has none of the summary functionality of the real column view. It also only has a limited set of handlers. It can access properties and has the following built in handlers:

  • ALLTAGS All tags, including inherited ones.
  • CLOSED When was this entry closed?
  • DEADLINE The deadline timestamp.
  • FILE The filename the entry is located in.
  • ITEM The headline of the entry.
  • PRIORITY The priority of the entry, a string with a single letter.
  • SCHEDULED The scheduling timestamp.
  • TAGS The tags defined directly in the headline.
  • TIMESTAMP The first keyword-less timestamp in the entry.
  • TIMESTAMP_IA The first inactive timestamp in the entry.
  • TODO The TODO keyword of the entry.

Parameters that work:

  • hlines
  • maxdepth
  • id (local, global, ID value, file:)
  • indent
  • skip-empty-rows
  • exclude-tags

Parameters that do not yet work:

  • match
TaskEffortTodoDeadlineTagsTimeInactivePriority
1.1.26a
..Source Blocks2dDONEa
..Foldinga
..Properties2d2021-03-09 Tue 20:55a
..Spreadsheets Preview V114ha tag2021-03-09 Tue 14:53
..ColumnView Dynamic Block1da2021-03-09 Tue 11:00B

I am slowly driving towards being able to do this: Gantt Charts in Org Mode

I don’t have column mode yet, but we will get something like it eventually.

ColumnView Beyond Max Depth

Excluded Because Of Tag

Empty

1.1.25

Source Block Diagrams

  • Non existent subdirs are auto-created
  • Execute block works on any line inside the source block as well as on the fence.
  • Evaluating a block on the last line of the file was not inserting the RESULTS tag.
  • Repeated re-evaluation kept adding newlines at the end.
  • When evaluating source with a diagram the cursor could move, this is now fixes.
    digraph G {
      a -> b;
      a -> c;
      c -> d;
    } 
        

Customization

  • Support single directory wildcards:
"orgDirs": "C:\Mypath\*\SubFolder"

Will match a single folder wildcard like so:

  • C:\Mypath\foo\SubFolder\x.org
  • C:\Mypath\bar\SubFolder\y.org
  • C:\Mypath\baz\SubFolder\z.org

Again, this can increase your startup time dramatically. Please use with caution!

Spreadsheet Preview V10

  • boxes mode seems to work.
    SedeMaxH-indextop
    Sao Paolo71.0011.5013.5
    Stockholm134.1914.3316.33
    Leeds165.7719.6821.68
    Morelia257.5617.6719.67
    Chile257.7221.3923.39

Start of Advanced Table Features

  • Auto computed cells now mostly work. Careful with these in big tables. They only auto compute when you use tab or shift tab to move between cells, arrow keys do not recompute
  • Row names seem to work work.
  • Above and Below names seem to work
  • Symbol rows seem to work
abc
#0.380.10.46
#0.380.10.86
#0.030.60.01
*0.020.00.06
^helloworldnamedRow
*0.3
_below
#3.50.7
#4.50.9
#4.00.8
#2.00.4
$max=5

HTML Export

Fixed issue with 0 blank lines at the top of the file. The comment gathering code was not being initialized properly.

1.1.24

PlantUml

  • Fixed bug with working directory that was causing problems when executing as a package.

1.1.23

Configuration

  • orgDirs - in 1.1.22 we added support for directory globbing. We have added a little more error handling in 1.1.23 to detect single stars rather than double stars and to not throw in those cases.
    D:\mypath\**\   - This is supported
    
    D:\mypath\*\   - This is NOT supported
        

Source Blocks

  • Improved handling of unsaved files when executing source blocks. NOTE: Sublime WILL save the file for you if it has already been saved, or error out. PlantUml Example Request

GraphViz Blocks

  • added engine (neato, dot, etc)
  • added fmt (jpg, ps, png)
digraph G {
  a -> b;
  a -> c;
  c -> d
} 

Ditaa Src Blocks

To use: Add the path to ditaa.jar from sourceforge in your settings file:

"ditaa": "<pathto>/ditaa.jar",   

Create a source block with your diagram. (Nope, we don’t have an artist mode for sublime yet)

+--------+       +----------+
| Hello  | ----> | Hello2   |
+--------+       +----------+

Execute the block and you should now have a diagram!

1.1.22

Configuration

  • Added directory globbing support to orgDirs
"c:\\Users\\ihdav\\notes\\**\\test\\"

This will find valid org extensions in all test sub folders of the path. CAUTION: This will slow down sublime start times with overly large search space!

Spreadsheet Preview V9

  • GPU Plot support extended: file option now allows for several output formats:
    • file.txt - dumb option in gnu plot.
    • file.html - canvas option in gnu plot.
    • file.jpg - jpeg option in gnu plot.
    • file.png - png option in gnu plot.
    • file.svg - svg option in gnu plot.
    • file.ps - postscript option in gnu plot.
    • file.gif - gif option in gnu plot.
  • GPU Plot
    • Added include:header to include header row in data (you have to account for it in your plot)
    • Added using statement to allow you to write your own full using statement rather than just the style:
    • Improved quoting, spaces in fields are accounted for and quoted.
    • Improved indent of RESULTS block.
      SedeMaxH-indextop
      Sao Paolo71.0011.5013.5
      Stockholm134.1914.3316.33
      Leeds165.7719.6821.68
      Morelia257.5617.6719.67
      Chile257.7221.3923.39

Source Blocks

  • PlantUml info in docs.
  • Added auto image preview mode when creating images using diagram methods.

New Source Block type

  • GraphViz support.
  • Only dot engine is currently supported.
  • To use add graphviz path to settings file:
"graphviz": "C:\fullpath\dot.exe"

Create a source block like so and execute it

digraph G {
  a -> b;
  a -> c;
  c -> d
} 

1.1.21

Db

  • orgFiles was not working, this has been fixed. orgFiles does not work
  • Files with a BOM. I can’t easily handle BOMs but I now do try to detect it and swap encodings if I fail to load the file as utf-8.
  • Notifications fix. The notification system was asserting on SCHEDULED: <DATE> where date did not have a time.

Spreadsheets Preview V8

  • Fix for floating point values.
  • VERY early support for gnuplot

To use:

  • install gnuplot
  • Set your gnuplot path:
    		  "gnuplot": "<fullpathtognuplot.exe>",
        
  • Run “Org Plot Table” with cursor on the table
  • Right now I am just dumping an image and using the inline image show option in the future I may change that.
    SedeMaxH-indextop
    Sao Paolo71.0011.5013.5
    Stockholm134.1914.3316.33
    Leeds165.7719.6821.68
    Morelia257.5617.6719.67
    Chile257.7221.3923.39

1.1.20

Editing

  • Heading and Child heading insertion now ignores whitespace at the end of a node

Extensions

  • Improved extension reloading on modification. Before it would force reload to often now we track and reload only when we have to. This should improve table performance a little. This is in prep for the advanced table features including automatic cell calculations on # fields.
  • Extension folders renamed for consistency:
    • src folder renamed to orgsrc
    • resolver folder renamed to orgresolver
    • dynamic folder renamed to orgdynamic
    • table extensions were already in orgtable

Spreadsheets Preview V7

  • Fixed small issue with syntax coloring

Syntax

  • Added lisp coloring for source blocks marked with lisp or emacs-lisp as the language.

Also added the following language identifiers to src blocks:

  • yaml
  • rust
  • sql
  • r
  • html
  • go
  • ledger
  • make|makefile
    • typescript|ts

1.1.19

Spreadsheets Preview V7

  • Added the ability to add your own functions

Create a file with the name of your function in:

	Packages/User/orgtable/<yourfunction>.py

Here I have created a file called nowstr.py:

def Execute():
	    import sublime
	    import datetime
	    return str(datetime.datetime.now())

The module will be run dynamically so your imports are best to put in the function as seen above. If your function takes cells they should be parameters to Execute.

In my example I am returning the current datetime as a string:

I will have further examples in the documentation going forward.

  • Fixed a couple of asserts found when navigating tables.

This feature is considered an advanced feature and is disabled by default in your settings file.

"enableTableExtensions": true,
    
2021-03-03 12:42:03.720657bcde
2021-03-03 12:42:03.738691

Data Time methods

Added a bunch of the datetime methods

A
2021-03-03 19:56:44.294403
2021
3
3
2021-03-03
19:56:44.375228
19
56
44
2
62

Checkboxes

Recursive todo summary data. NOTE: this counts ALL checkboxes as if they are part of the parent checkbox not just leaves. This can be set using the COOKIE_DATA property above or using the global setting:

"checkboxSummaryRecursive": true,
  • [-] Testing parent [3/6]
    • [x] A
    • [-] B
      • [ ] C
      • [x] D
      • [x] E
    • [ ] F

    Supporting this was a request from: Checkbox summaries

1.1.18

Spreadsheets

  • A crude stab at a table visualization
  • “Org Show Table Rows” - will show a set of phantoms that ID the rows and columns to help when authoring formulas
  • “Org Hide Table Rows” - will hide the phantoms.
    • Fixed positive relative offsets, they were not working:
    abcdef
    456789
    123456

    Things that work:

    • Evaluation of rows and columns with basic arithmetic
    • vmean, vmax, vmin and a handful of other functions
    • the basic range syntax seen above.
    • respecting the header in column expressions
    • filling in a cell with an expression and having it automatically be moved to tablefmt
    • cell highlighting when editing expressions.
    • horizontal separators are now respected as non cells.
    • Negative (relative) or arrow cell indexes
    • Index symbol $# and @#
    • Automatically updating your expressions when you resize the table
    • box range targets
    • basic printf style formatting after semi colon for floating point types: $2=$1/2.0;%.1f
    • Properties and constants (defined in a CONSTANTS comment) can be used in formulas
    • remote() references to other named tables.
    • Visualizing columns and rows

    Things that do NOT work:

    • Extended calc style output formatting (semi colon)
    • Advanced tabled features / Named fields
    • gnu plot support
    • more functions

1.1.17

Spreadsheets Preview V6

  • Invalid cell references now are not assserting in the obvious cases.
  • Invalid cell references now generate a status message during the highligh phase to let you know you have invalid cell references:
  • Fixed a bug with column lookup where it would return curcol sometimes rather than fixed reference.
  • Removed a bunch of silly debugging prints that were left around from 1.1.16 release!
  • SOME support for formatting suffix in formulas:
    • N - Will treat empty cells as 0
    • %.#f - Will output # decimal places like a printf
  • Additional functions:
    • floor
    • ceil
    • round
    • trunc
  • Properties can be referenced in an equation: $PROP_<name>

(See property in node above)

  • Remote table references here we are grabbing a value from the tabled named TestName above:
abcde
11111
22222
abcde
1111
0.4760.4760.00.4760.476
abcde
510152025
abcde
3.16.39.412.615.7
abcde
1010101010

CURRENT FUNCTIONS:

  • vmean
  • vmedian
  • vmax
  • vmin
  • vsum
  • tan
  • cos
  • sin
  • exp
  • floor
  • ceil
  • round
  • trunc
  • randomf
  • random

Things that work:

  • Evaluation of rows and columns with basic arithmetic
  • vmean, vmax, vmin and a handful of other functions
  • the basic range syntax seen above.
  • respecting the header in column expressions
  • filling in a cell with an expression and having it automatically be moved to tablefmt
  • cell highlighting when editing expressions.
  • horizontal separators are now respected as non cells.
  • Negative (relative) or arrow cell indexes
  • Index symbol $# and @#
  • Automatically updating your expressions when you resize the table
  • box range targets
  • basic printf style formatting after semi colon for floating point types: $2=$1/2.0;%.1f
  • Properties and constants (defined in a CONSTANTS comment) can be used in formulas
  • remote() references to other named tables.

Things that do NOT work:

  • Extended calc style output formatting (semi colon)
  • Advanced tabled features / Named fields
  • Visualizing columns
  • gnu plot support
  • hline symbols
  • more functions

1.1.16

Spreadsheet Preview V5

  • Moving cells around, adding and deleting cells is now starting to try to keep formulas intact now!
  • Deleting the target or source of a cell will result in the formula having and $INVALID or @INVALID tag which is not currently handled properly. This will be improved going forward!

1.1.15

Spreadsheets Preview V4

  • Fixed a bug with row ranges not expanding properly
  • Fixed an issue with tables at the last row of the file.
  • Added random(a,b) - integer random range
  • Added randomf() - 0.0..1.0 random range
  • Range targets are now supported:
abcd
0.5066660.9952460.55190.061723
0.0658740.9930110.2411330.410426
  • Removed some extraneous trace information.
abcde
34567
246810

1.1.14

Spreadsheet Preview V3

  • Column cell formula insertion was broken, this is now fixed.
  • TBLFM expressions on their own lines would cause exceptions
  • Added non standard row insertion using >= syntax. While testing this found a bug in row expressions
    abcde
    ab510>=@3
    11163.0914709848078967
    • Still using a hacked up version of simple_eval and python ast for the expression parser. Decided using functions rather than names for the expression differences made sense. Even though this is a bit of a misuse of the parser I think I will stick with this approach, it’s simple it’s functional and will allow me to support the other variable modifiers in the end.
    • Right now the parser is pretty locked down.
    • I will probably never support arbitrary lisp like spreadsheets like emacs can. (As much as it would be fun to build a lisp parser here, it’s kind of missing the rest of emacs and the massive function library)
    • Cleaned up some asserts that happened when editing a table. The highligher didn’t like targets changing on the fly.
    • That said, I may support more and more of the calc library and even allow some user made extensions eventually.
    • My eventual goal is to flesh out my babel hack to a more full featured version with all the power that comes along with that. Without TRAMP, remote sessions etc. some of the power of bable is muted a little bit. (But who knows, maybe TRAMP is possible in sublime…) That said, we need powerfull spreadsheet support as an input source before really going to town on bable is possible.

New Cell Identifiers

With the refactor on how I am handling cells I can now support the > and relative cell identifiers -1 is one to the left or one up from the current target being calculated. It is a relative identifier. > means last column while >> means last but one.

abcde
ab510>=@3
11163.0914709848078967
  • In addition we have index symbols $# is the current column and @# is the current row
idxIndex Gen
1Testing Index
2Generation
  • Constants defined in your file can also be used in expressions
xy
worldb

Things that work:

  • Evaluation of rows and columns with basic arithmetic
  • vmean, vmax, vmin and a handful of other functions
  • the basic range syntax seen above.
  • respecting the header in column expressions
  • filling in a cell with an expression and having it automatically be moved to tablefmt
  • cell highlighting when editing expressions.
  • horizontal separators are now respected as non cells.
  • Negative (relative) or arrow cell indexes
  • Index symbol $# and @#

Things that do NOT work:

  • Automatically updating your expressions when you resize the table
  • calc style output formatting (semi colon)
  • Advanced tabled features / Named fields
  • box range targets
  • Visualizing columns
  • gnu plot support
  • hline symbols
  • more functions
  • remote() references to other named tables.

1.1.13

Spreadsheets Preview V2

WARNING: Super experimental, use at your own risk.

Spreadsheets In Org

  • Horizontal rules are now respected in row ids
  • Cell highlight can help with understanding formulas
  • Fixed a couple of bugs with cell indexing
  • Calling execute on a cell with := will introduce a new formula into the TBLFM and evaluate the table.
  • = Should add a column expression
    abcde
    ab54:=$1
    11111

    Still very poorly tested but improving.

    Things that work:

    • Evaluation of rows and columns with basic arithmetic
    • vmean, vmax, vmin and a handful of other functions
    • the basic range syntax seen above.
    • respecting the header in column expressions
    • filling in a cell with an expression and having it automatically be moved to tablefmt
    • cell highlighting when editing expressions.
    • horizontal separators are now respected as non cells.

    Things that do NOT work:

    • Automatically updating your expressions when you resize the table
    • calc style output formatting (semi colon)
    • Negative or other fancier ranges
    • Named fields
    • Visualizing columns

    Right now evaluating a table is bound to the execute DWIM binding.

NOTE: This feature will never be completely compatible with ORG. Org supports the ability to execute arbitrary lisp expressions on table cells. We aren’t going that far. That said, I really appreciate the basics of the spreadsheet feature in org and we should be able to support most of the basics with our own flair.

1.1.12

Tables

REALLY preliminary table formula preview. It’s buggy!

The example below runs, but not much else will.

Spreadsheets In Org

I am undecided if I will continue with attempting to use the python ast for my expression support or simply roll my own parser as my limited knowledge of the ast module has me at a loss of how to change the default grammar. (If anyone has input and knowledge here that would be beneficial)

abcde
ab512
11111

Things that work:

  • Evaluation of rows and columns with basic arithmetic
  • vmean, vmax, vmin and a handful of other functions
  • the basic range syntax seen above.
  • respecting the header in column expressions

Things that do NOT work:

  • Automatically updating your expressions when you resize the table
  • Filling in a cell with an expression and having it automatically be moved to tablefmt
  • Cell highlighting when editing expressions.
  • calc style output formatting (semi colon)
  • Negative or other fancier ranges
  • Named fields
  • Visualizing columns
  • Horizontal separators are currently considered in cell indexes (this will be fixed)

Right now evaluating a table is bound to the execute DWIM binding.

1.1.11

Table Editing

  • Incorporated Table Edit keybindings allowing for column and row movement, navigation, inserting and deleting rows and columns and hline insertion with some key bindings.
  • Improved separator auto detection during import and region conversion.

1.1.10

None of the new commands are bound to a keybinding.

Blank Table Insert

  • “Org Insert Blank Table”
  • This will insert a blank WxH blank table at point.

Csv Import

  • “Org Import Csv”
  • Still in its infancy
    • Added Org Import Cvs command. Will import a csv file into a table.

Convert Region To Table

  • “Org Convert Region To Table”
  • Only works with commas at the moment.
  • Tries to convert a region to a table, will improve with time.

1.1.9

Editing

Improved DWIM Additions to Numbered lists

A numbered list preceded by a normal list was confusing DWIM extension. The system was putting the new entry above the unordered list.

- This would disrupt DWIM editing of the list below
- DWIM was finding this list and thinking it was part
- of the numbered list.
1. I am extending this list
2. This is the list I am extending

The same thing could happen for example blocks or src blocks.

Improved Alternate Additions to Lists

  • Ctrl+Shift+Enter is an extended insert For numbered lists it will extend the list vs insert where you are.
  • This should now work for all the list types.

Org Sort List

  • Works when cursor is on list types.
  • Will sort the list aphabetically

Agenda

  • Loose Tasks View was sometimes not detecting top level loose tasks

1.1.8

Editing

  • DWIM editing of numbered lists has improved slightly Fixed some bugs with lists at the end of a buffer or with a blank line above the list.
    • DWIM editing of standard unordered lists (not checkbox) is now supported properly.
    • Indent and DeIndent somewhat work on lists (tabs vs spaces are still a little problematic)

1.1.7

Editing

  • Request: Checkboxes in Headings
  • Checkbox summaries at the END of a heading but before tags are now supported and will be updated when a checkbox is toggled:

[#A] Heading with summary [33%]

  • [ ] A
  • [ ] B
  • [x] C
    • [x] D

Agenda

  • Org Agenda will reload all open buffers to pick up agenda items in unsaved buffers

1.1.6

  • Added keybindings utility function to help author docs.
  • Bug found with active timestamps not recurring properly datetime conversion was not working properly

1.1.5

Stability and Performance

  • Fixed some issues in the agenda with old SCHEDULED: values We would search forward in time forever trying to find a match in the agenda. This could make org files with REALLY old SCHEDULED tasks that were not closed take a long time to render in the agenda.

    I have now capped it. 4 Months is the default: This goes for deadlines, active timestamps and scheduled values.

    In addition I have enabled some caching for following repeat rules which should improve overall performance here.

    		agendaMaxScheduledIterations: 120
        
  • Working to improve handling of dates without times in the agenda. This could cause some assertions in some of the new scheduled and deadline handling systems I believe I have all the asserts now but I am working on ensuring intuitive behaviour.
    • Fixed display of plain (no time) DEADLINES, they now show the due date properly
    • Fixed closing of plain (no time) DEADLINES, they would assert before when trying to update the time.

1.1.4

Editing

  • Changed default keybinding. Capture is now Alt+o z to mirror neovintageous mode with Z (it also did not work before due to other Alt+o c … commands)

Stability

  • Removed legacy automatic copy of settings files to User folder now that we are using the new dual pane settings mechanic. This was causing an assert on startup for users on ST3.
  • Active timestamps with ranges were not showing up in the agenda properly. This was due to how the timestamps were querried. Should now be fixed.
  • Closed Scheduled timestamps would show up in the week view even after the scheduled date. this was a byproduct of the new scheduled behaviour and has been fixed. When closed the items will show up ONLY for the date they were scheduled. (They do not reflect) the date at which they were closed. In the future I hope to make that happen. NOTE: they do not show up in the day view at the moment. I will work to improve that in a future release.
  • Toggling a task to done with a recurring timestamp will set the LAST_REPEAT and LOGBOOK entries properly now and will update the base timestamp.

1.1.3

  • Fixing regression in 1.1.2 New shared keybinding command was being instantiated improperly

1.1.2

  • Added OrgDeadlineCommand OrgScheduleCommand OrgActiveTimestampCommand to add SCHEDULE, DEADLINE and active timestamps using the quick picker.

1.1.1

Scheduling

  • DEADLINE works in the agenda. Very minimal visualization at this time. Will show Warning, Due and Overdue messages on the right hand side of the day view.
  • DEADLINE: <........ -3d> basic warning cookies work
  • Fixed a bug with new SCHEDULED: behaviour in week view.
  • Removed visualization in the CalendarView for SCHEDULED and DEADLINE while I figure out the best way to visualize that, that is not super ugly.

Editing

  • New Link Editing Commands Org Copy Href will copy the href out of a link onto the clipboard currently not bound to a keybinding.

    Org Select Href will select the href in a link, even if it is folded.

    currently not bound to a keybinding

1.1.0

Scheduling

  • Support active timestamps vs SCHEDULED SCHEDULED is when you want to start on a task while tasks with a timestamp are scheduled at a point in time.
    	    ** TODO Heading
    	       SCHEDULED: <startdate>  <-- This will appear in the agenda until you close the task
    	    ** TODO HEADING
    	       <date>  <-- This will appear in the agenda but only at the date specified
        
  • BREAKING CHANGE Before I would only show tasks, these are items with an open TODO state. Now, by default anything that has an active timestamp or is scheduled will show up in the agenda UNLESS you set that view to :onlytasks as a parameter.
    	    ** HEADING
    	       <date>  <-- This will now appear in the agenda where before it would not
        
    "AgendaCustomViews": 
    {
      "Default": ["Calendar", "Week", "Day : onlytasks", "Blocked Projects", "Next Tasks", "Loose Tasks"],
      "Todos":   ["Todos"],
    }
        

    Note the onlytasks parameter, that will filter out non tasks from the Day view in my default agenda view.

  • DEADLINE is still not supported but support should be comming in a future release.

1.0.10

Snippets

  • Added link insertion snippet

    <l

    Will insert a new quote jumping between the fields and jumping after the link when done

    $2 $0

Agenda View

  • Truncated filename in day view for filenames longer than 12 characters.

ST4

  • Fixed quick panel views to continue to work on ST4 builds.

1.0.9

Editing

  • Org Select Subtree This will select the full subtree of the active heading.
    • alt+o m s
    • <space> m s (neovintageous normal mode)
      • Org Select Entity This will select just the current node
        • alt+o m e (mark entity)
        • <space> m e (neovintageous normal mode)
      • Org Copy Subtree This will copy the entire subtree to the clipboard.
        • alt+o y s (yank entity)
        • <space> y s (neovintageous normal mode)
      • Org Copy Entity This will copy the current node to the clipboard.
        • alt+o y e (yank entity)
        • <space> y e (neovintageous normal mode)

Folding

  • Fixed link tab cycling.

Color Scheme Generator

  • The generator is now able to handle simple tmTheme files.

    NOTE: it converts them to sublime-color-scheme files in the output folder.

  • Added Org Select Color Scheme menu item to switch Org between color schemes you have already generated. NOTE: same caveats hold about having org files open when switching. Sublime does not automatically switch existing views.

NeoVintageous

  • For ST4 users - neovintageous has upgraded to python 3.8 this means that my hacks to push register 0 with the values of the system clipboard aren’t working until I upgrade OrgExtended.

    I will attempt to make that a priority for those that care.

1.0.8

Folding

  • Fixed a bug where buffers that are lacking a filename can still be folded.

Clocking

new setting:

  • clockingSubMinuteClocks: true will now keep clocking entries that are smaller than a minute

Movement

  • Fixed move heading up / move heading down. This now does the same as org-move-subtree-up and org-move-subtree-down.
    • Moves headings within siblings at the same level of the tree.

1.0.7

Color Scheme Generator

  • Date picker syntax extended to work with generic color schemes
  • Agenda picker syntax extended to work with generic color schemes
  • Color scheme generator has time delay to try to avoid popup errors when generating and switching color schemes.
  • Color scheme generator will generate some of the key agenda colors.
  • Color scheme generator will output a comment block for the date picker describing additional scopes.

1.0.6

Color Scheme Generator

This is a bit of an experimental feature to help people use org mode with their own color scheme. It is NOT complete and not where I want it to be yet. This does not yet touch the agenda or the data picker, but I do eventually intend to work on those as well.

I feel like orgmode should respect your chosen color scheme!

  • Org Create Color Scheme From Active

When run from a normal NON org mode buffer will sample the currently active color scheme, create a new color scheme file in:

Packages/User/OrgColorSchems/<originalName>_Org.sublime-color-scheme

It will then add a couple of key scopes such as:

orgmode.preamble
which is used to make the leading stars invisible on a subheading
orgmode.state.*
These are used to give the core built in states some color

This also adds a comment block in the color scheme file that tries to help new users understand what their options are. Note this is based off your active color scheme.

This will ALSO change the active OrgExtended color scheme to be this new color scheme to let you see how it is going to pan out. This may, or may NOT work out well for you!

NOTE: This is a preview feature. It is still under active development and will change / improve as I mature it. I felt it might be beneficial to some to release it at this point. PLEASE only use this feature if you feel confident with your ability to manipulate sublime color schemes. I have yet to document the feature or test it on a wide variety of color schemes. Ultimately I would like to include the orgagenda and orgdatepicker schemes into this one scheme. To do that I need some more creative programmatic means of generating a starting color palette from a pre-existing one. That will take a bit.

However, in the interim I am happily using a generated Guna color scheme on my personal machine.

1.0.5

Syntax Highlighting

  • Bash blocks uses embed to allow them to escape properly
  • Core syntax (not agenda and picker) now support standard syntax markers
    • NOTE: Not all features are supported or colored. Existing OrgExtended color schemes are still the preferred means of viewing an org file.
    • Eventual goal is to take an existing active color scheme and provide a tool to extend it to support all the org coloring. This is a first step in that direction.
  • Created languagelist.yaml to make it easier to add new languages to the syntax.

1.0.4 HTML Exporter Improvements

  • #+CAPTION comments export a custom figure for tables and images.
    • At the moment captions are always t-above style.
    • Figures are done with a div and span pair.
    • Styles include: .figure .figure-number and caption.t-above and caption.table-number
  • #+AUTHOR, #+TITLE, #+EMAIL, #+LANGUAGE tags have rudimentary support although very rough.
  • #+NAME is stripped out of output properly.

1.0.3

  • HTML Exporter has better support for HTML_ATTR comments.
  • Capture now works on ST4 4096+ with the new modifiers
  • Direct capture mode has had some fixes that handle spaces on a line and end of file better
  • WeekView in calendar now respects agendaDayStartTime and agendaDayEndTime
    • View will be truncated to the hours specified

1.2.0

  • Documentation moved out of the repository to its own repository this was done to shrink the size of the package.
  • Turned off logger that was accidentally left on.
  • Added “openas”: “direct” to capture definitions. This will open the capture directly in the file at the target location.
  • Added “agendaFirstDay” and “agendaWeekViewNumDays” to settings to allow users to start the week view from monday rather than sunday and limit the week view to just a 5 day view rather than 7 days if desired.
    • Actually agendaFirstDay got renamed to firstDayOfWeek as the date picker now respects the firstDayOfWeek as well rather than just the agenda
  • Cleaned up a bunch of old debugging output.
  • Working on named targets for blocks in the parser, this is to facilitate eventual chainging of inputs in the bable execution.
    • Fixed archive notation to work without the colon separator.
    • added <q and <v quote and verse snippets
    • Added these release notes
    • Improved settings to use the new settings ui.
    • Changed docs link in settings to open the docs repo rather than opening the docs in sublime.
    • Fixed global tab cycling on first line of file.
    • agendaFirstDay can now be the english name of a day of the week OR an integer.
    • Month view in the agenda now respects agendaFirstDay
    • PRIORITIES comment is now respected in change priority command
    • STARTUP comment now recurses
    • WARNING: orgextended.sublime-syntax renamed to OrgExtended. This is so the title appears as OrgExtended in the syntax list on the bottom right of sublime. This can caust errors when loading sublime with an old settings file. Please carefully rename your settings file and close all org tabs.
    • Fixed a number of issues when loading as a zipped package. Export should work from a package again.
    • agendaDayStart and End renamed to agendaDayStartTime and agendaDayEndTime for more clarity

1.0.1

  • Improving link handling for local files.
  • Fixes some bugs around generating local file links.

Initial release of Org Extended

Setup instructions can be found here: https://github.com/ihdavids/orgextended_docs/blob/master/start.org

Org Mode in Emacs is an extensive lifestyle plugin. This plugin couldn’t hope to duplicate the full expanse of Emacs org mode. That said, this plugin attempts to provide some of the amazing functionality found in Emacs org mode right here in sublime text!

Org Mode IS: https://orgmode.org

  • A document interchange format
  • A personal wiki
  • A task and project management toolset
  • An agenda
  • A means of building living documents known as literate programming
  • The backend for blogs, webpages, and an outliner for authors.
  • A tool for authoring presentations.
  • A time tracking tool
  • A spreadsheet and data management tool
  • And much much more.

This plugin is written selfishly as a means of helping me stay organized. It comes with no warranty whatsoever. It is my hope that you still find it useful.