1. 02 Mar, 2019 1 commit
  2. 05 Feb, 2019 4 commits
  3. 21 Oct, 2018 1 commit
  4. 15 Oct, 2018 1 commit
    • Phil Booth's avatar
      refactor(tokens): make arena reference-counted member instead of static · 9eb83cd5
      Phil Booth authored
      The initial motivation for this was the possibility of multiple arenas
      per file, which obviously precludes having a single static arena.
      
      But happily, in making the change I also fixed two other problems:
      
      1. The tests no longer need to be run in a single thread.
      
      2. The "mystery" of missing odd-numbered token ids was fixed by using
         mem::replace instead of Vec::insert inside TokenArena::set.
      9eb83cd5
  5. 13 Oct, 2018 1 commit
  6. 12 Oct, 2018 2 commits
  7. 11 Oct, 2018 4 commits
  8. 10 Oct, 2018 5 commits
  9. 09 Oct, 2018 2 commits
  10. 08 Oct, 2018 1 commit
  11. 07 Oct, 2018 7 commits
  12. 23 Sep, 2018 1 commit
    • Phil Booth's avatar
      refactor(tokens): replace Token trait with an enum · e7c2efe3
      Phil Booth authored
      Using a trait was a poor fit for the token types because they share so
      much data and behaviour. Traits can have default method implementations
      but that falls down when those implementations need to access non-trait
      members such as data. An enum works much better, with common behaviour
      pulled out to helper structs.
      
      One snag I hit was that I ended up with circular references that caused
      the compiler to complain. The only way I could see to work round this
      was to stop holding direct references as use a memory arena instead. So
      where there were Rc<RefCell<Token>> we now use ids which are actually
      just indices into a big vec of tokens.
      
      This should also make it straightforward to handle the propagation of
      edits through child token types.
      e7c2efe3
  13. 08 Jul, 2018 1 commit
  14. 02 Jul, 2018 1 commit
  15. 01 Jul, 2018 5 commits
  16. 30 Jun, 2018 3 commits