--- a/WorkspaceCompletionSupport.st Mon May 02 06:46:50 2016 +0200
+++ b/WorkspaceCompletionSupport.st Tue May 03 06:43:05 2016 +0200
@@ -1,5 +1,7 @@
"{ Package: 'stx:libwidg' }"
+"{ NameSpace: Smalltalk }"
+
EditTextViewCompletionSupport subclass:#WorkspaceCompletionSupport
instanceVariableNames:''
classVariableNames:''
@@ -66,7 +68,8 @@
suggestionsArrived:suggestionsArg implementations:implementationsArg actions:actionsArg autoSelect:autoSelectArg
"the background process has generated some suggestions"
- |v suggestions implementations actions suggestionOffset keyAndSnippet indexOfSnippet|
+ |v numShown numFirst numLast numSkipped
+ suggestions implementations actions suggestionOffset keyAndSnippet indexOfSnippet|
(editView sensor hasKeyPressEventFor:nil) ifTrue:[
self closeCompletionView.
@@ -77,10 +80,20 @@
actions := actionsArg.
suggestions := suggestionsArg ? #().
- suggestions size > 20 ifTrue:[
- suggestions := suggestions copyTo:20.
- implementations := implementations copyTo:20.
- actions isArray ifTrue:[ actions := actions copyTo:20 ].
+ numShown := 25.
+ suggestions size > numShown ifTrue:[
+ numFirst := numShown-5.
+ numLast := 5.
+ numSkipped := suggestions size-numShown.
+ suggestions := (suggestions copyTo:numShown-5)
+ , { ('<< %1 more skipped >>' bindWith:numSkipped) colorizeAllWith:Color grey }
+ , (suggestions copyLast:5).
+ implementations isArray ifTrue:[
+ implementations := (implementations copyTo:numShown-5),#(nil),(implementations copyLast:5).
+ ].
+ actions isArray ifTrue:[
+ actions := (actions copyTo:numShown-5),#(nil),(actions copyLast:5).
+ ].
].
"/ append snipplet, if any (can be easily reached via CRSR-up)
@@ -174,9 +187,12 @@
LastCompletions size > 200 ifTrue:[
LastCompletions removeLast
].
-
+
actions notNil ifTrue:[
actions isBlock ifTrue:[
+ (numFirst notNil and:[indexInSuggestions > numFirst]) ifTrue:[
+ indexInSuggestions := indexInSuggestions + numSkipped - 1.
+ ].
actions value:indexInSuggestions
] ifFalse:[
(actions at:indexInSuggestions) value
@@ -236,10 +252,10 @@
!WorkspaceCompletionSupport class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg/WorkspaceCompletionSupport.st,v 1.9 2014-07-08 21:17:07 cg Exp $'
+ ^ '$Header$'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libwidg/WorkspaceCompletionSupport.st,v 1.9 2014-07-08 21:17:07 cg Exp $'
+ ^ '$Header$'
! !