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