Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

104 lines (92 sloc) 3.954 kB
/*
* Copyright (c) 2008-2012 Martin Hedenfalk <martin@vicoapp.com>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#import "ViCompletionView.h"
#import "ViCompletion.h"
#import "ViURLManager.h"
@protocol ViCompletionProvider <NSObject>
- (NSArray *)completionsForString:(NSString *)string
options:(NSString *)options
error:(NSError **)outError;
@optional
- (NSArray *)completionsForString:(NSString *)string
options:(NSString *)options;
@end
@class ViCompletionController;
@protocol ViCompletionDelegate <NSObject>
@optional
- (BOOL)completionController:(ViCompletionController *)completionController
shouldTerminateForKey:(NSInteger)keyCode;
- (BOOL)completionController:(ViCompletionController *)completionController
insertPartialCompletion:(NSString *)partialCompletion
inRange:(NSRange)range;
@end
@interface ViCompletionController : NSObject <NSTableViewDataSource, NSTableViewDelegate, ViKeyManagerTarget>
{
IBOutlet NSWindow *window;
IBOutlet ViCompletionView *tableView;
IBOutlet NSTextField *label;
id<ViCompletionProvider> _provider;
NSMutableArray *_completions;
NSString *_options;
NSString *_prefix;
NSUInteger _prefixLength;
ViCompletion *_onlyCompletion;
NSMutableArray *_filteredCompletions;
ViCompletion *_selection;
NSMutableString *_filter;
// NSMutableParagraphStyle *_matchParagraphStyle;
id<ViCompletionDelegate> _delegate;
NSInteger _terminatingKey;
NSRange _range;
NSPoint _screenOrigin;
BOOL _upwards;
BOOL _fuzzySearch;
}
@property (nonatomic, readwrite, assign) id<ViCompletionDelegate> delegate;
@property (nonatomic, readonly) NSWindow *window;
@property (nonatomic, readwrite, retain) NSArray *completions;
@property (nonatomic, readonly) NSInteger terminatingKey;
@property (nonatomic, readonly) NSRange range;
@property (nonatomic, readwrite, retain) NSString *filter;
+ (id)sharedController;
+ (NSString *)commonPrefixInCompletions:(NSArray *)completions;
+ (void)appendFilter:(NSString *)string
toPattern:(NSMutableString *)pattern
fuzzyClass:(NSString *)fuzzyClass;
- (ViCompletion *)chooseFrom:(id<ViCompletionProvider>)aProvider
range:(NSRange)aRange
prefix:(NSString *)aPrefix
at:(NSPoint)screenOrigin
options:(NSString *)optionString
direction:(int)direction /* 0 = down, 1 = up */
initialFilter:(NSString *)initialFilter;
- (void)updateBounds;
- (void)filterCompletions;
- (BOOL)complete_partially:(ViCommand *)command;
- (void)acceptByKey:(NSInteger)termKey;
- (BOOL)cancel:(ViCommand *)command;
- (void)updateCompletions;
- (void)reset;
@end
Jump to Line
Something went wrong with that request. Please try again.