yi-0.19.3/0000755000000000000000000000000007346545000010416 5ustar0000000000000000yi-0.19.3/Main.hs0000644000000000000000000000655307346545000011647 0ustar0000000000000000{-# LANGUAGE CPP #-} import Control.Monad.State.Lazy (execStateT) import Data.List (intersperse) import Lens.Micro.Platform ((.=)) import Data.Maybe (fromMaybe) import Data.Monoid ((<>)) import Data.Version (showVersion) import Paths_yi_core (version) import Options.Applicative import Yi hiding (option) import Yi.Config.Simple.Types import Yi.Buffer.Misc (lineMoveRel) import Yi.Config.Default.HaskellMode (configureHaskellMode) import Yi.Config.Default.JavaScriptMode (configureJavaScriptMode) import Yi.Config.Default.MiscModes (configureMiscModes) #ifdef VIM import Yi.Config.Default.Vim (configureVim) #endif #ifdef VTY import Yi.Config.Default.Vty (configureVty) #endif #ifdef EMACS import Yi.Config.Default.Emacs (configureEmacs) #endif #ifdef PANGO import Yi.Config.Default.Pango (configurePango) #endif frontends :: [(String, ConfigM ())] frontends = [ #ifdef PANGO ("pango", configurePango), #endif #ifdef VTY ("vty", configureVty), #endif ("", return ()) ] keymaps :: [(String, ConfigM ())] keymaps = [ #ifdef EMACS ("emacs", configureEmacs), #endif #ifdef VIM ("vim", configureVim), #endif ("", return ()) ] data CommandLineOptions = CommandLineOptions { frontend :: Maybe String , keymap :: Maybe String , startOnLine :: Maybe Int , files :: [String] } commandLineOptions :: Parser (Maybe CommandLineOptions) commandLineOptions = flag' Nothing ( long "version" <> short 'v' <> help "Show the version number") <|> (Just <$> (CommandLineOptions <$> optional (strOption ( long "frontend" <> short 'f' <> metavar "FRONTEND" <> help "The frontend to use (default is pango)")) <*> optional (strOption ( long "keymap" <> short 'k' <> metavar "KEYMAP" <> help "The keymap to use (default is emacs)")) <*> optional (option auto ( long "line" <> short 'l' <> metavar "NUM" <> help "Open the (last) file on line NUM")) <*> many (argument str (metavar "FILES...")) )) main :: IO () main = do mayClo <- execParser opts case mayClo of Nothing -> putStrLn $ "Yi " <> showVersion version Just clo -> do let openFileActions = intersperse (EditorA newTabE) (map (YiA . openNewFile) (files clo)) moveLineAction = YiA $ withCurrentBuffer (lineMoveRel (fromMaybe 0 (startOnLine clo))) cfg <- execStateT (runConfigM (myConfig (frontend clo) (keymap clo) >> (startActionsA .= (openFileActions ++ [moveLineAction])))) defaultConfig startEditor cfg Nothing where opts = info (helper <*> commandLineOptions) ( fullDesc <> progDesc "Edit files" <> header "Yi - a flexible and extensible text editor written in haskell") myConfig :: Maybe String -> Maybe String -> ConfigM () myConfig f k = do -- Lookup f in the frontends list or pick the first element of the frontends list if -- f is nothing or do nothing if f is not found in the frontends list. case f of Nothing -> snd (head frontends) Just f' -> fromMaybe (return ()) (lookup f' frontends) -- Same as above, but then with k and keymaps case k of Nothing -> snd (head keymaps) Just k' -> fromMaybe (return ()) (lookup k' keymaps) configureHaskellMode configureJavaScriptMode configureMiscModes yi-0.19.3/Setup.hs0000644000000000000000000000012607346545000012051 0ustar0000000000000000#!/usr/bin/env runhaskell import Distribution.Simple main :: IO () main = defaultMain yi-0.19.3/art/0000755000000000000000000000000007346545000011204 5ustar0000000000000000yi-0.19.3/art/yi+lambda-fat-16.xpm0000644000000000000000000001222007346545000014560 0ustar0000000000000000/* XPM */ static char *yi_lambda_fat_16[] = { /* columns rows colors chars-per-pixel */ "16 16 256 2 ", " c None", ". c #ABABB2B2EFEF", "X c #ABABB2B2EFEF", "o c #ABD9B2E2F030", "O c #A9F1B0E5ED85", "+ c #A966B055ECC2", "@ c #ADF7B516F324", "# c #BC60C416FFFF", "$ c black", "% c black", "& c black", "* c black", "= c black", "- c black", "; c black", ": c black", "> c #ABABB2B2EFEF", ", c #ABABB2B2EFEF", "< c #ABABB2B2EFEF", "1 c #ACC2B3D4F174", "2 c #9AE6A13DD87E", "3 c #545857CC75E2", "4 c #86808C01BBFC", "5 c #8E68943CC709", "6 c black", "7 c black", "8 c black", "9 c black", "0 c black", "q c black", "w c black", "e c black", "r c #ABABB2B2EFEF", "t c #ABABB2B2EFEF", "y c #ABA7B2AFEFEE", "u c #AF15B608F302", "i c #D1CAD89CFFFF", "p c #47B34AA063D1", "a c #6C287096972E", "s c #792E7E24A95F", "d c #148D15641CB9", "f c black", "g c black", "h c black", "j c black", "k c black", "l c black", "z c black", "x c black", "c c black", "v c black", "b c black", "n c black", "m c #12B313771A23", "M c #309F329C43F5", "N c #38D63B2A4F70", "B c #3A253C875144", "V c #002500270034", "C c black", "Z c black", "A c black", "S c black", "D c black", "F c black", "G c black", "H c black", "J c black", "K c black", "L c black", "P c #000E000F0014", "I c black", "U c #2FFD31F44312", "Y c #521A557672C0", "T c #27842922373A", "R c #39C13C1F50B9", "E c black", "W c black", "Q c black", "! c black", "~ c black", "^ c black", "/ c black", "( c black", ") c black", "_ c black", "` c #00400043005A", "' c #072E077A0A09", "] c #4668494A6268", "[ c #704374DB9CE7", "{ c #369538D14C49", "} c black", "| c black", " . c black", ".. c black", "X. c black", "o. c black", "O. c black", "+. c black", "@. c black", "#. c black", "$. c black", "%. c #0DF90E8B1387", "&. c #3D033F825546", "*. c #3F3441CA5856", "=. c #5B335EEF7F77", "-. c #52D9563D73CB", ";. c #14FF15DB1D58", ":. c black", ">. c black", ",. c black", "<. c black", "1. c black", "2. c black", "3. c black", "4. c black", "5. c black", "6. c black", "7. c #1D521E8528FA", "8. c #85ED8B69BB2F", "9. c #37C43A0D4DF1", "0. c #76167AECA50B", "q. c #B0CDB80AF718", "w. c #5C986062811F", "e. c black", "r. c black", "t. c black", "y. c black", "u. c black", "i. c black", "p. c black", "a. c black", "s. c black", "d. c #0641068208BE", "f. c #4F9352D56F38", "g. c #8A218FC8C10E", "h. c #1BC81CEB26D3", "j. c #307A327643C1", "k. c #563659BE787F", "l. c #69826DD49377", "z. c #00720076009F", "x. c black", "c. c black", "v. c black", "b. c black", "n. c black", "m. c black", "M. c black", "N. c black", "B. c #084D08A40B99", "V. c #3B2C3D9852B3", "C. c #3B403DAD52D0", "Z. c black", "A. c #1FC621132C69", "S. c #8E67943BC708", "D. c #5A1A5DCA7DEE", "F. c black", "G. c #04DE051106CE", "H. c black", "J. c black", "K. c black", "L. c black", "P. c black", "I. c black", "U. c #1BC31CE626CC", "Y. c #52A656087384", "T. c #235E24D0316E", "R. c #1BB11CD326B3", "E. c black", "W. c #0FF6109E164F", "Q. c #5DD261A98321", "!. c #29FB2BB33AAC", "~. c #39BD3C1A50B3", "^. c #2B5A2D203C97", "/. c #333735504795", "(. c black", "). c black", "_. c black", "`. c black", "'. c black", "]. c #5AD55E8D7EF4", "[. c #555458D27742", "{. c #0D4A0DD61293", "}. c black", "|. c black", " X c black", ".X c #0EB70F511491", "XX c #75CA7A9DA4A1", "oX c #AD75B48FF26F", "OX c #9FECA678DF85", "+X c black", "@X c black", "#X c black", "$X c black", "%X c black", "&X c #12C013851A35", "*X c #50BC540970D6", "=X c #6C5570C49769", "-X c #0D720DFF12CB", ";X c black", ":X c black", ">X c black", ",X c #055D0595077E", " , < 1 2 3 4 5 6 7 8 9 0 q w e ", "r t y u i p a s d f g h j k l z ", "x c v b n m M N B V C Z A S D F ", "G H J K L P I U Y T R E W Q ! ~ ", "^ / ( ) _ ` ' ] [ { } | ...X.o.", "O.+.@.#.$.%.&.*.=.-.;.:.>.,.<.1.", "2.3.4.5.6.7.8.9.0.q.w.e.r.t.y.u.", "i.p.a.s.d.f.g.h.j.k.l.z.x.c.v.b.", "n.m.M.N.B.V.C.Z.A.S.D.F.G.H.J.K.", "L.P.I.U.Y.T.R.E.W.Q.!.~.^./.(.).", "_.`.'.].[.{.}.|. X.XXXoXOX+X@X#X", "$X%X&X*X=X-X;X:X>X,X c #07D308250AEF", ", c #086008B80BB5", "< c #08BE091A0C38", "1 c #0B7F0BF81011", "2 c #0CA70D2B11AF", "3 c #0D5D0DE912AE", "4 c #0DEF0E81137A", "5 c #0E760F0D1436", "6 c #0FA6104A15DF", "7 c #102110CA168B", "8 c #10C21172176C", "9 c #114C1202182D", "0 c #135E14291B11", "q c #1458152D1C6E", "w c #150315DF1D5E", "e c #156116411DCE", "r c #16DE17CD1FF6", "t c #1788187E20E3", "y c #18A119A3226D", "u c #18F919FE22E6", "i c #19941AA023C0", "p c #1A621B7724E0", "a c #1AA31BBB253B", "s c #1B211C3E25EB", "d c #1BFE1D23271F", "f c #1D491E7C28EE", "g c #1E731FB32A8F", "h c #1F0020452B55", "j c #1F8A20D42C15", "k c #1FF621452CAC", "l c #20DE22362DEF", "z c #220E23732F99", "x c #23A5251B31D3", "c c #265D27EF359E", "v c #284029E63843", "b c #29DD2B943A83", "n c #2D122EEA3EFE", "m c #2EAA30934138", "M c #2F4531344210", "N c #3090328D43E0", "B c #30C032BF4423", "V c #313E334244DA", "C c #3356357047C0", "Z c #349E36C6498B", "A c #355737864A8D", "S c #36DE391E4CB0", "D c #375A399E4D5D", "F c #38EF3B444F93", "G c #3A883CED51CE", "H c #3BD63E4953A1", "J c #3CF93F785539", "K c #3E3B40C756FA", "L c #3F2041B5583C", "P c #40A343495A58", "I c #4543481960CE", "U c #4555482B60E7", "Y c #45FA48D861CE", "T c #46A7498B62BF", "R c #46E249C96312", "E c #48694B606534", "W c #48E04BDC65DB", "Q c #498D4C9066CD", "! c #49FF4D06676C", "~ c #4AC04DCF6879", "^ c #4BA94EC269C0", "/ c #4F1552526E87", "( c #4FC453086F7C", ") c #54ED586776B2", "_ c #55A8592977B7", "` c #56C75A547949", "' c #574F5AE27A08", "] c #59E65D937D8A", "[ c #5A275DD87E01", "{ c #5AA25E587EAD", "} c #5B105ECA7F46", "| c #5BDE5FA08066", " . c #5CAE60798188", ".. c #5DA7617D82E6", "X. c #5E6F624C83FC", "o. c #606C645F86C4", "O. c #613A653487E3", "+. c #677A6BB790A0", "@. c #67EE6C2F9142", "#. c #6BEB705696D5", "$. c #6E2872AB99F7", "%. c #6F9174239BF0", "&. c #703774CF9CD6", "*. c #716B76109E86", "=. c #727A77299FFF", "-. c #7289773AA023", ";. c #73B37870A1B5", ":. c #73F878B7A216", ">. c #756B7A39A41C", ",. c #76A67B81A5D4", "<. c #78CB7DBCA8D4", "1. c #79997E93A9F4", "2. c #7AE37FE9ABB0", "3. c #7B108019AC00", "4. c #7E7483A1B0BC", "5. c #808A85CDB3A8", "6. c #8153869EB4C1", "7. c #83AD8911B80A", "8. c #86628BE2BBD2", "9. c #87518CDBBCF9", "0. c #87B28D40BD7C", "q. c #890A8EA6BF88", "w. c #8A71901BC17E", "e. c #8B4790FAC2A9", "r. c #8F399516C82D", "t. c #90859670C9FD", "y. c #928F988FCCD7", "u. c #92F098F4CD5E", "i. c #9372997BCE14", "p. c #96549C7BD21B", "a. c #96F49D22D2FC", "s. c #97B19DE7D403", "d. c #98A79EE7D55B", "f. c #993E9F84D62E", "g. c #9BC1A221D9B0", "h. c #9BF9A25CD9FF", "j. c #9C97A300DADC", "k. c #9DF0A467DCBE", "l. c #9EF6A577DE2C", "z. c #9F36A5BBDE94", "x. c #A081A713E055", "c. c #A092A724E06C", "v. c #A0E3A779E0DD", "b. c #A1BAA858E209", "n. c #A209A8ABE278", "m. c #A3F1AAA7E522", "M. c #A4B5AB73E635", "N. c #A527ABE9E6D3", "B. c #A62DACFAE842", "V. c #A79CAE79EA43", "C. c #A8C4AFACEBE0", "Z. c #A986B077ECF0", "A. c #ABAEB2B6EFF4", "S. c #AC17B323F086", "D. c #AC6DB37CF0FA", "F. c #ACD4B3E7F18E", "G. c #ADEBB50AF314", "H. c #AEB5B5DCF42B", "J. c #AF09B634F4A5", "K. c #AF17B642F4B7", "L. c #AF55B682F50E", "P. c #B09EB7D2F591", "I. c None", /* pixels */ "I.I.I.I.I.I.I.I.A.A.A.A.A.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.", "I.I.I.I.I.I.A.A.D.D.H.H.A.A.I.I.I. I.I.I.I.I.I.I.I.I.I.I.I.I.", "I.I.I.I.I.A.A.A.D.p.} 4.N.D.A.I.I. I.I.I.I.I.I.I.I.I.I.I.I.I.", "I.I.I.A.A.A.A.I.I.p.m : P v.H... I.I.I.I.I.I.I.I.I.I.I.I.I.I.", "I.I.I.A.I.I.I.I.I.I.I.C 4 e.v.R I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.", "I.I.I.I.I.I.I.I.I.I.I.I.=.v.k.6.D I.I.I.I.I.I.I.I.I.I.I.I.", "I.I.I.I.I.I.I.I.I.I.I.I.o.! v 9 > I.I.I.I.I.I.I.I.I.I.I.I.", "I.I.I.I.I.I.I.I. 9 o.7.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.", "I.I.I.I.I.I.I.I.I.I.I.I.I.# 9 2.=.H I.I.I.I.I.I.I.I.I.I.I.I.I.I.", "I.I.I.I.I.I.I.I.I.I.I.I.I. $ p l m s I.I.I.I.I.I.I.I.I.I.I.I.I.", "I.I.I.I.I.I.I.I.I.I. p 8.v.A.I.I.I.I.I.I.I.I.I.I.I.I.I.I.", "I.I.I.I.I.I.I.I.I.I.I.I.I.w v r.2.` m I.I.I.I.I.I.I.I.I.I.I.I.", "I.I.I.I.I.I.I.I.I.I.I.I.w w 4 f 0 0 u 6 I.I.I.I.I.I.I.I.I.I.I.", "I.I.I.I.I.I.I. > R X.( ;.y.p.h.f.I.I.I.I.I.I.I.I.I.I.I.I.", "I.I.I.I.I.I.I.I.I.I.I.I.H.k.c s $.A.D.H.I. I.I.I.I.I.I.I.I.", "I.I.I.I.I.I.I.I.I.I. 6 @.D.` z v.H.H.I.I. I.I.I.I.I.I.I.", "I.I.I.I.I.I.I.I.I. 4 Z %.D.I. h w.2.+.>.I.I. I.I.I.I.I.I.I.", "I.I.I.I.I.I.I. =.D.H.h.I. - w 4 u E I.I.I.I.I.I.I.I.I.I.I.", "I.I.I.I.I.I.I.I.I.: H -.! w P q.h.v.R I.I.I.I.I.I.I.I.I.I.", "I.I.I.I.I.I.I.I.# , f l I.I.I. D H.L.8.4 I.I.I.I.I.I.I.I.I.", "I.I.I.I. s Z - } I.I.I.I. , t.m.F - I.I.I.I.I.I.I.I.I.", "I.I.I.I.I. R h.u.9 w I. I.I.I. R ~ x 2.I.I.I.I.I.I.I.I.I.", "I.I.I.I.I.I.I.P.k.#.4 I.I.I.I. $ $ A u.H.I.I.I.I.I.I.I.I.I.", "I.I.I.I.I.I.I.~ l u - I.I.I.I.I. u u.L.A.A.I.I.I.I.I.I.I.I.", "I.I.I.I.I. $ s } 5.6 I.I.I. # ( C.S.A.I.I.I.I.I.I.I.I.", "I. u ..f.H.0. I.I. I.I.I. - | C.A.H.I. I.I.I.I.I.", "I.I. - E u.x.N.L.I. I.I.I.I.I.I.I.I.I. - ) m.L.K I.I.I.I.I.", "I.I.I.,.A.H.;.N C I.I.I.I.I.I.I.I.I.I. $ m } w I.I.I.I.I.", "I.I.I.H.A.A.V.) I.I.I.I.I.I.I.I.I.I.I.d I.I.I.I.I.", "I.I.A.A.A.A.S.m. I.I.I.I.I.I.I.I.I.I.I.0.L > - >.L.A.A.A.", "I.A.A.A.A.A.A.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.B.3.K l 4.H.A.I.I.", "A.A.A.A.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.H.Z.h.V.I.I.I.I." }; yi-0.19.3/art/yi+lambda-fat.svg0000644000000000000000000003111707346545000014335 0ustar0000000000000000 image/svg+xml yi-0.19.3/yi.10000644000000000000000000000310207346545000011115 0ustar0000000000000000.TH YI 1 2008-10-22 "yi version 0.1" "User Manual" .SH NAME yi \- text editor extensible in Haskell .SH SYNOPSIS .B yi [\fIOPTION\fR] [\fIFILENAME\fR] .SH DESCRIPTION .ds c \fIYi\fP \*c is a text editor written and extensible in Haskell. Consult the html documentation for a full description of its behaviour. .PP .TP .B \-\-selfcheck Run self-checks .TP .B \-f frontend \-\-frontend=frontend Select frontend (one of vty, gtk, pango, cocoa). .TP .B \-y config \-\-config\-file=config Specify a configuration file. .TP .B \-V \-\-version Show version information .TP .B \-h \-\-help Show help message. .TP .B \-\-debug Write debug information in a log file. .TP .B \-l num \-\-line=num Start on given line number .TP .B \-\-as=editor Start with key bindings of given editor. .TP .B \-\-recompile\-force Force recompile of custom Yi before starting. .TP .B \-\-resume Resume execution of Yi from previous state. .TP .B \-\-recompile Recompile custom Yi if required then exit. .SH FILES It can be configured in ~/.config/yi/yi.hs; consult the html documentation. .SH BUGS Bug reports should be posted to the Google issue tracker . Other suggestions or ideas may be posted to the yi-devel mailing list. .SH COPYRIGHT Copyright \(co 2004-2005 Don Stewart, except for components derived from Riot , Copyright \(co Tuomo Valkonen. .PP Yi is released under the terms of the GPL. .SH "SEE ALSO" .BR vi (1) .SH AUTHOR Yi is developed by a team of many developers, currently lead by Jean-Philippe Bernardy.yi-0.19.3/yi.cabal0000644000000000000000000000310007346545000012015 0ustar0000000000000000name: yi version: 0.19.3 synopsis: Yi editor category: Yi homepage: https://github.com/yi-editor/yi#readme bug-reports: https://github.com/yi-editor/yi/issues maintainer: Yi developers license: GPL-2 build-type: Simple cabal-version: >= 1.10 data-files: art/*.xpm art/*.svg extra-source-files: yi.1 source-repository head type: git location: https://github.com/yi-editor/yi flag emacs description: Include the emacs keymap manual: True default: True flag pango description: Include the pango (GUI) frontend manual: True default: False flag vim description: Include the vim keymap manual: True default: True flag vty description: Include the vty (CLI) frontend manual: True default: True executable yi main-is: Main.hs hs-source-dirs: ./ ghc-options: -Wall -ferror-spans -threaded -eventlog -rtsopts build-depends: base >= 4.8 && < 5 , microlens-platform >= 0.3.4.0 , mtl >= 2.2.1 , optparse-applicative >= 0.13.0.0 , yi-core >= 0.19 , yi-misc-modes >= 0.19 , yi-mode-haskell >= 0.19 , yi-mode-javascript >= 0.19 , yi-rope >= 0.10 if flag(vty) cpp-options: -DVTY build-depends: yi-frontend-vty >= 0.19 if flag(pango) cpp-options: -DPANGO build-depends: yi-frontend-pango >= 0.19 if flag(vim) cpp-options: -DVIM build-depends: yi-keymap-vim >= 0.19 if flag(emacs) cpp-options: -DEMACS build-depends: yi-keymap-emacs >= 0.19 default-language: Haskell2010