packages feed

proteome 0.2.0.0 → 0.2.1.0

raw patch · 8 files changed

+70/−9 lines, 8 filesnew-component:exe:proteomePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Ribosome.File: canonicalPath :: MonadIO m => FilePath -> m FilePath
+ Ribosome.File: canonicalPathWithHome :: FilePath -> FilePath -> FilePath
+ Ribosome.File: canonicalPaths :: MonadIO m => [FilePath] -> m [FilePath]
- Proteome.Data.Env: _errors :: HasEnv c_aqXr => Lens' c_aqXr Errors
+ Proteome.Data.Env: _errors :: HasEnv c_arh2 => Lens' c_arh2 Errors
- Proteome.Data.Env: _mainProject :: HasEnv c_aqXr => Lens' c_aqXr Project
+ Proteome.Data.Env: _mainProject :: HasEnv c_arh2 => Lens' c_arh2 Project
- Proteome.Data.Env: _projects :: HasEnv c_aqXr => Lens' c_aqXr [Project]
+ Proteome.Data.Env: _projects :: HasEnv c_arh2 => Lens' c_arh2 [Project]
- Proteome.Data.Project: _lang :: HasProject c_ankX => Lens' c_ankX (Maybe ProjectLang)
+ Proteome.Data.Project: _lang :: HasProject c_anEy => Lens' c_anEy (Maybe ProjectLang)
- Proteome.Data.Project: _meta :: HasProject c_ankX => Lens' c_ankX ProjectMetadata
+ Proteome.Data.Project: _meta :: HasProject c_anEy => Lens' c_anEy ProjectMetadata

Files

README.md view
@@ -4,6 +4,10 @@  # Install -Use the [chromatin] plugin manager with the spec `hackage:proteome`.+Use the [chromatin] plugin manager with the spec `hackage:proteome`:++```vim+let g:chromatin_rplugins += [{ 'spec': 'hackage:proteome', 'name': 'proteome' }]+```  [chromatin]: https://github.com/tek/chromatin.nvim
lib/Proteome/Config.hs view
@@ -70,3 +70,4 @@ proReadConfig = do   main <- Ribo.inspect Env.mainProject   readConfig "project" main+  readConfig "project_after" main
lib/Proteome/Init.hs view
@@ -13,10 +13,13 @@ import Neovim.Context.Internal (Neovim) import UnliftIO.STM (TVar, newTVarIO) import Ribosome.Config.Settings (setting, settingE, updateSetting)-import Ribosome.Data.Ribo+import Ribosome.Data.Ribo (Ribo)+import qualified Ribosome.Data.Ribo as Ribo (inspect) import Ribosome.Data.Ribosome (Ribosome(Ribosome))+import Ribosome.File (canonicalPaths) import Ribosome.Internal.IO (retypeNeovim) import Proteome.Data.Env (Env(Env))+import qualified Proteome.Data.Env as Env (mainProject) import Proteome.Data.Proteome import Proteome.Data.Project (   Project(meta),@@ -26,6 +29,8 @@   ProjectMetadata(DirProject),   ) import Proteome.Project.Resolve (resolveProject)+import Proteome.Config (readConfig)+import Proteome.Log import qualified Proteome.Settings as S  pathData :: MonadIO m => Either String FilePath -> m (ProjectRoot, ProjectName, ProjectType)@@ -42,7 +47,7 @@ mainProject = do   mainDir <- settingE S.mainProjectDir   (root, name, tpe) <- pathData mainDir-  baseDirs <- setting S.projectBaseDirs+  baseDirs <- (canonicalPaths <=< setting) S.projectBaseDirs   -- typeDirs <- setting S.projectTypeDirs   explicit <- setting S.projects   config <- setting S.projectConfig@@ -63,6 +68,7 @@  initWithMain :: Project -> Ribo e Env initWithMain main = do+  debugS $ "initializing with main project: " ++ show main   loadPersistedBuffers main   setProjectVars (meta main)   return $ Env main [] def@@ -79,7 +85,11 @@   newTVarIO env  proteomeStage2 :: Proteome ()-proteomeStage2 = return ()+proteomeStage2 = do+  main <- Ribo.inspect Env.mainProject+  readConfig "project" main  proteomeStage4 :: Proteome ()-proteomeStage4 = return ()+proteomeStage4 = do+  main <- Ribo.inspect Env.mainProject+  readConfig "project_after" main
lib/Proteome/Project/Resolve.hs view
@@ -40,7 +40,7 @@ byProjectTypeName specs name tpe = find (hasProjectTypeName tpe name) specs  byProjectBases :: [FilePath] -> ProjectRoot -> Bool-byProjectBases baseDirs (ProjectRoot root) = elem ((takeDirectory . takeDirectory) root) baseDirs+byProjectBases baseDirs (ProjectRoot root) = (takeDirectory . takeDirectory) root `elem` baseDirs  virtualProject :: ProjectName -> Project virtualProject name = Project (VirtualProject name) [] Nothing []
+ lib/Ribosome/File.hs view
@@ -0,0 +1,23 @@+module Ribosome.File(+  canonicalPathWithHome,+  canonicalPath,+  canonicalPaths,+) where++import Control.Monad.IO.Class (MonadIO, liftIO)+import Data.String.Utils (replace)+import System.Directory (getHomeDirectory, canonicalizePath)++canonicalPathWithHome :: FilePath -> FilePath -> FilePath+canonicalPathWithHome = replace "~"++canonicalPath :: MonadIO m => FilePath -> m FilePath+canonicalPath path = do+  home <- liftIO getHomeDirectory+  return $ canonicalPathWithHome home path++canonicalPaths :: MonadIO m => [FilePath] -> m [FilePath]+canonicalPaths paths = do+  home <- liftIO getHomeDirectory+  let withHome = fmap (canonicalPathWithHome home) paths+  liftIO $ mapM canonicalizePath withHome
proteome.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: aeb4f9fc4dda14d1efb906445e7ff9e84fd39b5cf2bcf984c395b23c604c14fb+-- hash: f32ec9d6b642269ce47df16a64625c3790d331489866939c1d0b07b3a38bc26d  name:           proteome-version:        0.2.0.0+version:        0.2.1.0 synopsis:       neovim project manager description:    Please see the README on GitHub at <https://github.com/tek/proteome-hs> category:       Neovim@@ -51,6 +51,7 @@       Ribosome.Data.Maybe       Ribosome.Data.Ribo       Ribosome.Data.Ribosome+      Ribosome.File       Ribosome.Internal.IO       Ribosome.Internal.NvimObject       Ribosome.Log@@ -90,7 +91,7 @@     , utf8-string   default-language: Haskell2010 -executable proteome-exe+executable proteome   main-is: Main.hs   other-modules:       Paths_proteome@@ -170,6 +171,7 @@   main-is: SpecMain.hs   other-modules:       Config+      ResolveSpec       TagsSpec       Paths_proteome   hs-source-dirs:
+ test/u/ResolveSpec.hs view
@@ -0,0 +1,20 @@+{-# OPTIONS_GHC -F -pgmF htfpp #-}++module ResolveSpec(+  htf_thisModulesTests+) where++import Test.Framework+import Ribosome.File (canonicalPaths)++paths :: [FilePath]+paths = [+  "~/../test/dir",+  "~"+  ]++test_canonicalPaths :: IO ()+test_canonicalPaths = do+  canon <- canonicalPaths paths+  print canon+  assertNotEqual canon paths
test/u/SpecMain.hs view
@@ -3,6 +3,7 @@ module Main where  import {-@ HTF_TESTS @-} TagsSpec+import {-@ HTF_TESTS @-} ResolveSpec import Test.Framework import Test.Framework.BlackBoxTest ()