Wed Apr  9 14:35:47 EDT 2008  [EMAIL PROTECTED]
  * yi.cabal: expose Yi.Mode.Shim

--~--~---------~--~----~------------~-------~--~----~
Yi development mailing list
yi-devel@googlegroups.com
http://groups.google.com/group/yi-devel
-~----------~----~----~----~------~----~------~--~---

New patches:

[yi.cabal: expose Yi.Mode.Shim
[EMAIL PROTECTED] hunk ./yi.cabal 92
 
       cpp-options: -DSHIM
 
+      exposed-modules:  Yi.Mode.Shim
       other-modules: Shim.SHM, Shim.Utils, Shim.SessionMonad, Shim.Hsinfo, Shim.GhcCompat, Shim.ExprSearch
 
     other-modules:

Context:

[expose Yi.UI.Common
[EMAIL PROTECTED] 
[expose Yi.Prelude
[EMAIL PROTECTED] 
[Actually store the mode directly in the Buffer
[EMAIL PROTECTED] 
[move Mode to Buffer.hs
[EMAIL PROTECTED] 
[fix issue 104
[EMAIL PROTECTED] 
[Updated srmc syntax to included quoted names
[EMAIL PROTECTED] 
[Added ability to search for a newline in emacs bindings
[EMAIL PROTECTED] 
[Added a 'haskell-script' template
[EMAIL PROTECTED] 
[Emacs now asks the user about unsaved buffers before quitting
[EMAIL PROTECTED]
 
 There is a slight trade-off here, in particular buffers not
 associated with any file and even more particularly for *messages*
 which is almost always modified without being saved but in general
 the user won't wish to be asked about this. So the test for an
 unmodified buffer includes a test for the buffer name in the case that
 it begins and ends with a '*' and in that case we don't ask the user
 about it.
] 
[cleanups
[EMAIL PROTECTED] 
[Make sure we don't update syntax more than necessary
[EMAIL PROTECTED] 
[fix up sdist some more
[EMAIL PROTECTED] 
[change errorStyle so it's visible in gtk frontend as well
[EMAIL PROTECTED] 
[modify yi.hs to show how to access clever haskell mode
[EMAIL PROTECTED] 
[Cleanup and minor fixes of clever synhl.
[EMAIL PROTECTED]
 make it available through cleverHaskellMode
] 
[Cleanup and fix layout code
[EMAIL PROTECTED] 
[Wall police
[EMAIL PROTECTED] 
[IncrementalParse: better error messages
[EMAIL PROTECTED] 
[simple Haskell paren-matching parser
[EMAIL PROTECTED] 
[Wall police
[EMAIL PROTECTED] 
[Wall police
[EMAIL PROTECTED] 
[Add error-recovery to incremental parser
[EMAIL PROTECTED] 
[Syntax-related cleanups and fixes
[EMAIL PROTECTED] 
[Overhaul the syntax highlighting infrastructure
[EMAIL PROTECTED] 
[Basic UTF8 support
[EMAIL PROTECTED] 
[add in some missing modules for sdist
[EMAIL PROTECTED] 
[yi.cabal: swtcih -D flags to cpp-options; hush cabal!
[EMAIL PROTECTED] 
[Editor.hs, Alex.hs: fix the haddock build
[EMAIL PROTECTED]
 Turns out haddock 2.0 has a regression where you can't use the -- ^ syntax with type synonyms ('type'). Move the haddocks up, and fix another odd fmt error
] 
[Add module to convert layout into { ; } tokens
[EMAIL PROTECTED] 
[Haskell lexer: tokenize more precisely
[EMAIL PROTECTED] 
[Lexer: keep track of positions in a more structured way
[EMAIL PROTECTED] 
[improve prelude
[EMAIL PROTECTED] 
[remove useless LANGUAGE
[EMAIL PROTECTED] 
[move unfoldLexer down
[EMAIL PROTECTED] 
[lex: keep track of line and col
[EMAIL PROTECTED] 
[Incremental parsing: simplify state handling; prepare for line/col tracking
[EMAIL PROTECTED] 
[lex: better type name for offsets
[EMAIL PROTECTED] 
[Publish numberOf
[EMAIL PROTECTED] 
[IncrementalParse: use Yi.Prelude
[EMAIL PROTECTED] 
[IncrementalParse: Add Left-processing simplification equation
[EMAIL PROTECTED] 
[Shim: add a function to evaluate expressions in comments
[EMAIL PROTECTED] 
[Shim: binding to add a type annotation
[EMAIL PROTECTED] 
[Wall police
[EMAIL PROTECTED] 
[M-w make selection invisible
[EMAIL PROTECTED] 
[Fix hard-coded path.  Leads to stupid build errors.
Thomas Schilling <[EMAIL PROTECTED]>**20080315222759] 
[Spelling
Thomas Schilling <[EMAIL PROTECTED]>**20080315222741] 
[various small cleanups
[EMAIL PROTECTED] 
[Add "fontsize" configuration option
[EMAIL PROTECTED] 
[scrap editorModules
[EMAIL PROTECTED] 
[Wall police
[EMAIL PROTECTED] 
[special way to use dired for directories
[EMAIL PROTECTED] 
[Nicer activity graph
[EMAIL PROTECTED] 
[example: activate Shim mode
[EMAIL PROTECTED] 
[change modeTable to its ReaderT isotope
[EMAIL PROTECTED] 
[cleanup published symbols
[EMAIL PROTECTED] 
[Shim: go to definition
[EMAIL PROTECTED] 
[Shim: add function to retrieve type of symbol at cursor
[EMAIL PROTECTED] 
[Shim: somewhat better support for error examination
[EMAIL PROTECTED] 
[simplify jumpToE
[EMAIL PROTECTED] 
[Oops, missing Shim file
[EMAIL PROTECTED] 
[Initial Shim integration
[EMAIL PROTECTED] 
[expose and retype withOtherWindow
[EMAIL PROTECTED] 
[Canonicalize all associated files
[EMAIL PROTECTED] 
[Use interpreter for implementation of M-x
[EMAIL PROTECTED] 
[Interpreter: support for overloading
[EMAIL PROTECTED] 
[make many types instances of Typeable
[EMAIL PROTECTED] 
[Make YiM a newtype
[EMAIL PROTECTED] 
[Alex: comment
[EMAIL PROTECTED] 
[small CUA improvements
[EMAIL PROTECTED] 
[add mockup haskell interpreter
[EMAIL PROTECTED] 
[Update IncrementalParser with lexer lookup
[EMAIL PROTECTED] 
[Don't link broken file
[EMAIL PROTECTED] 
[Fix the incremental lexer
[EMAIL PROTECTED]
 If the lexer looked further than the end of the token, we take 
 that into account when resuming lexing.
] 
[Merge Yi.Vty into Yi.UI.Vty
[EMAIL PROTECTED] 
[fix printMsg
[EMAIL PROTECTED] 
[remove duplicate code
[EMAIL PROTECTED] 
[Add stub for CUA keymap
[EMAIL PROTECTED] 
[trivial cleanups/improvements
[EMAIL PROTECTED] 
[enhance Dired keymap so it supports more terminals
[EMAIL PROTECTED] 
[cleanup usage of unsetMarkB
[EMAIL PROTECTED] 
[gtk: don't always show selection
[EMAIL PROTECTED] 
[trivial cleanups
[EMAIL PROTECTED] 
[Don't always show the selection (aka. transient-mark-mode)
[EMAIL PROTECTED]
 Fixes issue 64
] 
[remove very outdated pieces of outdated testsuite
[EMAIL PROTECTED] 
[Arbitrary instance for FBuffer
[EMAIL PROTECTED] 
[Add a testsuite
[EMAIL PROTECTED] 
[fix issue 80
[EMAIL PROTECTED] 
[Haskell: compute token types instead of styles directly
[EMAIL PROTECTED]
 Also generalize lexers to be able to support this
 
] 
[IncrementalParse: more fixes
[EMAIL PROTECTED] 
[Minor haddock fixes
[EMAIL PROTECTED] 
[Remove Yi.Kernel from yi.cabal.
[EMAIL PROTECTED] 
[IncrementalParse: fixes
[EMAIL PROTECTED] 
[expose more of the haskell lexer
[EMAIL PROTECTED] 
[oops, Fractal is not quite ready yet
[EMAIL PROTECTED] 
[keep track of lexerstate in incremental parser
[EMAIL PROTECTED] 
[bits of testsuite work
[EMAIL PROTECTED] 
[fix cabal file with new modules
[EMAIL PROTECTED] 
[fix replaceRegionB bug; tidy up.
[EMAIL PROTECTED] 
[We MUST NOT move the point after an update
[EMAIL PROTECTED] 
[cleanups
[EMAIL PROTECTED] 
[Fixed modifySelectionB to accurately place the point afterwards
[EMAIL PROTECTED]
 
 Yi.Region.modifyRegionB had to be altered to return the difference
 in length between the old and new regions.
 
 Additionally clarified the movement commands in Yi.Buffer
 So there is now a more general moveB which will move left if
 the given distance is negative and right otherwise. Of course this means
 moveB is just 'rightB' but I think it clarifies it a bit.
 
 Also added a function to return the difference between the point and
 the selection point, useful for saying which is the further from the
 beginning/end of the buffer.
 
] 
[modes, final phase
[EMAIL PROTECTED] 
[modes, phase 4
[EMAIL PROTECTED] 
[modes, phase 3
[EMAIL PROTECTED] 
[modes, phase 2
[EMAIL PROTECTED] 
[Fractal: getStrokes optimization
[EMAIL PROTECTED] 
[Modes, phase 1
[EMAIL PROTECTED] 
[simplify makefile and friends
[EMAIL PROTECTED] 
[Fractal: minor cleanups
[EMAIL PROTECTED] 
[haddock fixes
[EMAIL PROTECTED] 
[Fractal: cleanup and fixes
[EMAIL PROTECTED] 
[Incremental parser bugfixes
[EMAIL PROTECTED] 
[Fractal parser cleanups
[EMAIL PROTECTED] 
[Added a 'justifySelectionWithTopB' action to make all lines the same indentation
[EMAIL PROTECTED] 
[1st non-lexical syn HL
[EMAIL PROTECTED] 
[Wall police
[EMAIL PROTECTED] 
[Alex: small cleanups
[EMAIL PROTECTED] 
[cleanup published actions
[EMAIL PROTECTED] 
[Small fix to keyword hints
[EMAIL PROTECTED]
 
 Previously keywords were recognised even if they did not form the whole word.
 For example in the word "String" the 'in' was recognised as an occurrence
 of the keyword "in".
 
] 
[push down responsibility to specific highlighters
[EMAIL PROTECTED] 
[Cleanup of Yi/Indent and haskell keyword indentation hints
[EMAIL PROTECTED]
 
 You can now specify a list of keywords to use as hints for indentation.
 Keywords are specified in two lists where by the first list uses a keyword
 on the previous line as an indentation hint itself.
 So for example if specify 'then' and 'else' and I have the line:
 
 if blah then blah2 else blah3
         ^          ^
 
 then indentation hints will be given where the carots are.
 The second list uses keywords by returning as a hint the first non-white
 space character after the keyword, so if 'where' is in this list then
 
 my_expression where x = 1
                     ^
 will be a keyword.
 
 Both styles of hints work with tab characters and the indentation hints even within the line.
 
 Note though that this will *not* be on by default (since Haskell indentation is questionable for
 other kinds of files).
 
 To enable this: you want to add something to your ~/.yi/yi.hs (or HackerMain.hs) file like:
 
 
 main :: IO ()
 main = yi $ defaultConfig { startFrontEnd    = Vty.start
                           , defaultKm        = myKeyMap
                           , publishedActions = myAndDefaultActions
                           }
 
 
 -- So your keymap will be the emacs keybindings
 -- 'keymap' with your additional/overriding key
 -- binding definitions.
 myKeyMap :: KeymapM ()
 myKeyMap = rebind myKeys keymap
 
 -- The list of keys that you wish to override/add to
 -- the default emacs keybindings.
 -- Add/remove from here as you desire.
 myKeys :: KList
 myKeys = 
   [ -- Use the tab completion with haskell keyword hints
     -- since I'm mostly editing haskell code.
     ("C-i",      write autoIndentHaskellB )
 
 *NOTE: I had to use "C-i" as "TAB" didn't work here*
 If you disagree with my sets of keywords (defined in Yi/Indent.hs) you can make your own
 by calling 'autoIndentWithKeywordsB'.
 In fact I have factored out the logic to get the previous indentations and hints from
 the previous line so you can configure this quite a bit by calling:
 'autoIndentHelperB'
 
 I believe this fixes issue number: 72.
 
] 
[Added an action to insert a tab character (for makefiles)
[EMAIL PROTECTED] 
[cocoa flag true by default
[EMAIL PROTECTED] 
[Factored out the creation of a partial keymap as done for iSearch
[EMAIL PROTECTED] 
[Removed deprecated gotoLineE and updated EmacsRebinding example
[EMAIL PROTECTED] 
[Fixed a small (and irritating) bug in modifyLines
[EMAIL PROTECTED] 
[use consitent names for published actions
[EMAIL PROTECTED] 
[Added (un)line-comment-regions to the default exposed actions
[EMAIL PROTECTED]
 
 There is a slight issue with doing this. If the user presses
 M-x line-comment-region
 then they are asked in the mini-buffer for a string, and they must wrap this in quotes.
] 
[Added [increase|decrease]IndentSelectionB
[EMAIL PROTECTED] 
[Added some region modifying functions
[EMAIL PROTECTED]
 
 Most specifically added 'modifyRegionB' and 'modifySelectionB' both
 of which take a (String -> String) function and modify either the given
 region or the selected region.
 
 This allows us to easily write 'haskell-comment-region' and
 'haskell-uncomment-region' and the same for latex.
 
 You can add this to your yi.hs (or HackerMain.hs) by doing:
 
 main :: IO ()
 main = yi $ defaultConfig { startFrontEnd    = Vty.start
                           , defaultKm        = myKeyMap
                           , publishedActions = myAndDefaultActions
                           }
 
 myAndDefaultActions :: M.Map String Action
 myAndDefaultActions = M.union myActions defaultPublishedActions
 
 myActions :: M.Map String Action
 myActions =
   M.fromList [ ( "haskell-comment-region"
                , makeAction haskellCommentSelectionB
                )
              , ( "haskell-uncomment-region"
                , makeAction haskellUnCommentSelectionB
                )
              , ( "latex-comment-region"
                , makeAction latexCommentSelectionB
                )
              , ( "latex-uncomment-region"
                , makeAction latexUnCommentSelectionB 
                )
              ]
 
] 
[improve synHL performance
[EMAIL PROTECTED] 
[add "startQueuedActions" hook, for testing.
[EMAIL PROTECTED] 
[cleanup command line processing
[EMAIL PROTECTED] 
[oops, buildfix
[EMAIL PROTECTED] 
[alex: support skipping tokens
[EMAIL PROTECTED]
 haskell.x: take advantage of that (speedup things a little)
] 
[Wall
[EMAIL PROTECTED] 
[styleRangesBI: support non-contiguous strokes
[EMAIL PROTECTED]
 Also refactor a few things
] 
[styleRangesBI: improve performance
[EMAIL PROTECTED] 
[SynHL: define stroke type; use it
[EMAIL PROTECTED] 
[Wall police
[EMAIL PROTECTED] 
[alex: minor simplifications
[EMAIL PROTECTED] 
[alex: some better type names
[EMAIL PROTECTED] 
[Slight fix to semantics for opening already open files
[EMAIL PROTECTED]
 
 Currently if you're in the same directory as a file, say the
 yi top level directory and you do:
 yi yi.cabal
 and then open file (in emacs keybindings C-x C-f)
 and specify yi.cabal then you will have two buffers associated with
 the yi.cabal file. This fixes this a bit by canonicalising the paths
 of file associated with buffers.
] 
[Allow user to set the default UI in yi.hs
[EMAIL PROTECTED]
 
 For example in my HackingMain.hs I have
 
 import qualified Yi.UI.Vty as Vty
 
 ...
 
 main :: IO ()
 main = yi $ defaultConfig { startFrontEnd = Vty.start
                           , defaultKm     = myKeyMap
                           }
 
] 
[Updated the readme for hacking mode.
[EMAIL PROTECTED] 
[fix the space leak
[EMAIL PROTECTED]
 This bugfix has the record for "time spent thinking about the bug to length of fix" ratio.
] 
[Improve the Syn HL performance; cut down on space leak
[EMAIL PROTECTED] 
[add hacking mode (cabal configuration flag)
[EMAIL PROTECTED] 
[merge Config and StartConfig
[EMAIL PROTECTED] 
[stop pretending we have a dynamic kernel
[EMAIL PROTECTED] 
[retire some dynamic code
[EMAIL PROTECTED] 
[stubs for the future M-x
[EMAIL PROTECTED] 
[a somewhat more useful default keymap
[EMAIL PROTECTED] 
[comments and prof-options
[EMAIL PROTECTED] 
[bugfix and simplification of parser-state cacheing
[EMAIL PROTECTED] 
[really, really try to fix non vty build
[EMAIL PROTECTED] 
[really don't require vty now
[EMAIL PROTECTED] 
[more vim buffer-switching keybindings
Evan Martin <[EMAIL PROTECTED]>**20080210202144] 
[trivial cleanups
Evan Martin <[EMAIL PROTECTED]>**20080210192714] 
[fix spelling of word in README
Evan Martin <[EMAIL PROTECTED]>**20071125001210] 
[cleanup Setup.hs, yi.cabal with removal of GHC API dependency
[EMAIL PROTECTED] 
[Add XMonad-style static configuration
[EMAIL PROTECTED] 
[use DList in highlighters to prevent quadratic insertion cost
[EMAIL PROTECTED] 
[Let syntax highlighters decide where they what to split in chunks.
[EMAIL PROTECTED]
 Also simplify the Alex stuff.
] 
[next phase: cache intermediate parser states
[EMAIL PROTECTED] 
[hsinc formatting
[EMAIL PROTECTED] 
[next phase: cache the Highlighter result
[EMAIL PROTECTED] 
[Buffer.Implementation: use record fields instead of wholesale constructor matching
[EMAIL PROTECTED]
 (easier to add/delete fields)
] 
[add an "nop" highlighter; remove corresponding the useless Maybes
[EMAIL PROTECTED] 
[incremental parsing, phase 1: let highlighters maintain the result themselves
[EMAIL PROTECTED] 
[comments
[EMAIL PROTECTED] 
[Subprocess output is read using forkIO handlers, not polling
[EMAIL PROTECTED]
 
 Waiting for subprocess exit still uses polling.  It could use forkIO 
 and then block with waitForProcess, but that would block /all/ threads 
 unless yi is compiled with -threaded.  And I'm not sure what effect 
 that would have on the rest of the app.
 
] 
[Subprocess support (polling)
[EMAIL PROTECTED]
 Added startSubprocess function to run subprocesses whose output (stdout and stderr) goes
 into a buffer.  It polls the processes every 0.5secs; I'll try out a forkIO-heavy
 threaded version next.
] 
[Fixed the indentation to the last opening bracket.
[EMAIL PROTECTED]
 
 Before it did not take into the closing brackets and now it does,
 such that if we open a bracket but close it on the same line then
 the opening bracket is not returned as an indentation. We still
 may return a bracket further back if that one is unmatched.
] 
[Fix the gtk depends (darcs version IS 0.9.12.2)
[EMAIL PROTECTED] 
[Defaulting to fullscreen mode (in GTK) is rude.
Thomas Schilling <[EMAIL PROTECTED]>**20080206165205
 I chose 500 x 700 since some laptops might only have 800 pixels horizontal resolution.
] 
[Fixes line comment syntax in LiterateHaskell.x
[EMAIL PROTECTED] 
[Fixed Haskell comment syntax for '------'
[EMAIL PROTECTED]
 
 Previously if we had a line that consisted only of '-' characters it was caught
 as a symbol instead of a comment. For example if you headed a section with:
 ----------------------
 -- Some utilties
 Then the top line of this would be coloured in the default style instead of the
 comment style as it should be. This is hopefully now fixed.
 
 A further problem was that if you wrote
 "--@"
 this was as a symbol, but
 "--@ " (with the space)
 was coloured as a comment.
 
] 
[Added C-x C-o to delete blank lines to Emacs keybinding
[EMAIL PROTECTED]
 
 To do this I added some helper functions to Yi/Buffer/Highlevel.hs.
 Some of these can be generalised in the direction that they take and I hope to
 do this shortly.
 
] 
[Update examples (DynamicReconf and HaskellVim).
[EMAIL PROTECTED] 
[Fix redo and overhaul Undo.hs in general
[EMAIL PROTECTED] 
[Fix issue 88 by swapping undo actions ordering
[EMAIL PROTECTED] 
[Another small fix for Yi.Buffer.Implementation.gotoLnRelI
[EMAIL PROTECTED]
 
 Sorry this is (mainly) a documentation fix for this since I had botched the documentation
 when I fixed this function earlier.
] 
[freeze version of Gtk2hs we depend on
[EMAIL PROTECTED] 
[Vim: Move ZZ,>>,<< into MultiCmdFM, and fix >,< in visual mode.
[EMAIL PROTECTED] 
[Handle more LaTeX/C++ extensions.
[EMAIL PROTECTED] 
[Added an 'indentAsPreviousB' action to Yi.Indent
[EMAIL PROTECTED]
 
 In doing so I added a 'getPreviousNonBlankLineB' via adding a more general
 'getPreviousLineWhichB' which takes a condition and returns the closest
 line above the current one which satisifies the condition if there is one.
] 
[be more precise about saying "unrecognized input"
[EMAIL PROTECTED] 
[Fixed Yi.Buffer.Implementation.gotoLnRelI
[EMAIL PROTECTED]
 
 Previously we did not return the correct integer. 
 We now return the number of lines which we moved.
 Updated a few comments to reflect this point as well.
] 
[improve normal-based keymap
[EMAIL PROTECTED] 
[Output error message on unrecognized input
[EMAIL PROTECTED] 
["Sans mono" -> "Monospace" (again)
[EMAIL PROTECTED]
 
 It's user responsibility to have a nice "Monospace" font defined.
 (It will be at least on Ubuntu)
 "Sans mono" is at the not properly resolved and the system picks
 the default font.
] 
[Wall police
[EMAIL PROTECTED] 
[Get incremental parser test to build.
Thomas Schilling <[EMAIL PROTECTED]>**20080202214542] 
[Playing around with the incremental parser stuff
Thomas Schilling <[EMAIL PROTECTED]>**20080202214014] 
[newtype Size and FingerString
Thomas Schilling <[EMAIL PROTECTED]>**20080127044825] 
[bump version number
[EMAIL PROTECTED] 
[remove useless stuff
[EMAIL PROTECTED] 
[Words includes numbers and underscore.
[EMAIL PROTECTED] 
[replace yreg by killring
[EMAIL PROTECTED] 
[Add Ertai's (my) keymap.
[EMAIL PROTECTED]
 
 The goal is to be able to also use it in non-dynamic mode.
] 
[Add Yi/Keymap/Users and move JP.hs inside.
[EMAIL PROTECTED] 
[Vim: Fix charwise selection.
[EMAIL PROTECTED] 
[Remove dead #ifdef.
[EMAIL PROTECTED] 
[Save point in extendRegionToBoundaries.
[EMAIL PROTECTED] 
[Added an example configuration file showing rebinding of emacs keys
[EMAIL PROTECTED]
 
 Also fixed the current examples/Rebinding.hs file to work with the recently renamed functions:
 changeKeymap and msgEditor.
 
] 
[add rule to upload doc
[EMAIL PROTECTED] 
[write: comment
[EMAIL PROTECTED] 
[TAG 0.3
[EMAIL PROTECTED] 
Patch bundle hash:
a534bcea8a1eb632901ea1a9412d780df69f8ec0

Reply via email to