Thu Jan  7 10:00:41 EST 2010  [email protected]
  * IReader.hs: hlint, whitespace

Thu Jan  7 10:01:26 EST 2010  [email protected]
  * IReader.hs: add shift functionality to allow expressing 'priorities'
  SuperMemo associates each article with a number, and then applies the spaced 
repetition formula.
  But I prefer simpler code - and since we have a circular list of articles, 
higher priorities can
  force articles to come up sooner just by putting the article not at the end, 
but 10 before the end,
  for example. Of course, this means the priority of an article changes 
completely every time you save
  the article, but that's fine with me.

Thu Jan  7 10:03:58 EST 2010  [email protected]
  * Mode.Reader: make use of shift functionality
-- 
Yi development mailing list
[email protected]
http://groups.google.com/group/yi-devel
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512


New patches:

[IReader.hs: hlint, whitespace
[email protected]**20100107150041
 Ignore-this: 3176d4a3f5ba62f68f511b786b0e938
] hunk ./src/Yi/IReader.hs 46
 -- | We remove the old first article, and we stick it on the end of the
 -- list using the presumably modified version.
 removeSetLast :: ArticleDB -> Article -> ArticleDB
- -removeSetLast adb old = (snd $ split adb) |> old
+removeSetLast adb old = snd (split adb) |> old
 
 -- | Insert a new article with top priority (that is, at the front of the list).
 insertArticle :: ArticleDB -> Article -> ArticleDB
hunk ./src/Yi/IReader.hs 60
 -- | Read in database from 'dbLocation' and then parse it into an 'ArticleDB'.
 readDB :: YiM ArticleDB
 readDB = io $ (dbLocation >>= r) `catch` (\_ -> return empty)
- -          where r x = fmap (decode . BL.fromChunks . return) $ B.readFile x
+          where r = fmap (decode . BL.fromChunks . return) . B.readFile
                 -- We read in with strict bytestrings to guarantee the file is closed,
                 -- and then we convert it to the lazy bytestring data.binary expects.
                 -- This is inefficient, but alas...
hunk ./src/Yi/IReader.hs 71
 
 -- | Returns the database as it exists on the disk, and the current Yi buffer contents.
 --   Note that the Initializable typeclass gives us an empty Seq. So first we try the buffer
- ---   state in the hope we can avoid a very expensive read from disk, and if we find nothing 
+--   state in the hope we can avoid a very expensive read from disk, and if we find nothing
 --   (that is, if we get an empty Seq), only then do we call 'readDB'.
 oldDbNewArticle :: YiM (ArticleDB, Article)
 oldDbNewArticle = do saveddb <- withBuffer $ getA bufferDynamicValueA
[IReader.hs: add shift functionality to allow expressing 'priorities'
[email protected]**20100107150126
 Ignore-this: 40f09f42bdd141cc6545b0bb049d7d00
 SuperMemo associates each article with a number, and then applies the spaced repetition formula.
 But I prefer simpler code - and since we have a circular list of articles, higher priorities can
 force articles to come up sooner just by putting the article not at the end, but 10 before the end,
 for example. Of course, this means the priority of an article changes completely every time you save
 the article, but that's fine with me.
] hunk ./src/Yi/IReader.hs 48
 removeSetLast :: ArticleDB -> Article -> ArticleDB
 removeSetLast adb old = snd (split adb) |> old
 
+-- we move the last entry to  the entry 'length `div` n'from the beginning; so 'shift 1' would do nothing
+-- (eg. the last index is 50, 50 `div` 1 == 50, so the item would be moved to where it is)
+--  'shift 2' will move it to the middle of the list, though; last index = 50, then 50 `div` 2 will shift
+-- the item to index 25, and so on down to 50 `div` 50 - the head of the list/Seq.
+shift :: Int ->ArticleDB -> ArticleDB
+shift n adb = if n < 2 || lst < 2 then adb else (r |> lastentry) >< s'
+              where lst = S.length adb - 1
+                    (r,s) = S.splitAt (lst `div` n) adb
+                    (s' :> lastentry) = S.viewr s
+
 -- | Insert a new article with top priority (that is, at the front of the list).
 insertArticle :: ArticleDB -> Article -> ArticleDB
 insertArticle adb new = new <| adb
hunk ./src/Yi/IReader.hs 124
 -- | The main action. We fetch the old database, we fetch the modified article from the buffer,
 -- then we call the function 'updateSetLast' which removes the first article and pushes our modified article
 -- to the end of the list.
- -saveAndNextArticle :: YiM ()
- -saveAndNextArticle = do (oldb,newa) <- oldDbNewArticle
- -                        let newdb = removeSetLast oldb newa
- -                        writeDB newdb
- -                        setDisplayedArticle newdb
+saveAndNextArticle :: Int -> YiM ()
+saveAndNextArticle n = do (oldb,newa) <- oldDbNewArticle
+                          let newdb = shift n $ removeSetLast oldb newa
+                          writeDB newdb
+                          setDisplayedArticle newdb
 
 -- | Assume the buffer is an entirely new article just imported this second, and save it.
 -- We don't want to use 'updateSetLast' since that will erase an article.
[Mode.Reader: make use of shift functionality
[email protected]**20100107150358
 Ignore-this: efd43888ba228d9e2e0ec3bfb4f86799
] hunk ./src/Yi/Mode/IReader.hs 6
 -- We have it as a separate mode so users can bind the commands to this mode specifically.
 module Yi.Mode.IReader where
 
+import Data.Char (intToDigit)
 import Yi.Buffer.Misc
 import Yi.IReader
 import Yi.Keymap
hunk ./src/Yi/Mode/IReader.hs 20
                              modeKeymap = topKeymapA ^: ikeys }
     where -- Default bindings.
           -- ikeys :: (MonadInteract f Yi.Keymap.Action Event) => f () -> f ()
- -          ikeys = (choice  [metaCh '1' ?>>! saveAndNextArticle,
- -                            metaCh '2' ?>>! saveAsNewArticle,
- -                            metaCh '3' ?>>! deleteAndNextArticle] <||)
+          ikeys = (choice ([metaCh '`' ?>>! saveAsNewArticle,
+                           metaCh '\DEL' ?>>! deleteAndNextArticle] ++
+                           map (\x -> metaCh (intToDigit x) ?>>! saveAndNextArticle x) [1..9])
+                            <||)
 
 ireaderMode :: Mode syntax
 ireaderMode = abstract { modeName = "interactive reading of text" }
hunk ./src/Yi/Mode/IReader.hs 31
 ireadMode ::  YiM ()
 ireadMode = do withBuffer $ setAnyMode $ AnyMode ireaderMode
                nextArticle 
- -               msgEditor "M-1: next; M-2: save; M-3: delete"
+               msgEditor "M-Del delete; M-` new; M-[1-9]: save with increasing priority"

Context:

[Unicode: again a lot more symbols
Nicolas Pouillard <[email protected]>**20091217102244
 Ignore-this: c7e9246ace429c215e26861b07ed610a
] 
[More unicode chars: math{bb,cal} letters...
Nicolas Pouillard <[email protected]>**20091208135156
 Ignore-this: e2a2c450d91d7997dfe5e0a45d338ae2
] 
[Yi.Char.Unicode: more symbols or shortcuts
Nicolas Pouillard <[email protected]>**20091201083115
 Ignore-this: 77f1b1996b37157761b8af3c34d579b7
] 
[Yi.Char.Unicode: more greek shortcuts
Nicolas Pouillard <[email protected]>**20091125172327
 Ignore-this: 7dbdef674e308e08429ed46be73e91db
] 
[Yi.Char.Unicode: more chars
Nicolas Pouillard <[email protected]>**20091125131229
 Ignore-this: 6909429f9c10042492ccade279f1de74
] 
[Abella: some more improvments
Nicolas Pouillard <[email protected]>**20090828113343
 Ignore-this: 3822393d5ce3baff600b59c0eb3d3917
] 
[Update Yi.UI.Vty for VTY 4.1 and 4.0 compatability
[email protected]**20091113022440
 Ignore-this: d28fc1b2c7e7bad853ae81409b79c106
] 
[Yi.Style: haddock comments
[email protected]**20091011221655
 Ignore-this: b4e4913a22c71872b50d6233dcff49df
] 
[Yi.Buffer.Misc: haddock comments on Mode
[email protected]**20091011221621
 Ignore-this: 84c3d629726e2a78d78785571e78fd73
] 
[Yi.Lexer.Alex: haddock comments
[email protected]**20091011172107
 Ignore-this: c5aabffbf4d263a1c137db49dd518edb
] 
[copy operation and code clean up
Wen Pu <[email protected]>**20091009194543
 Ignore-this: f3af2fb0c9f88dcabfd7fe278dda0c27
 1. file copy operation done
 2. simplify DiredOps
 3. eliminating some extra long lines
] 
[Use QC 2.1.0.2
[email protected]**20090927154414
 Ignore-this: a6b950cba83b12e2e1fad3e61ae27cb8
] 
[Update to data-accessor 0.2.1
[email protected]**20090920091817] 
[re-organize refreshEditor
[email protected]**20090916205757
 Ignore-this: abd0e67de3fa920a273e726d72d8a053
] 
[dired patch
Wen Pu <[email protected]>**20090913234653
 Ignore-this: 6e2fdd90bea1e3ae430ddd08c81bb32e
   1. fix "apply to all" problem
   2. remove marks when file is moved or deleted
   3. split DORemove into DORemoveFile and DORemoveDir, because removeLink
 only works for file; use removeDirectoryRecursive for dirs.
] 
[One focused tree per window
[email protected]**20090910222033
 Ignore-this: fb45ae8eb397ca639e2d06d9d659ef56
] 
[comments
[email protected]**20090910221910
 Ignore-this: cebcd4cf7656e0c5611898b0cd65289f
] 
[Y.C.Unicode: add some squared operators
Nicolas Pouillard <[email protected]>**20090909163835
 Ignore-this: 784e5d0f4ab80786cbf0935dd36f521c
] 
[Y.C.Unicode: approx and some circled operators.
Nicolas Pouillard <[email protected]>**20090909162801
 Ignore-this: 7307d6f831cd1bfd4d9f9d287f5c4107
] 
[(Vty) Render the tabs not in focus with an underline. 
[email protected]**20090909093533
 Ignore-this: d722415fceb2ef1ca9671cd403154326
 This is the same behavior as Vim. Though I kinda think this is backwards. Rendering the tab in focus
 underline makes more sense to me!
 
] 
[fix non-testing build
[email protected]**20090908201338
 Ignore-this: 6957c5af2017c762d0fb26b1048ef584
] 
[use the properties of pointed list to assure minibuffer target is correct. Not onCloseBufferE
[email protected]**20090908193923
 Ignore-this: b4e3d48b23b30e74d0cc0214d0c62cbb
] 
[use a temp buffer for Dired mode. Pull/put filepath of dir from DiredState
[email protected]**20090907164549
 Ignore-this: 1419c5e130815b3d3baa1aa610cc90e7
] 
[newTempBufferE should search to verify the name used does not already exist.
[email protected]**20090907160726
 Ignore-this: 3b8f539b7adc4a14c4e5d14244ca273e
] 
[(Vim) Use newTempBufferE to correct :tabnew
[email protected]**20090906234648
 Ignore-this: 1fd2f4c050afcf4ebaec26e69d2cd00f
] 
[Adding newTempBufferE to switch to a new buffer with a unique name.
[email protected]**20090906234602
 Ignore-this: 6ff0d5331f7443bbe687f8939df5ed42
] 
[(issue 298) hlGetTree cannot equal just focused. That is only the strokes for the *last* window.
[email protected]**20090906170540
 Ignore-this: 5541fcb35ddf57ed8b5944cece5750b4
 All caches related to a window's presentation should be on a per-window basis. The "focused" part of
 the syntax highlighter Cache is updated for each window in Yi.Core:
         let e6 = fst $ runOnWins (snapInsB >> focusSyntaxB) e5
 However since the Cache only has a single focused member, and not one per window, then the focused
 for only the last window is retained.
 
 The focused field should be removed from the Cache and moved to the Window structure?
 
] 
[Update Yi.UI.Pango.Control so it uses String instead of Rope
[email protected]**20090906161513
 Ignore-this: d492b71a6fb580502a4c9114dede4fd3
] 
[Start of Yi.UI.Pango.Control for embedding Yi in other apps
[email protected]**20090901053128
 Ignore-this: 4bce2ae8481d4cc062fe8b9abdf321d2
] 
[Make sure the current buffer and window is the same as that which spawned minibuffer.
[email protected]**20090905055233
 Ignore-this: 8c6520f9242feb77254957f16e492e81
 Resolves issues 293 and 297.
 
 Added the ability for an action to be associated with a buffer such that the action is executed when
 the buffer is deleted using Yi.Editor.deleteBuffer. This is used by the minibuffer to assure the
 focus is always as expected when the minibuffer is closed. 
 
 I'm only partially satisfied with this solution, but it works and is safer than the other solutions
 I was going to apply ;-)
 
] 
[Strokes/Haskell.hs: Fixed highlighing of hiding keyword
[email protected]**20090904172831
 Ignore-this: 23d625570f5be8f8dde6eb8db4108f8a
] 
[Yi.UI.Vty - DisplayBounds is now DisplayRegion
[email protected]**20090831205902
 Ignore-this: c84085b27c53e739df99d3d289da52af
] 
[use vert_cat and horiz_cat instead of vertcat and horzcat
[email protected]**20090829171101
 Ignore-this: b89e8d08a0fc425100dfdac12f06bf66
] 
[prefer Vty.char to renderChar
[email protected]**20090828041146
 Ignore-this: 2de4c7ef9ebf642e84858f5b3da0f4ff
] 
[Updating Yi.UI.Vty to compile with VTY 4.0. Does not run. Not optimal
[email protected]**20090827235512
 Ignore-this: bd60f2f77e04f64da59197364630f102
] 
[All haskell modes are based on the same token type
[email protected]**20090901112112] 
[bind prettify in precise haskell mode
[email protected]**20090901111715] 
[Update dollarify type, for consistency
Robin Green <[email protected]>**20090824145534
 Ignore-this: c1fa5adc6f87a7f2b7f6bca5182719aa
] 
[Resolve issue 296 - decode UTF-8 encoded directory entries before display.
[email protected]**20090828173158
 Ignore-this: 24551172fd29f1570eadb33ff6c0207f
] 
[Y/U/Ertai: update my config
Nicolas Pouillard <[email protected]>**20090828114929
 Ignore-this: 2fb6c90aed8a0707ea3dd4a45c9cbf80
] 
[Yi.Users.Corey - disable textToToken based annotations for now
[email protected]**20090828054156
 Ignore-this: 76fd7bffd4a3b273d6bb1965f0167bc0
] 
[dired patch
Wen Pu <[email protected]>**20090827080837
 Ignore-this: ad7750a4858149db341b01a2f5f9d162
 This patch is trying to:
   1. Keep refining DiredOp and procDiredOp
   2. Implement rename operation (when overwrites happen, "apply to all" ('!') is
 not working correctly at this point.)
   3. Fix naming problem
   4. Take care of the pointer's position during diredRefresh
   5. Add more comments
 
] 
[better infrustructure for diredOp
Wen Pu <[email protected]>**20090824055425
 Ignore-this: 2baaeb125a2a45ce5292ca16ec2d3063
 1. Add a better infrustructure for dired operations
 2. moving promptFile to Misc.hs
] 
[Begin adding startInsertKeymap to KeymapSet
Jeff Wheeler <[email protected]>**20090819135439
 Ignore-this: 9e91278e9a67f4f3765a6ba9f0098a61
] 
[marks and file deletion in Dired
Wen Pu <[email protected]>**20090818053415
 Ignore-this: 7788f25f1d19e90adba0f1e3aad25437
 
 Modified the original unused diredMarks field in DiredState, added several mark
 related functions, and a naive file deletion implementation.
 
 Also fixed an minor bug in setting readonly dired buffer.
] 
[haskell: treat 'newtype' as 'data'
[email protected]**20090817145131
 Ignore-this: f875497db2e3ff16e20a4c41f24c6d0d
] 
[syntax focusing: better handling of empty subtrees
[email protected]**20090817092330
 Ignore-this: dd8770e07d0df998181dc5756ebdb5cc
] 
[Fix the indentation in guards for real
[email protected]**20090817085759
 Ignore-this: 732c74e19a361607c4788e33da42b2dd
] 
[Fix indentation of guards in precise mode
[email protected]**20090817083719
 Ignore-this: 3e202f311f9aed63b6844679e4cd325d
] 
[Read-only Dired, 'u' to undo mark
Wen Pu <[email protected]>**20090817010607
 Ignore-this: a5b4193b614509e15a77662a6cb8ac8f
] 
[precise haskell: use focusing 
[email protected]**20090816185448
 Ignore-this: 1a84ce21edc70ca768b22572c63edc2f
] 
[haskell strokes: don't repeat the default case
[email protected]**20090816185424
 Ignore-this: c59bc500801fb06ef27fd0d261f63c7e
] 
[further regularisation of the haskell ASt
[email protected]**20090816184928
 Ignore-this: 832040d87f1936502bdbafdb15e4caaa
] 
[Fix for Dollarify.hs
[email protected]**20090816155649
 Ignore-this: 2954f48b95a3fe0172a22a4adb542d1b
] 
[use the focusing driver as possible
[email protected]**20090816145011
 Ignore-this: 69c8979481b1dbd375e8e8bdd69f6748
] 
[oops, fix build
[email protected]**20090816144815
 Ignore-this: 372a877d0631169400d02bae128148f4
] 
[haskell: regularise the syntax type
[email protected]**20090816144441
 Ignore-this: b2a65b9c43e92108e4ad8e3d90dc9f2
] 
[fix Paren mode indent
[email protected]**20090816144211
 Ignore-this: 12ae6635a700130bc5509414e36d52b7
] 
[Fix the indentation hints in "clever haskell mode"
[email protected]**20090816133147
 Ignore-this: e194ceddd8b1c3c4df45af23b6aba209
] 
[remove obsolete code
[email protected]**20090816120845
 Ignore-this: 1f46aefdf352c543c6e60b8d08bd6061
] 
[Buffer-local transform KeymapSets
[email protected]**20090816120836
 Ignore-this: 2a6121421c9e6e37766b4e98f96f3525
 
 This may force to update the configuration! See ./src/Yi/Users/JP.hs.
 
 Additionally:
   * There is an extra field in the sets for "startup" keymap.
   * This allows to put the "forever" in the right place, see extractTopLevel
   * Buffer-local transformation can put hooks at more convienient places;
     making them more powerful.
 
] 
[Cmcq.hs update for testing how fast haskell mode is
[email protected]**20090815205416
 Ignore-this: db67f49ee582e58e88c7aacd8fe273de
] 
[Scrap the obsolete SubTree class
[email protected]**20090815193829
 Ignore-this: 7ed307f78273cee20174b442b34001e5
] 
[remove obsolete feature
[email protected]**20090815172830
 Ignore-this: cf5acefc629383065afd25b60c14a74b
] 
[Change the default insertion to True
[email protected]**20090815165910
 Ignore-this: fed9bc814040e64643866f78e42021f1
 
 This fixes #291 without additional complexity.
 
 If one really wishes False for default, it could be a field in the Config record. If one wishes "top-level" writes in emacs keymap, the refactoring in #292 should be done first.
 
] 
[syntax focusing: properly handle completely empty trees
[email protected]**20090815163430
 Ignore-this: a8a78def7eae15b94a703e77d173f4b6
] 
[fix emacs minibuffers
[email protected]**20090815161038
 Ignore-this: a1c8d95bdad65c73a191c34a9b8b0ac1
 (compilation mode is still broken)
] 
[fix #291
[email protected]**20090815153134
 Ignore-this: 246c685b055a5cfdb21a999ca6ce951d
 
 My solution is simply to output the action once at the beginning instead after each keypress.
 
] 
[Add keymap-debugging facilities
[email protected]**20090815151512
 Ignore-this: 663797566b71fade1949f56d5e5415c8
] 
[try a simpler solution to gathering pending events properly
[email protected]**20090815151225
 Ignore-this: 7a4b1ded3563151537a422bea13b3a7b
] 
[Attack issue #291 - pending key presses are not reliably shown
[email protected]**20090815141939
 Ignore-this: 9ea7a1f966b5d8391567b01c2557050c
] 
[Corrections to scrolling behavior
[email protected]**20090815101331
 Ignore-this: c8c026b4fc6d3cbff6f27b9d218f2a8f
 The window region should only be used after a call to the UI layout function,
 since otherwise it may be out of date.
] 
[paren: properly compute error tokens positions
[email protected]**20090815093124
 Ignore-this: f7e8e602601d63b7c2f09b72b62c01e7
] 
[Try to do EOF behavior better - layout should always follow a snapScreenB
[email protected]**20090814204317
 Ignore-this: 6d233d961c94e5050e3ec6c26d05cd3d
] 
[Pango optimization - there should only be one pango layout per refreshEditor
[email protected]**20090814203826
 Ignore-this: 4ae408c7add8c2db1a8750c20509ef88
] 
[use syntax focusing in linear modes
[email protected]**20090814200930
 Ignore-this: bea31abd2fbb952a7675d494fa3e877b
] 
[syntax focusing: properly handle empty subtrees
[email protected]**20090814200850
 Ignore-this: 4ba7c527bfab69a0e4b58d119069047f
] 
[clean up most of the OnlineTree obsolete code
[email protected]**20090814153034
 Ignore-this: 3bb3e8cfd7650f3304498ac9e8ae75a3
 
 This will make browsing big token-based mode files slower; fix upcoming.
 
] 
[fix bug: gotoLn did not work if target was out of window
[email protected]**20090814123709
 Ignore-this: 8eb2280101e1157f1384becf660e590d
] 
[remove Yi.Syntax.BList
[email protected]**20090814123458
 Ignore-this: 338d88f41b349a33dd5358b6a38d2e51
 
 This is made obsolete by the new tree focusing technique
 
] 
[Create 'cd' action in Vim keymap
Jeff Wheeler <[email protected]>**20090813201931
 Ignore-this: 7d0a402c7aeb2b9d81050d76ec6e47bf
] 
[Delete default tab titles
Jeff Wheeler <[email protected]>**20090813192905
 Ignore-this: d3d5c5ec73651c1abdc9710026fb0afe
 
 I originally added these to aid in developing tab support. The tabs work quite
 well now, so I'm removing the out-of-place default titles.
] 
[Implement insertTabBefore
[email protected]**20090813185311
 Ignore-this: fe29aec58e993d04e64093535ed8dc1b
] 
[Clicking should end the selection
[email protected]**20090813185125
 Ignore-this: 7d9b74b32d0ab3145961806a77914b2c
] 
[Set tab title even in minibuffer
[email protected]**20090813185036
 Ignore-this: f708595afa4c59727a84fb81f4f51da6
 The tab shouldn't be left unnamed, but perhaps there could be a nice way of
 getting the name of the buffer the minibuffer is attached to.
] 
[Try to correct scrolling behavior at end of file
[email protected]**20090813164520
 Ignore-this: 1c13900f495a73d6ab1fd79145b0bd5e
 Before, if you open a new buffer and type, then window would scroll as soon as
 you typed past the middle line of the screen. It should only scroll when you
 type past the last line.
] 
[Resizing should relayout
[email protected]**20090813162402
 Ignore-this: 88062049c63ea7e174dc19e3ae8aef98
 This fixes a layout problem where the first keypress in a new tab would be
 handled as if the window had height 0.
] 
[Allow the Pango frontend to control the current tab
[email protected]**20090813162354
 Ignore-this: ba470a0a08b6b7baa22ebbb99af33630
] 
[Fix typo
Jeff Wheeler <[email protected]>**20090813151542
 Ignore-this: 8e4793c567c9926abee50582ced119aa
] 
[Clean up Pango frontend a bit
[email protected]**20090813145732
 Ignore-this: d61a1cceba2a6e75087d94e8f13ec234
] 
[reorder refresh phases
[email protected]**20090813090801
 Ignore-this: 14a15ea36974d4dea613eb233f7852b9
 
 1. snapScreen 
 2. layout
 3. snapIns
 
] 
[Restore the "pointFollowsWindow" attribute
[email protected]**20090813083736
 Ignore-this: 7cfc30453b0c6b4c45287dc91957b56
 
 The other solution is to recompute the window right after a scrolling
 operation. I don't like it, because it makes the buffer code depend on the UI
 code.
 
 This decision can be revisited if we have a common layout mechanism for all
 UIs.
 
 
 
] 
[Fix previous change - deleteBuffer should be a no-op if there's only one buffer
[email protected]**20090812215353
 Ignore-this: ae9635db6b27f276b3bacca9b7417b4a
] 
[fix build
[email protected]**20090812211524
 Ignore-this: 42e8300b5366b047c892e0b726f587a
] 
[haskell: use new syntax driver
[email protected]**20090812200232
 Ignore-this: e84b023ccebcba1a21c11a7321346197
 
 This affects the so caller "cleverMode" -- ie. the current default haskell mode.
 
 The effects of this patch are:
   * Asymptotically faster browsing of files.
     This is very noticeable on large files like the Vim keymap; browsing the
     end of it can be twice as fast.
   * Sometimes the display of the syntax is delayed by one keystroke.
     I'll look into this soon.
 
] 
[regularise the Paren.Tree type
[email protected]**20090812153240
 Ignore-this: a50e73e6df107efd4995cc73139296b
] 
[prune focused trees
[email protected]**20090812142244
 Ignore-this: b116b06b8fc22a9ad00bec2377c173bd
] 
[fix bug in tree-focusing alg
[email protected]**20090812114352
 Ignore-this: 99d333c909385d18f648570a37636e23
] 
[remove BList from the Latex parser
[email protected]**20090812114338
 Ignore-this: 2617968ecbf75e2bc6c85b32d9c8b428
] 
[improve the tree-focusing algorithm
[email protected]**20090812085446
 Ignore-this: 6208e72d992afa04d35b00ecd8f96b05
] 
[comment
[email protected]**20090811184848
 Ignore-this: 8a099810a3158efe412a818dec59225a
] 
[JS: Minor documentation changes/fixes.
Deniz Dogan <[email protected]>**20090811220901
 Ignore-this: 32dd351a0fef21713afeeacd191045d8
] 
[ParserTest.hs: Minor documentation fix.
Deniz Dogan <[email protected]>**20090811195856
 Ignore-this: 29550e50124c29c896ecb5ba9ddc29f3
] 
[Add buffer opening test to Cmcq.hs
[email protected]**20090811185518
 Ignore-this: b44fb47a18be87ca8554365ddeea490
] 
[bufAccessLists were hanging on to old BufferRefs
[email protected]**20090811182757
 Ignore-this: 953535204efa857de8b4f717be4dad05
] 
[Neaten up previous patch
[email protected]**20090811173423
 Ignore-this: efcb1034052b33276e7ac2adb09b0538
] 
[switchToBufferE leak
[email protected]**20090811170003
 Ignore-this: 4e70218ae3e48060d0e447a90d4634c
] 
[Avoid excessive nubbing; this also avoids a leak if history isn't forced
[email protected]**20090811154943
 Ignore-this: 2baae4dec0168b089ae38f71ead80115
] 
[Optimization for updating Gtk attributes
[email protected]**20090811124917
 Ignore-this: 50bf83c172d6e21e299b2bebc4d922e9
] 
[Don't focus every window
[email protected]**20090811124825
 Ignore-this: 959d3859557ba815bfd88194e8dc4b35
 This corrects a problem where the main title was not set after changing
 the window until you press a key.
] 
[Add support for focusing syntax in Core
[email protected]**20090811120919
 Ignore-this: 2146d884059fd5ae4c108aebfb62d5a5
] 
[fix some bugs in the tree navigation code
[email protected]**20090811120613
 Ignore-this: c4da6b4760f40be66bffb70d789862f
] 
[remove obsolete function
[email protected]**20090811120421
 Ignore-this: 1f1019a8066d1d54d641a3160102a4c8
] 
[Small optimization for counting the number of lines in a chunk
[email protected]**20090811114903
 Ignore-this: 4cfb522e669ac3991524b43ac179183f
] 
[Let the window region be a mere value
[email protected]**20090811091025
 Ignore-this: 7398fca5647509ae51e363b9f8b09b93
 
 This simplifies things for what's coming.
 Also, this probably speeds up things, since the region is calculated 
 only once per layout. When it's a function from FBuffer, it must be
 recomputed every time the region is fetched.
 (And I'm just about to add a systematic usage of the region field right
 after the layout)
 
] 
[Add Pango support to Cmcq.hs
[email protected]**20090811075623
 Ignore-this: cfa07cd579f8ec058532c5ac978b5777
] 
[Avoid triggering a GHC bug with -Wall
[email protected]**20090811075321
 Ignore-this: fd476dc3c656328fd6036e15a9eeba
 I think this is http://hackage.haskell.org/trac/ghc/ticket/1148
] 
[Fix a leak in Pango and add a comment about what I was trying to achieve
[email protected]**20090811071718
 Ignore-this: b97724a63e1522761f513f376c7153cb
] 
[Haskell: accept noise (as errors) after a where clause
[email protected]**20090810213310
 Ignore-this: 792997fa1133ce8d5b9c5ce8af99c7c6
] 
[Add a focusing-aware syntax driver
[email protected]**20090810211750
 Ignore-this: 846acd8cc501902fe5706c8c5c18ca3e
 + Have a test latex mode for it.
] 
[latex: use regular datatype
[email protected]**20090810140846
 Ignore-this: a500916f87fc569a0e9b050f1aab26f9
] 
[remove an ambiguity (fix (part of) #284)
[email protected]**20090810135015
 Ignore-this: 54412695d3c2fd665deb114921c3de06
] 
[comments
[email protected]**20090810132709
 Ignore-this: b27fdd78faa94df93f4aa39055e1ec5f
 
 Colin: Do you know why the "getRegion" field of Window takes a Buffer parameter?
 There is only one buffer in the window...
 
] 
[introduce separate operation to focus the AST on a region
[email protected]**20090810132534
 Ignore-this: 42b1251ad5667d61b6ea2bbbb6f15701
] 
[support "type instance"
[email protected]**20090810132510
 Ignore-this: 264ac77870908d6637f34fd93071df5
] 
[Fixing doc build error in JS verifier.
Deniz Dogan <[email protected]>**20090810071821
 Ignore-this: 4c311eef2d9866d2449f21458a135c3a
] 
[update contributors record
[email protected]**20090809085613
 Ignore-this: a1546cebc39c76a6e344f6a017b411b
] 
[yet another leak
[email protected]**20090808180140
 Ignore-this: 99b5dfc885a6f729ad0c23a9934c4755
] 
[fix one more leak
[email protected]**20090808175101
 Ignore-this: a57dd6be960de68975c5adb812ca75e8
] 
[fix another leak
[email protected]**20090808143001
 Ignore-this: 55cb38df5781f543f949212487de0a54
] 
[Make sure user-configured executables do not check for recompilation
[email protected]**20090808101412
 Ignore-this: fb85bda8587a71b497bc412b4dec12f
] 
[fix a memory leak; also improve the style somewhat
[email protected]**20090807210932
 Ignore-this: 12b9966fd67f3ebf9a2e5bc48a7b98ef
] 
[comments
[email protected]**20090807145224
 Ignore-this: cd54987d02e554390155379e64fca9d0
] 
[Small -Wall
Jeff Wheeler <[email protected]>**20090807201940
 Ignore-this: a47f4362b5843092857f46d9946c063c
 
 I can't figure out how to get rid of the Interact import warning. GHC warns
 that nothing from it is used, but when it's removed, it errors on several
 missing definitions.
] 
[Further simplify Pango cleanup
Jeff Wheeler <[email protected]>**20090807164415
 Ignore-this: c14446d5fb767eda23a93fb8f53eab03
] 
[Cleanup cmd prompt in Pango
Jeff Wheeler <[email protected]>**20090807164215
 Ignore-this: addad521132db83c7a42aac5584e9be
] 
[Use os(windows) instead of flag(cautiousWrites)
Jeff Wheeler <[email protected]>**20090807154709
 Ignore-this: 41b3e380a053594714a7ef4f999b6cad
] 
[Added -threaded to ghcOpts to dyre. Also added -O2 for good measure
[email protected]**20090807151158
 Ignore-this: 5f2dd1abf7ca9b7732a5606d681ac964
] 
[Data.Rope: Wall police.
[email protected]**20090807151630
 Ignore-this: 1ed8b505ebea327c6835a03522aa405c
] 
[Create -fcautiousWrites flag
Jeff Wheeler <[email protected]>**20090807141002
 Ignore-this: aa928f59b0504cf929fc1add772c238c
 
 cautious-file doesn't work on Windows (does a lot of POSIX FFI), so create a
 flag for Windows users. I don't immediately see how to make this automatically
 disabled on Windows.
] 
[update Makefile to HConf's removal
[email protected]**20090807140127
 Ignore-this: c89d669230d4866cf7efa5cd245a06b8
] 
[put back ./src/Yi/Boot.hs-boot
[email protected]**20090807075554
 Ignore-this: 3ef65ba478b225e58d3ae5ecdd7a226d
] 
[Pass the relevant region to hlGetTree
[email protected]**20090807074805
 Ignore-this: ddca19cac4ccd2092165d10da7f76f89
] 
[Various small cleanup
Jeff Wheeler <[email protected]>**20090807031545
 Ignore-this: e91b296031b6404f9343dea4cf6bd6d3
] 
[Replace HConf with Dyre
Jeff Wheeler <[email protected]>**20090807024443
 Ignore-this: 6eaa2b9095f94f42ed4807a7cc245a80
] 
[Update Yi.Users.Jeff
Jeff Wheeler <[email protected]>**20090806200459
 Ignore-this: 7497c0b7430917c406dbd00bef5c071d
] 
[make sure error tokens are created with the proper offset
[email protected]**20090806104250
 Ignore-this: 53b883aa483ab17d0fbc03a59e60f036
] 
[Fix examples/yi-simple.hs
Jeff Wheeler <[email protected]>**20090805150935
 Ignore-this: 3a69c18df58cf16300b677596efe65f4
] 
[JS: Fixing Eq instance bug.
[email protected]**20090805144840
 Ignore-this: ff39ce625064620d6a1a3af163c3d64d
] 
[JS: Adding "typeof" support and fixing "if" stroking.
[email protected]**20090608123516
 Ignore-this: 135f71bef169ed0082f215283588f5c6
] 
[JS: Fixing some error highlighting.
[email protected]**20090607150633
 Ignore-this: 54ebf9a3a88852c4fc234b93e42c82d6
 
 Due to lack of proper testing, some errors were not highlighted. There may be
 more errors that are not highlighted, but this is all I have time with for now.
] 
[Add functions to navigate trees based on paths
[email protected]**20090804182036
 Ignore-this: e68e11a1a68a2ebcd4d87c83a5edea6a
] 
[fix includedRegion
[email protected]**20090804181751
 Ignore-this: 211cb7c0179260e79a6f3bebedf8f0fe
] 
[Syntax/Haskell.hs: Removed unnecessary code
[email protected]**20090804170049
 Ignore-this: 5a6c6eaa0241133388a68bd002e891dc
] 
[Syntax/Haskell.hs: Fix bug that was introduced in last patch
[email protected]**20090804164547
 Ignore-this: d48cc9319555101ea8969517e02d1084
 Last patch didn't allow comments after the closing brace in
 data declaration records.
] 
[Syntax/Haskell.hs: Fixed a bugg where comments were allowed in several places in a data declaration
[email protected]**20090804154238
 Ignore-this: 324075dad772bc9c801e43636d932f88
] 
[Syntax/Haskell.hs: fix bugg in explicit structured do blocks
[email protected]**20090804145306
 Ignore-this: 49e1493713c6407528a369d36584a28c
] 
[Fix saving files that don't exist yet
Robin Green <[email protected]>**20090731091545
 Ignore-this: 14938e3386a5c2bb0689c401f84a6c9b
] 
[work towards some utility functions to find the most relevant node to a given window
[email protected]**20090802113925
 Ignore-this: 6977af749ec47bf1ddac1db5ccc350c9
] 
[support type signatures for multiple ids at once
[email protected]**20090731135859
 Ignore-this: ba0b88fda7ee396e07c8b8a85901fcea
] 
[Eliminate useless parts of the datatype
[email protected]**20090731131337
 Ignore-this: 8b98f51b265e5e2d5b4c019cfa4744ad
] 
[simplify field declarations
[email protected]**20090731125758
 Ignore-this: b4c550fe35065e750c6fb94ee0c650fd
] 
[new rules for type declaration / equation declaration only
[email protected]**20090731125619
 Ignore-this: d232bfe9d2f2d8535fb57f5f9e8d16cb
] 
[simplify "type" declarations
[email protected]**20090731101447
 Ignore-this: 9ce257bcfca7e9196ef356bdfa31d110
] 
[simplify pData and improve support of GADT
[email protected]**20090731100725
 Ignore-this: a785cbafd22d2ff397d159875d9ca6ec
] 
[generalize and simplify class and instance declarations
[email protected]**20090730220426
 Ignore-this: ce61e808ebb1c3ba82405610dfa78342
] 
[define a function for "bare" token parsing (without comments)
[email protected]**20090730214854
 Ignore-this: 5648d78f6e78961c5ec9f3212d11f2c8
  -> use it where suitable
] 
[Simplify pGuard
[email protected]**20090730211615
 Ignore-this: f6092e6fb3949d474ccabe2b7d4ad333
] 
[simplify pFunRHS
[email protected]**20090730210420
 Ignore-this: ae304cbeac6a93955cfcf2891c964c55
] 
[=> are ok in type expressions (contexts)
[email protected]**20090730210019
 Ignore-this: 1afb9ac3eb9d689f2e1f7d046dc0c639
] 
[simplify where blocks
[email protected]**20090730205938
 Ignore-this: 2e088e4c84b9287724e790fdbbce7302
] 
[cleanups
[email protected]**20090730143603
 Ignore-this: b9ce6fbf628e393e58168c15f0855739
] 
[simplify pFunDecl
[email protected]**20090730142650
 Ignore-this: 4c00be1932b55fd9d46d599cc2fdec6d
] 
[add support for type expressions
[email protected]**20090730134720
 Ignore-this: 92de0693f77d59d5c3dedf31d2026766
] 
[separate patterns and expressions
[email protected]**20090730115422
 Ignore-this: 96646209eb90d2c660f4b82f21e69766
] 
[cleanups
[email protected]**20090730081036
 Ignore-this: e34e6869758293bea3926462f3f10740
] 
[Add a rule for Lambda
[email protected]**20090729223826
 Ignore-this: 35fb3ca734551a198af932191c9c7060
] 
[be even more precise about what is noise
[email protected]**20090729221527
 Ignore-this: 7f6629b935af5c1f50ea6bec885e5f43
] 
[make parser test more lazy
[email protected]**20090729215733
 Ignore-this: fa59721b640540722a81d47bea4fc7b2
] 
[Be more precise with what is acceptble as "noise" or not
[email protected]**20090729211655
 Ignore-this: d7e3117a5c81550a953c240a986b2385
] 
[More precise definition of pOf, RHS and cleanups
[email protected]**20090729204812
 Ignore-this: 9a07dfa516657ea99c9741a4f4e41c9c
] 
[comments
[email protected]**20090729183150
 Ignore-this: 7f297536f572451ce21139de9d65df58
] 
[pBlock: support braces
[email protected]**20090729173846
 Ignore-this: 37edc6939928f8ebff2dedad65e1dbf7
] 
[push code in pBlock
[email protected]**20090729172847
 Ignore-this: f68f653b92a9ea71aa7db5fd5f822447
] 
[Add rules for Do and Of
[email protected]**20090729172305
 Ignore-this: ccd4323b8732b2bba40c3e85bbec389f
] 
[Update Makefile (src/ and `build' target for run-inplace)
Jeff Wheeler <[email protected]>**20090730021443
 Ignore-this: e20ac749846b4b3693116a1ce0af17b5
] 
[renamings, simplify the structure of expressions
[email protected]**20090729150250
 Ignore-this: f185c215051d14f2cda5e2c827efa8bf
] 
[style
[email protected]**20090729143358
 Ignore-this: 9a4f7c3967f2103e0aa866eb3acf02a0
] 
[Preserve permissions
Robin Green <[email protected]>**20090728001241
 Ignore-this: a11043e7cd39b82fb8a0435558fbdf
 Fixes bug 281
] 
[improved rule for "let"
[email protected]**20090727122849
 Ignore-this: 4a6629914f28a1d6f7fdb31fa116120c
] 
[style
[email protected]**20090727122840
 Ignore-this: d415bc6bea1c5abbf8e2e93bcb31fd5a
] 
[comments
[email protected]**20090727115657
 Ignore-this: 85eddc0ce96eac04f50d4f9171373495
] 
[one more test case
[email protected]**20090727101357
 Ignore-this: dca46467ad8eb3fe643969ec45434bd7
] 
[More style
[email protected]**20090727101347
 Ignore-this: 2c8acb5ff408eef4c5524bcd1fb5292f
] 
[properly handle set of extra recognized symbols
[email protected]**20090727101202
 Ignore-this: 4bbeed8fa89060d8222cc79aaf9cc366
] 
[style
[email protected]**20090727094938
 Ignore-this: 14d2c01497e0d9f595f01183c9fc9c02
] 
[In is always properly recognized
[email protected]**20090727094912
 Ignore-this: 4d024aa05b07ab95a149091b0d9bf7a4
] 
[Move tests to where they should be; add new test case
[email protected]**20090727094404
 Ignore-this: e093d34bb29fd75a51d66ef6068ea8bb
] 
[The set of "added recognized symbols" can be used in isNoiseErr too
[email protected]**20090726201542
 Ignore-this: a6168a9b0ad0ee0d9474bd1b1bffbc02
] 
[Equal is not properly recognized in record declarations
[email protected]**20090726201226
 Ignore-this: cd6ca20d67e831ec576ba819b35e01dc
 
 As of this patch, there is an error in parsing OnlineTree.hs
] 
[Pipe is normally not a recoverable symbol
[email protected]**20090726195627
 Ignore-this: f5d115de9ce5dce1b937710fdf4cd25a
] 
[simplify isNoiseErr
[email protected]**20090726195326
 Ignore-this: e64e896c3401adb2feb2b18e108d4280
] 
['{' is not noise
[email protected]**20090726195108
 Ignore-this: 50ad62a8cabe23d7032800079dff5119
] 
[renamings
[email protected]**20090726194951
 Ignore-this: cb58110c4c77afc9a5940d861edc413d
] 
[comment
[email protected]**20090726194648
 Ignore-this: f435323a3a956b5d2f3560a8e2f39352
] 
[use the endBlock name if possible
[email protected]**20090726194412
 Ignore-this: 1e586405922ba85141869025777ebf3d
] 
[Syntax/Haskell.hs: Removed the error lists that was sent around
[email protected]**20090726162902
 Ignore-this: a1ca2964c2c4ca7aca6b4f6102f9fa76
] 
[comment left-factorisation of type and equation
[email protected]**20090726152954
 Ignore-this: e20e8f2d4828128de7779635e5dc476
] 
[Properly classify all reserved operators
[email protected]**20090726152917
 Ignore-this: d860f37687bc82817a67bbb7a8bab974
] 
[Syntax/Haskell.hs: pFunLHS is now called pFunDecl
[email protected]**20090726124315
 Ignore-this: b86a96e804a054bcc63251db700f125a
] 
[Fix copyright notice and add comments
[email protected]**20090726122521
 Ignore-this: ad993e80c48321e8a1f52e97fd8a974
] 
[remove dead duplicated code
[email protected]**20090726120848
 Ignore-this: c1533705de6aae1aef141902ffde470f
] 
[update pointedlist minimum version
[email protected]**20090722145832] 
[Syntax/Haskell.hs: cleanup
[email protected]**20090716171425
 Ignore-this: f92dc85a1dd3fe46835e4f87dbff9a6d
] 
[Yi.Scion -Wall
Jeff Wheeler <[email protected]>**20090720220649
 Ignore-this: 40bc67b9009310e78a7247219c3f8288
] 
[Use cautious-file to save files
Robin Green <[email protected]>**20090720054854
 Ignore-this: b05a76ae0e4384df5f0cd05b19c6f2a0
 The cautious-file package tries to reduce the risk of data loss
] 
[scion: experiments
[email protected]**20090719094610
   * Copied stuff from the Server to find things; the functionality to get info
     about the stuff on the cursor is better.
   * Tried cabal load; failed.
] 
[Makefile: add ghc package to interactive rule
[email protected]**20090719094544] 
[cleanup published actions
[email protected]**20090719094502] 
[expose Scion stuff if available
[email protected]**20090719094417] 
[Don't show mini buffer titles for tabs or windows
Jeff Wheeler <[email protected]>**20090719025509
 Ignore-this: f13b34599c9545d22e5e9d60f47b9e09
] 
[Use a proper Gtk Statusbar, rather than just a label
Jeff Wheeler <[email protected]>**20090718223540
 Ignore-this: 434a6f538c2035aca2d16995ef609692
] 
[Add doc/monads.html, which documents how to run actions in different contexts
Jeff Wheeler <[email protected]>**20090718221618
 Ignore-this: 75b3a6f0a2b1349f6e2c4129c17339fa
 
 I'd love if somebody with a better understanding of these monads could mark out which cases are impossible.
] 
[Char.Unicode: add superscripts
Nicolas Pouillard <[email protected]>**20090718175401
 Ignore-this: 5d6b5ce01b91364604bd02b27231e191
] 
[Move haskell source files into src/
Jeff Wheeler <[email protected]>**20090718151803
 Ignore-this: 397bcfe14a6774159d408b76ed67f74c
 
 I think this greatly simplifies the structure of the base directory, since we had so many source directories in the root.
] 
[Store "inserting" attribute in buffer's Attributes
Jeff Wheeler <[email protected]>**20090718074250
 Ignore-this: cb3a7bef598aff38f408bda712863b85
] 
[Small -Wall
Jeff Wheeler <[email protected]>**20090718074226
 Ignore-this: a4db1393555aeb3d87a84e7c137d1db6
] 
[Support tab abbreviation in Pango
Jeff Wheeler <[email protected]>**20090718055856
 Ignore-this: 4c71ae4cedff8d2e8b35de2d05e43390
] 
[Add brief documentation for Yi.Scion.functionType
Jeff Wheeler <[email protected]>**20090718055821
 Ignore-this: af358fe0b3156e7fd0503af23133ac53
] 
[Hide left pane entirely until Scion integration is possible
Jeff Wheeler <[email protected]>**20090718053340
 Ignore-this: 943257258e7ed7c0c128aa072c050067
] 
[Respect configs to not line-wrap in Pango (adds horizontal scrollbar support)
Jeff Wheeler <[email protected]>**20090718043917
 Ignore-this: f85d431996d7941c0eedcc89401f02ab
] 
[Correctly show modeline in Pango (and small -Wall)
Jeff Wheeler <[email protected]>**20090718030411
 Ignore-this: 14c66d8a1d6246ea80600970f0e4dedc
] 
[Show modeline in Pango
Jeff Wheeler <[email protected]>**20090718022849
 Ignore-this: b73c2b34b677ded1c77a60908e28a58d
] 
[Fix Yi.Config.Default to use functionType scion action by default
Jeff Wheeler <[email protected]>**20090718012444
 Ignore-this: d36a0c838d0b0ed9ee1c9fba40a50c4f
] 
[Cleanup in Yi.Scion (and yi.cabal)
Jeff Wheeler <[email protected]>**20090717234111
 Ignore-this: ebc69031d112f37be61ab771c597da2a
] 
[Begin Yi.Snippets.Haskell
Jeff Wheeler <[email protected]>**20090717223905
 Ignore-this: df637f5aa30b6b11d2af9aecd42484d7
 
 As far as I can tell, dependent bits don't currently work. Is this correct?
] 
[Update my config, based on Yi.Scion
Jeff Wheeler <[email protected]>**20090717223116
 Ignore-this: c5aa2626985e47b3b92ecc85d0c5ed25
] 
[Integrate Jeff's scion bindings
[email protected]**20090717210028
 Ignore-this: 846107b07de052d21fea418291d62af7
] 
[add Jeff's config
[email protected]**20090717202115
 Ignore-this: 156fbfba29496d7efc760aed13ce1c4c
] 
[grepFind: fix argument order
[email protected]**20090716094545
 Ignore-this: 43614cb6a300dec516482cd39306ec6a
] 
[Syntax/Haskell.hs: Small improvements
[email protected]**20090715095310
 Ignore-this: a6846c241b670efb5cc3cc3b0779aa8f
] 
[TAG 0.6.1
Jeff Wheeler <[email protected]>**20090714203551
 Ignore-this: 3a5417411f2772b433887f3c80c44627
] 
Patch bundle hash:
61358a5b7711fc2099e79587bd2257516f4c8b03
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEAREKAAYFAktF9/EACgkQvpDo5Pfl1oJL9QCdG0N9DOUMdiaDZyU3RdAKxu5d
tr0An3/CwDncq3Y7BDbHHByPfuJgOJRH
=vu3L
-----END PGP SIGNATURE-----

Reply via email to