AbstractSourceCodeManager.st
branchjv
changeset 3908 3df5063ed9cc
parent 3901 5b03b8d3968b
child 3909 30f4d586370e
--- a/AbstractSourceCodeManager.st	Fri Sep 25 07:43:54 2015 +0100
+++ b/AbstractSourceCodeManager.st	Thu Oct 01 06:46:27 2015 +0100
@@ -16,7 +16,8 @@
 Object subclass:#AbstractSourceCodeManager
 	instanceVariableNames:''
 	classVariableNames:'DefaultManager CachingSources CacheDirectoryName UseWorkTree
-		WorkTreeDirectoryName ManagerPerModule Verbose'
+		WorkTreeDirectoryName ManagerPerModule Verbose
+		ManagerForPackageCache'
 	poolDictionaries:''
 	category:'System-SourceCodeManagement'
 !
@@ -93,11 +94,13 @@
 
     CachingSources isNil ifTrue:[CachingSources := false].
     UseWorkTree    isNil ifTrue:[UseWorkTree := false].
+    ManagerForPackageCache := Dictionary new.
 
     self validateCacheDirPath.
     Smalltalk addDependent:self
 
     "Modified: / 02-03-2012 / 17:00:11 / cg"
+    "Modified: / 01-10-2015 / 06:07:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 update:something with:aParameter from:changedObject
@@ -222,7 +225,8 @@
     ManagerPerModule add:
         (PackageAndManager 
             package: aPackageIDMatchString 
-            manager: aSourceCodeManagerClass)
+            manager: aSourceCodeManagerClass).
+    ManagerForPackageCache := Dictionary new. 
 
     "
      self managerForModule:'stx:libbasic2' put:SVNSourceCodeManager
@@ -232,7 +236,7 @@
     "
 
     "Created: / 18-04-2011 / 19:48:19 / cg"
-    "Modified: / 07-07-2013 / 10:40:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-10-2015 / 06:04:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 managerForPackage:aPackageID
@@ -242,10 +246,14 @@
      is hack since  there is no global boolean flag, sigh"
     (Smalltalk at:#SourceCodeManager) isNil ifTrue:[ ^nil ].
 
+    ManagerForPackageCache at: aPackageID ifPresent:[ :manager | ^ manager ].
     "JV@2012-01-23: HACK: Q: Shouldn't it filter configured manager through
      'enabled' managers?"         
     self managerPerMatchingModuleDefinitions do:[:each |
-        (each match:aPackageID) ifTrue:[^ each manager].
+        (each match:aPackageID) ifTrue:[
+            ManagerForPackageCache at: aPackageID put: each manager.
+            ^ each manager
+        ].
     ].
     ^ DefaultManager
 
@@ -258,7 +266,7 @@
     "Created: / 18-04-2011 / 19:39:19 / cg"
     "Created: / 10-10-2011 / 14:50:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 19-10-2011 / 16:45:38 / cg"
-    "Modified (comment): / 23-01-2012 / 19:46:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (format): / 01-10-2015 / 06:44:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 managerPerMatchingModuleDefinitions
@@ -279,10 +287,11 @@
      (not a dictionary, because order is relevant in the matching process, where the first match counts)"
 
     ManagerPerModule := aCollection.
-    UserPreferences current managerPerMatchingModuleDefinitions:aCollection
+    UserPreferences current managerPerMatchingModuleDefinitions:aCollection.
+    ManagerForPackageCache := Dictionary new.
 
     "Created: / 18-04-2011 / 20:09:21 / cg"
-    "Modified: / 09-07-2011 / 13:36:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-10-2015 / 06:04:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 named: managerTypeName
@@ -344,9 +353,11 @@
 shownInBrowserMenus:aBoolean
     "can be redefined in subclasses which can be suppressed in the browser's menus"
 
+    ManagerForPackageCache := Dictionary new.
     ^ UserPreferences current at:(self nameWithoutPrefix,'.enabled') put:aBoolean.
 
     "Created: / 15-01-2012 / 14:09:21 / cg"
+    "Modified: / 01-10-2015 / 06:07:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 useWorkTree
@@ -3997,6 +4008,11 @@
     ^ '$Header$'
 !
 
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+!
+
 version_SVN
     ^ '$Id$'
 ! !