leksah 0.14.0.1 → 0.14.1.0
raw patch · 10 files changed
+180/−8 lines, 10 filesdep ~leksah
Dependency ranges changed: leksah
Files
- data/leksah.menu +1/−0
- data/prefs.lkshp +1/−1
- leksah.cabal +5/−4
- scripts/stage.sh +1/−1
- src/IDE/Command.hs +3/−0
- src/IDE/Pane/Preferences.hs +1/−0
- src/IDE/Pane/WebKit/Inspect.hs +147/−0
- src/IDE/Pane/WebKit/Output.hs +15/−1
- src/IDE/Session.hs +4/−0
- win32/makeinstaller.sh +2/−1
@@ -114,6 +114,7 @@ <menuitem name="_Trace" action="ShowTrace" /> <menuitem name="_Variables" action="ShowVariables" /> <menuitem name="_Output" action="ShowOutput" />+ <menuitem name="_Web Inspector" action="ShowInspect" /> <separator/> <menuitem name="_Errors" action="ShowErrors" /> <menuitem name="_Files" action="ShowFiles" />
data/prefs.lkshp view
@@ -38,7 +38,7 @@ keymap --The name of a keymap file in a config dir Categories for panes:- [("*Breakpoints","LogCategory"),("*Browser","ToolCategory"),("*Debug","ToolCategory"),("*Errors","ToolCategory"),("*Files","ToolCategory"),("*Flags","ToolCategory"),("*Grep","ToolCategory"),("*HLint","ToolCategory"),("*Doc","ToolCategory"),("*Info","LogCategory"),("*Log","LogCategory"),("*Modules","ToolCategory"),("*Out","ToolCategory"),("*Package","EditorCategory"),("*Prefs","EditorCategory"),("*Search","ToolCategory"),("*Trace","LogCategory"),("*Variables","LogCategory"),("*Workspace","LogCategory")]+ [("*Breakpoints","LogCategory"),("*Browser","ToolCategory"),("*Debug","ToolCategory"),("*Errors","ToolCategory"),("*Files","ToolCategory"),("*Flags","ToolCategory"),("*Grep","ToolCategory"),("*HLint","ToolCategory"),("*Doc","ToolCategory"),("*Info","LogCategory"),("*Log","LogCategory"),("*Inspect","LogCategory"),("*Modules","ToolCategory"),("*Out","ToolCategory"),("*Package","EditorCategory"),("*Prefs","EditorCategory"),("*Search","ToolCategory"),("*Trace","LogCategory"),("*Variables","LogCategory"),("*Workspace","LogCategory")] Pane path for category: [("EditorCategory",[SplitP LeftP]),("ToolCategory",[SplitP RightP,SplitP TopP]),("LogCategory",[SplitP RightP,SplitP BottomP])] Default pane path:
leksah.cabal view
@@ -1,5 +1,5 @@ name: leksah-version: 0.14.0.1+version: 0.14.1.0 cabal-version: >=1.10 build-type: Simple license: GPL@@ -284,6 +284,7 @@ IDE.Command.VCS.Common.Workspaces IDE.Command.VCS.Common.GUI IDE.Command.VCS.Common.Helper IDE.Command.VCS.Types IDE.Command.Print IDE.Pane.WebKit.Documentation+ IDE.Pane.WebKit.Inspect IDE.Pane.WebKit.Output IDE.TextEditor.Class IDE.TextEditor.CodeMirror IDE.TextEditor.Yi IDE.TextEditor.GtkSourceView IDE.Utils.ExternalTool@@ -312,7 +313,7 @@ ghc-options: -threaded hs-source-dirs: main- build-depends: leksah == 0.14.0.1, base >= 4.0.0.0 && <=4.8, gtk3 -any+ build-depends: leksah == 0.14.1.0, base >= 4.0.0.0 && <=4.8, gtk3 -any if os(linux) && flag(loc) cpp-options: -DLOCALIZATION build-depends: hgettext, setlocale@@ -331,7 +332,7 @@ if !flag(webkit) buildable: False else- build-depends: leksah ==0.14.0.1, base >=4.0.0.0 && <=4.8,+ build-depends: leksah ==0.14.1.0, base >=4.0.0.0 && <=4.8, jsaddle -any, ghcjs-dom -any if flag(gtk3) build-depends: gtk3 >=0.13.0.0 && <0.14, gtksourceview3 >=0.13.0.0 && <0.14,@@ -348,7 +349,7 @@ test-suite tests build-depends: base >=4.0.0.0 && <4.8, Cabal >=1.10.2.0 && <1.22,- QuickCheck >=2.4.2 && <2.8, leksah ==0.14.0.1,+ QuickCheck >=2.4.2 && <2.8, leksah ==0.14.1.0, containers, ltk, leksah-server, hslogger, transformers, glib, monad-loops, text if flag(gtk3)
scripts/stage.sh view
@@ -35,7 +35,7 @@ if test "`uname`" = "Darwin"; then cabal install ./ ./vendor/ltk ./vendor/leksah-server ./vendor/yi/yi gtk3 ghcjs-dom jsaddle vendor/haskellVCSWrapper/vcswrapper vendor/haskellVCSGUI/vcsgui --with-ghc=ghc$GHCVERSION -j4 -fhave-quartz-gtk -fwebkit -flibcurl -fyi -fpango --with-gcc=gcc-mp-4.8 || exit else- cabal install ./ ./vendor/ltk ./vendor/leksah-server ./vendor/yi/yi gtk3 ghcjs-dom jsaddle vendor/haskellVCSWrapper/vcswrapper vendor/haskellVCSGUI/vcsgui --with-ghc=ghc$GHCVERSION -j4 -fwebkit -flibcurl --force-reinstalls || bash || exit+ cabal install ./ ./vendor/ltk ./vendor/leksah-server gtk3 ghcjs-dom jsaddle vendor/haskellVCSWrapper/vcswrapper vendor/haskellVCSGUI/vcsgui --with-ghc=ghc$GHCVERSION -j4 -fwebkit -flibcurl -f-yi -fpango -f-vty --force-reinstalls --extra-lib-dirs=/c/MinGWRPM/lib || bash || exit # if [ "$GHC_VER" != "7.0.3" ] && [ "$GHC_VER" != "7.0.4" ] && [ "$GHC_VER" != "7.6.1" ]; then # echo https://github.com/yi-editor/yi.git >> sources.txt # export LEKSAH_CONFIG_ARGS="$LEKSAH_CONFIG_ARGS -fyi -f-vty -f-dyre -fpango"
src/IDE/Command.hs view
@@ -102,6 +102,7 @@ import IDE.Pane.HLint (refreshHLint, getHLint) import IDE.Pane.WebKit.Documentation (getDocumentation) import IDE.Pane.WebKit.Output (getOutputPane)+import IDE.Pane.WebKit.Inspect (getInspectPane) import IDE.Pane.Files (refreshFiles, getFiles) import Control.Monad.IO.Class (MonadIO(..)) import Control.Monad (unless, when)@@ -402,6 +403,8 @@ (getDocumentation Nothing >>= \ p -> displayPane p False) [] False ,AD "ShowOutput" (__ "Output") Nothing Nothing (getOutputPane Nothing >>= \ p -> displayPane p False) [] False+ ,AD "ShowInspect" (__ "Web Inspect") Nothing Nothing+ (getInspectPane Nothing >>= \ p -> displayPane p False) [] False ,AD "ShowErrors" (__ "Errors") Nothing Nothing (getErrors Nothing >>= \ p -> displayPane p False) [] False ,AD "ShowLog" (__ "Log") Nothing Nothing
src/IDE/Pane/Preferences.hs view
@@ -805,6 +805,7 @@ , ("*Doc","ToolCategory") , ("*Info","LogCategory") , ("*Log","LogCategory")+ , ("*Inspect","LogCategory") , ("*Modules","ToolCategory") , ("*Out","ToolCategory") , ("*Package","EditorCategory")
+ src/IDE/Pane/WebKit/Inspect.hs view
@@ -0,0 +1,147 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE TypeSynonymInstances #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE OverloadedStrings #-}+-----------------------------------------------------------------------------+--+-- Module : IDE.Pane.WebKit.Inspect+-- Copyright : 2007-2014 Juergen Nicklisch-Franken, Hamish Mackenzie+-- License : GPL+--+-- Maintainer : maintainer@leksah.org+-- Stability : provisional+-- Portability :+--+-- |+--+-----------------------------------------------------------------------------++module IDE.Pane.WebKit.Inspect (+ IDEInspect(..)+ , InspectState(..)+ , getInspectPane+) where++import Graphics.UI.Frame.Panes+ (RecoverablePane(..), PanePath, RecoverablePane, Pane(..))+import Graphics.UI.Gtk+ (scrolledWindowSetShadowType, entryGetText, entryActivated,+ boxPackStart, entrySetText, Entry, VBox, entryNew, vBoxNew,+ postGUISync, scrolledWindowSetPolicy, scrolledWindowNew,+ castToWidget, ScrolledWindow)+import IDE.Utils.GUIUtils+import Data.Typeable (Typeable)+import IDE.Core.Types (IDEAction, IDEM, IDE(..))+import Control.Monad.IO.Class (MonadIO(..))+import Graphics.UI.Frame.ViewFrame (getNotebook)+import IDE.Core.State+ (modifyIDE_, postSyncIDE, reifyIDE, leksahOrPackageDir)+import Graphics.UI.Gtk.General.Enums+ (ShadowType(..), Packing(..), PolicyType(..))++#ifdef WEBKITGTK+import Graphics.UI.Gtk+ (toggleActionActive, castToMenuItem, actionCreateMenuItem,+ toggleActionNew, menuShellAppend, toggleActionSetActive,+ menuItemActivate, menuItemNewWithLabel, eventModifier,+ eventKeyName, keyPressEvent, focusInEvent, containerAdd,+ Modifier(..), after)+import Graphics.UI.Gtk.WebKit.Types (WebView(..))+import Graphics.UI.Gtk.WebKit.WebView+ (populatePopup, webViewGoBack, webViewZoomOut, webViewZoomIn,+ webViewLoadString, webViewZoomLevel, webViewReload, webViewNew,+ webViewLoadUri)+import System.Glib.Attributes (AttrOp(..), set, get)+import System.Glib.Signals (on)+import IDE.Core.State (reflectIDE)+import Graphics.UI.Editor.Basics (Connection(..))+import Text.Show.Pretty+ (HtmlOpts(..), defaultHtmlOpts, valToHtmlPage, parseValue, getDataDir)+import System.FilePath ((</>))+#endif+import Data.IORef (writeIORef, newIORef, readIORef, IORef)+import Control.Applicative ((<$>))+import System.Log.Logger (debugM)+import Graphics.UI.Gtk.WebKit.WebView+ (webViewSetWebSettings, webViewGetWebSettings, loadCommitted,+ webViewGetUri)+import Graphics.UI.Gtk.WebKit.WebFrame (webFrameGetUri)+import Data.Text (Text)+import qualified Data.Text as T (unpack, pack)+import Graphics.UI.Gtk.WebKit.WebSettings+ (webSettingsMonospaceFontFamily)++data IDEInspect = IDEInspect {+ scrollWin :: ScrolledWindow+#ifdef WEBKITGTK+ , inspectView :: WebView+#else+ , inspectState :: IORef InspectState+#endif+} deriving Typeable++data InspectState = InspectState {+} deriving(Eq,Ord,Read,Show,Typeable)++instance Pane IDEInspect IDEM+ where+ primPaneName _ = "Inspect"+ getAddedIndex _ = 0+ getTopWidget = castToWidget . scrollWin+ paneId b = "*Inspect"++instance RecoverablePane IDEInspect InspectState IDEM where+ saveState p = liftIO $ do+#ifdef WEBKITGTK+ return (Just InspectState{..})+#else+ Just <$> readIORef (inspectState p)+#endif+ recoverState pp InspectState {..} = do+ nb <- getNotebook pp+ mbPane <- buildPane pp nb builder+ case mbPane of+ Nothing -> return ()+ Just p -> liftIO $ do+#ifdef WEBKITGTK+ return ()+#else+ writeIORef (inspectState p) InspectState {..}+#endif+ return mbPane+ builder pp nb windows = reifyIDE $ \ ideR -> do+ scrollWin <- scrolledWindowNew Nothing Nothing+ scrolledWindowSetShadowType scrollWin ShadowIn++#ifdef WEBKITGTK+ inspectView <- webViewNew+ settings <- webViewGetWebSettings inspectView+ settings `set` [webSettingsMonospaceFontFamily := ("Consolas" :: Text)]+ webViewSetWebSettings inspectView settings+ alwaysHtmlRef <- newIORef False+ containerAdd scrollWin inspectView+#else+ inspectState <- newIORef InspectState {}+#endif++ scrolledWindowSetPolicy scrollWin PolicyAutomatic PolicyAutomatic+ let inspect = IDEInspect {..}++#ifdef WEBKITGTK+ cid1 <- after inspectView focusInEvent $ do+ liftIO $ reflectIDE (makeActive inspect) ideR+ return True++ return (Just inspect, [ConnectC cid1])+#else+ return (Just inspect, [])+#endif+++getInspectPane :: Maybe PanePath -> IDEM IDEInspect+getInspectPane Nothing = forceGetPane (Right "*Inspect")+getInspectPane (Just pp) = forceGetPane (Left pp)+
src/IDE/Pane/WebKit/Output.hs view
@@ -63,12 +63,17 @@ import Text.Show.Pretty (HtmlOpts(..), defaultHtmlOpts, valToHtmlPage, parseValue, getDataDir) import System.FilePath ((</>))+import IDE.Pane.WebKit.Inspect (getInspectPane, IDEInspect(..))+import Graphics.UI.Gtk.WebKit.WebSettings+ (webSettingsEnableDeveloperExtras)+import Graphics.UI.Gtk.WebKit.WebInspector (inspectWebView) #endif import Data.IORef (writeIORef, newIORef, readIORef, IORef) import Control.Applicative ((<$>)) import System.Log.Logger (debugM) import Graphics.UI.Gtk.WebKit.WebView- (loadCommitted, webViewGetUri)+ (webViewSetWebSettings, webViewGetWebSettings, webViewGetInspector,+ loadCommitted, webViewGetUri) import Graphics.UI.Gtk.WebKit.WebFrame (webFrameGetUri) import Data.Text (Text) import qualified Data.Text as T (unpack, pack)@@ -181,6 +186,15 @@ cid6 <- uriEntry `after` focusInEvent $ do liftIO $ reflectIDE (makeActive out) ideR return True++ settings <- webViewGetWebSettings webView+ settings `set` [webSettingsEnableDeveloperExtras := True]+ webViewSetWebSettings webView settings+ inspector <- webViewGetInspector webView+ cid7 <- on inspector inspectWebView $ \view -> (`reflectIDE` ideR) $ do+ inspectPane <- getInspectPane Nothing+ displayPane inspectPane False+ return $ inspectView inspectPane return (Just out, [ConnectC cid1, ConnectC cid2, ConnectC cid3, ConnectC cid4, ConnectC cid5, ConnectC cid6]) #else
src/IDE/Session.hs view
@@ -59,6 +59,7 @@ import IDE.Pane.HLint import IDE.Pane.WebKit.Documentation import IDE.Pane.WebKit.Output+import IDE.Pane.WebKit.Inspect import IDE.Pane.Files import IDE.Pane.Breakpoints import IDE.Pane.Trace@@ -99,6 +100,7 @@ | HLintSt HLintState | DocumentationSt DocumentationState | OutputSt OutputState+ | InspectSt InspectState | BreakpointsSt BreakpointsState | TraceSt TraceState | VariablesSt VariablesState@@ -119,6 +121,7 @@ asPaneState s | isJust ((cast s) :: Maybe HLintState) = HLintSt (fromJust $ cast s) asPaneState s | isJust ((cast s) :: Maybe DocumentationState) = DocumentationSt (fromJust $ cast s) asPaneState s | isJust ((cast s) :: Maybe OutputState) = OutputSt (fromJust $ cast s)+asPaneState s | isJust ((cast s) :: Maybe InspectState) = InspectSt (fromJust $ cast s) asPaneState s | isJust ((cast s) :: Maybe BreakpointsState) = BreakpointsSt (fromJust $ cast s) asPaneState s | isJust ((cast s) :: Maybe TraceState) = TraceSt (fromJust $ cast s) asPaneState s | isJust ((cast s) :: Maybe VariablesState) = VariablesSt (fromJust $ cast s)@@ -139,6 +142,7 @@ recover pp (HLintSt p) = recoverState pp p >> return () recover pp (DocumentationSt p) = recoverState pp p >> return () recover pp (OutputSt p) = recoverState pp p >> return ()+recover pp (InspectSt p) = recoverState pp p >> return () recover pp (BreakpointsSt p) = recoverState pp p >> return () recover pp (TraceSt p) = recoverState pp p >> return () recover pp (VariablesSt p) = recoverState pp p >> return ()
win32/makeinstaller.sh view
@@ -32,7 +32,7 @@ cp -u "$LEKSAH_PREFIX/$LEKSAH_X_X_X_X"/LICENSE SourceDir/leksah cp -u "$LEKSAH_PREFIX/$LEKSAH_X_X_X_X"/Readme.md SourceDir/leksah mkdir -p SourceDir/hlint-cp -u "$LEKSAH_PREFIX/$HLINT_X_X_X_X"/* SourceDir/hlint+cp -ru "$LEKSAH_PREFIX/$HLINT_X_X_X_X"/* SourceDir/hlint mkdir -p SourceDir/pretty-show cp -ru "$LEKSAH_PREFIX/$PRETTY_SHOW_X_X"/style SourceDir/pretty-show mkdir -p SourceDir/ghcjs-codemirror@@ -64,6 +64,7 @@ cp -u "$GTK_PREFIX"/bin/libfontconfig-1.dll SourceDir/bin cp -u "$GTK_PREFIX"/bin/libfreetype-6.dll SourceDir/bin cp -u "$GTK_PREFIX"/bin/libgailutil-3-0.dll SourceDir/bin+cp -u "$GTK_PREFIX"/bin/libgcc_s_seh-1.dll SourceDir/bin cp -u "$GTK_PREFIX"/bin/libgcc_s_sjlj-1.dll SourceDir/bin cp -u "$GTK_PREFIX"/bin/libgdk-3-0.dll SourceDir/bin cp -u "$GTK_PREFIX"/bin/libgdk_pixbuf-2.0-0.dll SourceDir/bin