mirror of
https://github.com/qvacua/vimr.git
synced 2024-12-25 23:02:35 +03:00
Merge remote-tracking branch 'origin/develop' into update-neovim
This commit is contained in:
commit
2ed34fb136
2
Cartfile
2
Cartfile
@ -5,7 +5,7 @@ github "sparkle-project/Sparkle" == 1.18.1
|
|||||||
github "qvacua/CocoaFontAwesome" "master"
|
github "qvacua/CocoaFontAwesome" "master"
|
||||||
github "qvacua/CocoaMarkdown" "master"
|
github "qvacua/CocoaMarkdown" "master"
|
||||||
github "sindresorhus/github-markdown-css" == 2.9.0
|
github "sindresorhus/github-markdown-css" == 2.9.0
|
||||||
github "httpswift/swifter" == 1.3.3
|
github "httpswift/swifter" "stable"
|
||||||
github "a2/MessagePack.swift" == 3.0.0
|
github "a2/MessagePack.swift" == 3.0.0
|
||||||
github "antitypical/Result" == 3.2.4
|
github "antitypical/Result" == 3.2.4
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ github "ReactiveX/RxSwift" "4.0.0"
|
|||||||
github "a2/MessagePack.swift" "3.0.0"
|
github "a2/MessagePack.swift" "3.0.0"
|
||||||
github "antitypical/Result" "3.2.4"
|
github "antitypical/Result" "3.2.4"
|
||||||
github "eonil/FileSystemEvents" "85a089104af37f04a6bf7f2d07d7a93cac0b4fe1"
|
github "eonil/FileSystemEvents" "85a089104af37f04a6bf7f2d07d7a93cac0b4fe1"
|
||||||
github "httpswift/swifter" "1.3.3"
|
github "httpswift/swifter" "6e996387f14dc6f5d573591dfeb3fdffc5986103"
|
||||||
github "qvacua/CocoaFontAwesome" "71865fc2c0275ebc5c8601edc23290e85aca9979"
|
github "qvacua/CocoaFontAwesome" "71865fc2c0275ebc5c8601edc23290e85aca9979"
|
||||||
github "qvacua/CocoaMarkdown" "5d1c1e3dd74486dfc358c9cc3ddd7e993842113d"
|
github "qvacua/CocoaMarkdown" "5d1c1e3dd74486dfc358c9cc3ddd7e993842113d"
|
||||||
github "sindresorhus/github-markdown-css" "v2.9.0"
|
github "sindresorhus/github-markdown-css" "v2.9.0"
|
||||||
|
@ -218,7 +218,7 @@
|
|||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
CODE_SIGN_IDENTITY = "-";
|
CODE_SIGN_IDENTITY = "-";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
CURRENT_PROJECT_VERSION = 248;
|
CURRENT_PROJECT_VERSION = 249;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
ENABLE_TESTABILITY = YES;
|
ENABLE_TESTABILITY = YES;
|
||||||
@ -278,7 +278,7 @@
|
|||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
CODE_SIGN_IDENTITY = "-";
|
CODE_SIGN_IDENTITY = "-";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
CURRENT_PROJECT_VERSION = 248;
|
CURRENT_PROJECT_VERSION = 249;
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
ENABLE_NS_ASSERTIONS = NO;
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
@ -308,7 +308,7 @@
|
|||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
DEFINES_MODULE = YES;
|
DEFINES_MODULE = YES;
|
||||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
DYLIB_CURRENT_VERSION = 248;
|
DYLIB_CURRENT_VERSION = 249;
|
||||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
FRAMEWORK_VERSION = A;
|
FRAMEWORK_VERSION = A;
|
||||||
INFOPLIST_FILE = MsgPackRpc/Info.plist;
|
INFOPLIST_FILE = MsgPackRpc/Info.plist;
|
||||||
@ -331,7 +331,7 @@
|
|||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
DEFINES_MODULE = YES;
|
DEFINES_MODULE = YES;
|
||||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
DYLIB_CURRENT_VERSION = 248;
|
DYLIB_CURRENT_VERSION = 249;
|
||||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
FRAMEWORK_VERSION = A;
|
FRAMEWORK_VERSION = A;
|
||||||
INFOPLIST_FILE = MsgPackRpc/Info.plist;
|
INFOPLIST_FILE = MsgPackRpc/Info.plist;
|
||||||
|
@ -15,9 +15,9 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>FMWK</string>
|
<string>FMWK</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>SNAPSHOT-248</string>
|
<string>SNAPSHOT-249</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>248</string>
|
<string>249</string>
|
||||||
<key>NSHumanReadableCopyright</key>
|
<key>NSHumanReadableCopyright</key>
|
||||||
<string>Copyright © 2017 Tae Won Ha. All rights reserved.</string>
|
<string>Copyright © 2017 Tae Won Ha. All rights reserved.</string>
|
||||||
<key>NSPrincipalClass</key>
|
<key>NSPrincipalClass</key>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
public enum MessageType: Int {
|
public enum MessageType: UInt64 {
|
||||||
|
|
||||||
case request = 0
|
case request = 0
|
||||||
case response = 1
|
case response = 1
|
||||||
@ -24,6 +24,11 @@ public struct Response {
|
|||||||
|
|
||||||
public class Connection {
|
public class Connection {
|
||||||
|
|
||||||
|
public struct Error: Swift.Error {
|
||||||
|
|
||||||
|
let message: String
|
||||||
|
}
|
||||||
|
|
||||||
public var notificationCallback: ((MessageType, String, [Value]) -> Void)?
|
public var notificationCallback: ((MessageType, String, [Value]) -> Void)?
|
||||||
public var unknownMessageCallback: (([Value]) -> Void)?
|
public var unknownMessageCallback: (([Value]) -> Void)?
|
||||||
public var errorCallback: ((Value) -> Void)?
|
public var errorCallback: ((Value) -> Void)?
|
||||||
@ -42,30 +47,34 @@ public class Connection {
|
|||||||
self.init(with: session)
|
self.init(with: session)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func run() {
|
public func run() throws {
|
||||||
self.session.connectAndRun()
|
guard let error = self.session.connectAndRun() else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
throw Error(message: error.localizedDescription)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func stop() {
|
public func stop() {
|
||||||
|
self.stopped = true
|
||||||
|
|
||||||
|
locked(with: self.sessionLock) {
|
||||||
locked(with: self.conditionsLock) {
|
locked(with: self.conditionsLock) {
|
||||||
self.conditions.values.forEach { condition in
|
self.conditions.values.forEach { condition in
|
||||||
locked(with: condition) { condition.broadcast() }
|
locked(with: condition) { condition.broadcast() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
locked(with: self.sessionLock) {
|
|
||||||
self.stopped = true
|
|
||||||
self.session.disconnectAndStop()
|
self.session.disconnectAndStop()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@discardableResult
|
@discardableResult
|
||||||
public func request(type: Int = 0,
|
public func request(type: UInt64 = MessageType.request.rawValue,
|
||||||
msgid: UInt32,
|
msgid: UInt32,
|
||||||
method: String,
|
method: String,
|
||||||
params: [Value],
|
params: [Value],
|
||||||
expectsReturnValue: Bool)
|
expectsReturnValue: Bool) -> MsgPackRpc.Response {
|
||||||
-> MsgPackRpc.Response {
|
|
||||||
|
|
||||||
let packed = pack(
|
let packed = pack(
|
||||||
[
|
[
|
||||||
@ -139,7 +148,7 @@ public class Connection {
|
|||||||
|
|
||||||
switch type {
|
switch type {
|
||||||
|
|
||||||
case 1:
|
case MessageType.response.rawValue:
|
||||||
// response
|
// response
|
||||||
guard let msgid64 = array[1].unsignedIntegerValue else {
|
guard let msgid64 = array[1].unsignedIntegerValue else {
|
||||||
NSLog("Warning: could not get the request ID")
|
NSLog("Warning: could not get the request ID")
|
||||||
@ -161,7 +170,7 @@ public class Connection {
|
|||||||
condition.broadcast()
|
condition.broadcast()
|
||||||
}
|
}
|
||||||
|
|
||||||
case 2:
|
case MessageType.notification.rawValue:
|
||||||
// notification
|
// notification
|
||||||
guard let method = array[1].stringValue else {
|
guard let method = array[1].stringValue else {
|
||||||
return
|
return
|
||||||
|
@ -10,13 +10,13 @@
|
|||||||
@required
|
@required
|
||||||
|
|
||||||
@property CFTimeInterval timeout;
|
@property CFTimeInterval timeout;
|
||||||
@property (nonatomic, copy, nullable) void (^dataCallback)(NSData * __nonnull);
|
@property (nonatomic, copy, nullable) void (^dataCallback)(NSData * _Nonnull);
|
||||||
|
|
||||||
@property (readonly, getter=isRunning) bool running;
|
@property (readonly, getter=isRunning) bool running;
|
||||||
|
|
||||||
- (void)connectAndRun;
|
- (NSError * _Nullable)connectAndRun;
|
||||||
- (void)disconnectAndStop;
|
- (void)disconnectAndStop;
|
||||||
- (CFSocketError)writeData:(NSData * __nonnull)data;
|
- (CFSocketError)writeData:(NSData * _Nonnull)data;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@ -24,12 +24,12 @@
|
|||||||
|
|
||||||
@property CFTimeInterval timeout;
|
@property CFTimeInterval timeout;
|
||||||
@property (nonatomic, nonnull) CFSocketRef socket;
|
@property (nonatomic, nonnull) CFSocketRef socket;
|
||||||
@property (nonatomic, copy, nullable) void (^dataCallback)(NSData * __nonnull);
|
@property (nonatomic, copy, nullable) void (^dataCallback)(NSData * _Nonnull);
|
||||||
|
|
||||||
- (instancetype __nullable)initWithPath:(NSString * __nonnull)path;
|
- (instancetype _Nullable)initWithPath:(NSString * _Nonnull)path;
|
||||||
|
|
||||||
- (void)connectAndRun;
|
- (NSError * _Nullable)connectAndRun;
|
||||||
- (void)disconnectAndStop;
|
- (void)disconnectAndStop;
|
||||||
- (CFSocketError)writeData:(NSData * __nonnull)data;
|
- (CFSocketError)writeData:(NSData * _Nonnull)data;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@ -85,10 +85,12 @@ static void socket_call_back(
|
|||||||
close(_native_socket);
|
close(_native_socket);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)connectAndRun {
|
- (NSError *)connectAndRun {
|
||||||
if ((_native_socket = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {
|
if ((_native_socket = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {
|
||||||
NSLog(@"Error: Unix domain socket NULL!");
|
NSLog(@"Error: Unix domain socket NULL!");
|
||||||
[NSException raise:@"UnixDomainSocketConnectionException" format:@"Unix domain socket NULL!"];
|
return [NSError errorWithDomain:NSPOSIXErrorDomain code:-1 userInfo:@{
|
||||||
|
NSLocalizedDescriptionKey: @"Could not create unix domain socket.",
|
||||||
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
_sockaddr.sun_family = AF_UNIX;
|
_sockaddr.sun_family = AF_UNIX;
|
||||||
@ -96,7 +98,9 @@ static void socket_call_back(
|
|||||||
if (connect(_native_socket, (struct sockaddr *) &_sockaddr, (socklen_t) SUN_LEN(&_sockaddr)) == -1) {
|
if (connect(_native_socket, (struct sockaddr *) &_sockaddr, (socklen_t) SUN_LEN(&_sockaddr)) == -1) {
|
||||||
NSLog(@"Error: Could not connect to the socket!");
|
NSLog(@"Error: Could not connect to the socket!");
|
||||||
close(_native_socket);
|
close(_native_socket);
|
||||||
[NSException raise:@"UnixDomainSocketConnectionException" format:@"Could not connect to socket!"];
|
return [NSError errorWithDomain:NSPOSIXErrorDomain code:-1 userInfo:@{
|
||||||
|
NSLocalizedDescriptionKey: [NSString stringWithFormat:@"Could not connect to socket %s", _sockaddr.sun_path]
|
||||||
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
CFSocketContext context;
|
CFSocketContext context;
|
||||||
@ -117,16 +121,20 @@ static void socket_call_back(
|
|||||||
if (_socket == nil) {
|
if (_socket == nil) {
|
||||||
NSLog(@"Error: CFSocket is NULL!");
|
NSLog(@"Error: CFSocket is NULL!");
|
||||||
close(_native_socket);
|
close(_native_socket);
|
||||||
[NSException raise:@"UnixDomainSocketConnectionException" format:@"CFSocket is NULL!"];
|
return [NSError errorWithDomain:NSPOSIXErrorDomain code:-1 userInfo:@{
|
||||||
|
NSLocalizedDescriptionKey: [NSString stringWithFormat:@"CFSocket is NULL for %s", _sockaddr.sun_path]
|
||||||
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
_run_loop_source = CFSocketCreateRunLoopSource(NULL, _socket, 0);
|
_run_loop_source = CFSocketCreateRunLoopSource(NULL, _socket, 0);
|
||||||
_thread = [[NSThread alloc] initWithTarget:self selector:@selector(threadMain) object:nil];
|
_thread = [[NSThread alloc] initWithTarget:self selector:@selector(threadMain) object:nil];
|
||||||
[_thread start];
|
[_thread start];
|
||||||
|
|
||||||
|
return nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)disconnectAndStop {
|
- (void)disconnectAndStop {
|
||||||
if (CFSocketIsValid(_socket)) {
|
if (_socket != NULL && CFSocketIsValid(_socket)) {
|
||||||
CFRunLoopStop(_run_loop);
|
CFRunLoopStop(_run_loop);
|
||||||
CFSocketInvalidate(_socket);
|
CFSocketInvalidate(_socket);
|
||||||
[_thread cancel];
|
[_thread cancel];
|
||||||
@ -140,8 +148,8 @@ static void socket_call_back(
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (CFSocketError)writeData:(NSData *)data {
|
- (CFSocketError)writeData:(NSData *)data {
|
||||||
if (!CFSocketIsValid(_socket)) {
|
if (_socket == NULL || !CFSocketIsValid(_socket)) {
|
||||||
NSLog(@"Socket invalid, but trying to send %@", data);
|
NSLog(@"Socket NULL or invalid, but trying to send %@", data);
|
||||||
return kCFSocketError;
|
return kCFSocketError;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -218,7 +218,7 @@
|
|||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
CODE_SIGN_IDENTITY = "-";
|
CODE_SIGN_IDENTITY = "-";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
CURRENT_PROJECT_VERSION = 248;
|
CURRENT_PROJECT_VERSION = 249;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
ENABLE_TESTABILITY = YES;
|
ENABLE_TESTABILITY = YES;
|
||||||
@ -278,7 +278,7 @@
|
|||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
CODE_SIGN_IDENTITY = "-";
|
CODE_SIGN_IDENTITY = "-";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
CURRENT_PROJECT_VERSION = 248;
|
CURRENT_PROJECT_VERSION = 249;
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
ENABLE_NS_ASSERTIONS = NO;
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
@ -308,7 +308,7 @@
|
|||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
DEFINES_MODULE = YES;
|
DEFINES_MODULE = YES;
|
||||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
DYLIB_CURRENT_VERSION = 248;
|
DYLIB_CURRENT_VERSION = 249;
|
||||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
FRAMEWORK_VERSION = A;
|
FRAMEWORK_VERSION = A;
|
||||||
INFOPLIST_FILE = NvimMsgPack/Info.plist;
|
INFOPLIST_FILE = NvimMsgPack/Info.plist;
|
||||||
@ -331,7 +331,7 @@
|
|||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
DEFINES_MODULE = YES;
|
DEFINES_MODULE = YES;
|
||||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
DYLIB_CURRENT_VERSION = 248;
|
DYLIB_CURRENT_VERSION = 249;
|
||||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
FRAMEWORK_VERSION = A;
|
FRAMEWORK_VERSION = A;
|
||||||
INFOPLIST_FILE = NvimMsgPack/Info.plist;
|
INFOPLIST_FILE = NvimMsgPack/Info.plist;
|
||||||
|
@ -15,9 +15,9 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>FMWK</string>
|
<string>FMWK</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>SNAPSHOT-248</string>
|
<string>SNAPSHOT-249</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>248</string>
|
<string>249</string>
|
||||||
<key>NSHumanReadableCopyright</key>
|
<key>NSHumanReadableCopyright</key>
|
||||||
<string>Copyright © 2017 Tae Won Ha. All rights reserved.</string>
|
<string>Copyright © 2017 Tae Won Ha. All rights reserved.</string>
|
||||||
<key>NSPrincipalClass</key>
|
<key>NSPrincipalClass</key>
|
||||||
|
@ -151,8 +151,8 @@ public class NvimApi {
|
|||||||
self.connection = connection
|
self.connection = connection
|
||||||
}
|
}
|
||||||
|
|
||||||
public func run() {
|
public func run() throws {
|
||||||
self.connection.run()
|
try self.connection.run()
|
||||||
}
|
}
|
||||||
|
|
||||||
public func stop() {
|
public func stop() {
|
||||||
@ -206,8 +206,8 @@ public class NvimApi {
|
|||||||
self.session = session
|
self.session = session
|
||||||
}
|
}
|
||||||
|
|
||||||
public func connect() {
|
public func connect() throws {
|
||||||
self.session.run()
|
try self.session.run()
|
||||||
}
|
}
|
||||||
|
|
||||||
public func disconnect() {
|
public func disconnect() {
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
4B90F0341FD2AFAE008A39E0 /* CocoaExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F0161FD2AFAC008A39E0 /* CocoaExtensions.swift */; };
|
4B90F0341FD2AFAE008A39E0 /* CocoaExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F0161FD2AFAC008A39E0 /* CocoaExtensions.swift */; };
|
||||||
4B90F0351FD2AFAE008A39E0 /* NvimView+Mouse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F0171FD2AFAC008A39E0 /* NvimView+Mouse.swift */; };
|
4B90F0351FD2AFAE008A39E0 /* NvimView+Mouse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F0171FD2AFAC008A39E0 /* NvimView+Mouse.swift */; };
|
||||||
4B90F0361FD2AFAE008A39E0 /* NvimViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F0181FD2AFAC008A39E0 /* NvimViewDelegate.swift */; };
|
4B90F0361FD2AFAE008A39E0 /* NvimViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F0181FD2AFAC008A39E0 /* NvimViewDelegate.swift */; };
|
||||||
4B90F0371FD2AFAE008A39E0 /* NvimAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B90F0191FD2AFAC008A39E0 /* NvimAgent.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
4B90F0371FD2AFAE008A39E0 /* UiClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B90F0191FD2AFAC008A39E0 /* UiClient.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
4B90F0381FD2AFAE008A39E0 /* ColorUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F01A1FD2AFAC008A39E0 /* ColorUtils.swift */; };
|
4B90F0381FD2AFAE008A39E0 /* ColorUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F01A1FD2AFAC008A39E0 /* ColorUtils.swift */; };
|
||||||
4B90F0391FD2AFAE008A39E0 /* NvimView+Api.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F01B1FD2AFAC008A39E0 /* NvimView+Api.swift */; };
|
4B90F0391FD2AFAE008A39E0 /* NvimView+Api.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F01B1FD2AFAC008A39E0 /* NvimView+Api.swift */; };
|
||||||
4B90F03A1FD2AFAE008A39E0 /* NvimView+Key.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F01C1FD2AFAC008A39E0 /* NvimView+Key.swift */; };
|
4B90F03A1FD2AFAE008A39E0 /* NvimView+Key.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F01C1FD2AFAC008A39E0 /* NvimView+Key.swift */; };
|
||||||
@ -37,7 +37,7 @@
|
|||||||
4B90F0461FD2AFAE008A39E0 /* Grid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F0281FD2AFAD008A39E0 /* Grid.swift */; };
|
4B90F0461FD2AFAE008A39E0 /* Grid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F0281FD2AFAD008A39E0 /* Grid.swift */; };
|
||||||
4B90F0481FD2AFAE008A39E0 /* NvimUiBridgeProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F02A1FD2AFAD008A39E0 /* NvimUiBridgeProtocol.m */; };
|
4B90F0481FD2AFAE008A39E0 /* NvimUiBridgeProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F02A1FD2AFAD008A39E0 /* NvimUiBridgeProtocol.m */; };
|
||||||
4B90F0491FD2AFAE008A39E0 /* CellAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F02B1FD2AFAD008A39E0 /* CellAttributes.swift */; };
|
4B90F0491FD2AFAE008A39E0 /* CellAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F02B1FD2AFAD008A39E0 /* CellAttributes.swift */; };
|
||||||
4B90F04A1FD2AFAE008A39E0 /* NvimAgent.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F02C1FD2AFAE008A39E0 /* NvimAgent.m */; };
|
4B90F04A1FD2AFAE008A39E0 /* UiClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F02C1FD2AFAE008A39E0 /* UiClient.m */; };
|
||||||
4B90F0521FD2AFD3008A39E0 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F0511FD2AFD3008A39E0 /* main.m */; };
|
4B90F0521FD2AFD3008A39E0 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F0511FD2AFD3008A39E0 /* main.m */; };
|
||||||
4B90F0661FD2AFF7008A39E0 /* server_ui.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F0561FD2AFF7008A39E0 /* server_ui.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
4B90F0661FD2AFF7008A39E0 /* server_ui.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F0561FD2AFF7008A39E0 /* server_ui.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
||||||
4B90F0681FD2AFF7008A39E0 /* CocoaCategories.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F05A1FD2AFF7008A39E0 /* CocoaCategories.m */; };
|
4B90F0681FD2AFF7008A39E0 /* CocoaCategories.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B90F05A1FD2AFF7008A39E0 /* CocoaCategories.m */; };
|
||||||
@ -110,7 +110,7 @@
|
|||||||
4B90F0161FD2AFAC008A39E0 /* CocoaExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CocoaExtensions.swift; sourceTree = "<group>"; };
|
4B90F0161FD2AFAC008A39E0 /* CocoaExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CocoaExtensions.swift; sourceTree = "<group>"; };
|
||||||
4B90F0171FD2AFAC008A39E0 /* NvimView+Mouse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NvimView+Mouse.swift"; sourceTree = "<group>"; };
|
4B90F0171FD2AFAC008A39E0 /* NvimView+Mouse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NvimView+Mouse.swift"; sourceTree = "<group>"; };
|
||||||
4B90F0181FD2AFAC008A39E0 /* NvimViewDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NvimViewDelegate.swift; sourceTree = "<group>"; };
|
4B90F0181FD2AFAC008A39E0 /* NvimViewDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NvimViewDelegate.swift; sourceTree = "<group>"; };
|
||||||
4B90F0191FD2AFAC008A39E0 /* NvimAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NvimAgent.h; sourceTree = "<group>"; };
|
4B90F0191FD2AFAC008A39E0 /* UiClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UiClient.h; sourceTree = "<group>"; };
|
||||||
4B90F01A1FD2AFAC008A39E0 /* ColorUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorUtils.swift; sourceTree = "<group>"; };
|
4B90F01A1FD2AFAC008A39E0 /* ColorUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorUtils.swift; sourceTree = "<group>"; };
|
||||||
4B90F01B1FD2AFAC008A39E0 /* NvimView+Api.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NvimView+Api.swift"; sourceTree = "<group>"; };
|
4B90F01B1FD2AFAC008A39E0 /* NvimView+Api.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NvimView+Api.swift"; sourceTree = "<group>"; };
|
||||||
4B90F01C1FD2AFAC008A39E0 /* NvimView+Key.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NvimView+Key.swift"; sourceTree = "<group>"; };
|
4B90F01C1FD2AFAC008A39E0 /* NvimView+Key.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NvimView+Key.swift"; sourceTree = "<group>"; };
|
||||||
@ -128,7 +128,7 @@
|
|||||||
4B90F0281FD2AFAD008A39E0 /* Grid.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Grid.swift; sourceTree = "<group>"; };
|
4B90F0281FD2AFAD008A39E0 /* Grid.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Grid.swift; sourceTree = "<group>"; };
|
||||||
4B90F02A1FD2AFAD008A39E0 /* NvimUiBridgeProtocol.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NvimUiBridgeProtocol.m; sourceTree = "<group>"; };
|
4B90F02A1FD2AFAD008A39E0 /* NvimUiBridgeProtocol.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NvimUiBridgeProtocol.m; sourceTree = "<group>"; };
|
||||||
4B90F02B1FD2AFAD008A39E0 /* CellAttributes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CellAttributes.swift; sourceTree = "<group>"; };
|
4B90F02B1FD2AFAD008A39E0 /* CellAttributes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CellAttributes.swift; sourceTree = "<group>"; };
|
||||||
4B90F02C1FD2AFAE008A39E0 /* NvimAgent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NvimAgent.m; sourceTree = "<group>"; };
|
4B90F02C1FD2AFAE008A39E0 /* UiClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UiClient.m; sourceTree = "<group>"; };
|
||||||
4B90F04F1FD2AFD3008A39E0 /* NvimServer */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = NvimServer; sourceTree = BUILT_PRODUCTS_DIR; };
|
4B90F04F1FD2AFD3008A39E0 /* NvimServer */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = NvimServer; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
4B90F0511FD2AFD3008A39E0 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
4B90F0511FD2AFD3008A39E0 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||||
4B90F0561FD2AFF7008A39E0 /* server_ui.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = server_ui.m; sourceTree = "<group>"; };
|
4B90F0561FD2AFF7008A39E0 /* server_ui.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = server_ui.m; sourceTree = "<group>"; };
|
||||||
@ -208,8 +208,8 @@
|
|||||||
4B90F0271FD2AFAD008A39E0 /* Logger.swift */,
|
4B90F0271FD2AFAD008A39E0 /* Logger.swift */,
|
||||||
4B90F0261FD2AFAD008A39E0 /* MMCoreTextView.h */,
|
4B90F0261FD2AFAD008A39E0 /* MMCoreTextView.h */,
|
||||||
4B90F0201FD2AFAD008A39E0 /* MMCoreTextView.m */,
|
4B90F0201FD2AFAD008A39E0 /* MMCoreTextView.m */,
|
||||||
4B90F0191FD2AFAC008A39E0 /* NvimAgent.h */,
|
4B90F0191FD2AFAC008A39E0 /* UiClient.h */,
|
||||||
4B90F02C1FD2AFAE008A39E0 /* NvimAgent.m */,
|
4B90F02C1FD2AFAE008A39E0 /* UiClient.m */,
|
||||||
4B2016ED1FD45EED0038528A /* NvimAutoCommandEvent.generated.h */,
|
4B2016ED1FD45EED0038528A /* NvimAutoCommandEvent.generated.h */,
|
||||||
4B2016EC1FD45EED0038528A /* NvimAutoCommandEvent.generated.m */,
|
4B2016EC1FD45EED0038528A /* NvimAutoCommandEvent.generated.m */,
|
||||||
4B90F01D1FD2AFAC008A39E0 /* NvimObjectsExtensions.swift */,
|
4B90F01D1FD2AFAC008A39E0 /* NvimObjectsExtensions.swift */,
|
||||||
@ -270,7 +270,7 @@
|
|||||||
files = (
|
files = (
|
||||||
4BF18C5D1FD2EEE400DF95D1 /* NvimView.h in Headers */,
|
4BF18C5D1FD2EEE400DF95D1 /* NvimView.h in Headers */,
|
||||||
4B90F0411FD2AFAE008A39E0 /* TextDrawer.h in Headers */,
|
4B90F0411FD2AFAE008A39E0 /* TextDrawer.h in Headers */,
|
||||||
4B90F0371FD2AFAE008A39E0 /* NvimAgent.h in Headers */,
|
4B90F0371FD2AFAE008A39E0 /* UiClient.h in Headers */,
|
||||||
4B90F02D1FD2AFAE008A39E0 /* NvimUiBridgeProtocol.h in Headers */,
|
4B90F02D1FD2AFAE008A39E0 /* NvimUiBridgeProtocol.h in Headers */,
|
||||||
4B2016EF1FD45EED0038528A /* NvimAutoCommandEvent.generated.h in Headers */,
|
4B2016EF1FD45EED0038528A /* NvimAutoCommandEvent.generated.h in Headers */,
|
||||||
4B90F0441FD2AFAE008A39E0 /* MMCoreTextView.h in Headers */,
|
4B90F0441FD2AFAE008A39E0 /* MMCoreTextView.h in Headers */,
|
||||||
@ -416,7 +416,7 @@
|
|||||||
4B90F03C1FD2AFAE008A39E0 /* NvimView+TouchBar.swift in Sources */,
|
4B90F03C1FD2AFAE008A39E0 /* NvimView+TouchBar.swift in Sources */,
|
||||||
4B2016EE1FD45EED0038528A /* NvimAutoCommandEvent.generated.m in Sources */,
|
4B2016EE1FD45EED0038528A /* NvimAutoCommandEvent.generated.m in Sources */,
|
||||||
4B90F03B1FD2AFAE008A39E0 /* NvimObjectsExtensions.swift in Sources */,
|
4B90F03B1FD2AFAE008A39E0 /* NvimObjectsExtensions.swift in Sources */,
|
||||||
4B90F04A1FD2AFAE008A39E0 /* NvimAgent.m in Sources */,
|
4B90F04A1FD2AFAE008A39E0 /* UiClient.m in Sources */,
|
||||||
4B90F0351FD2AFAE008A39E0 /* NvimView+Mouse.swift in Sources */,
|
4B90F0351FD2AFAE008A39E0 /* NvimView+Mouse.swift in Sources */,
|
||||||
4B90F0431FD2AFAE008A39E0 /* NvimView+MenuItems.swift in Sources */,
|
4B90F0431FD2AFAE008A39E0 /* NvimView+MenuItems.swift in Sources */,
|
||||||
4B90F0391FD2AFAE008A39E0 /* NvimView+Api.swift in Sources */,
|
4B90F0391FD2AFAE008A39E0 /* NvimView+Api.swift in Sources */,
|
||||||
@ -484,7 +484,7 @@
|
|||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
CURRENT_PROJECT_VERSION = 248;
|
CURRENT_PROJECT_VERSION = 249;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
ENABLE_TESTABILITY = YES;
|
ENABLE_TESTABILITY = YES;
|
||||||
@ -542,7 +542,7 @@
|
|||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
CURRENT_PROJECT_VERSION = 248;
|
CURRENT_PROJECT_VERSION = 249;
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
ENABLE_NS_ASSERTIONS = NO;
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
@ -569,7 +569,7 @@
|
|||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
DEFINES_MODULE = YES;
|
DEFINES_MODULE = YES;
|
||||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
DYLIB_CURRENT_VERSION = 248;
|
DYLIB_CURRENT_VERSION = 249;
|
||||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../Carthage/Build/Mac";
|
FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../Carthage/Build/Mac";
|
||||||
FRAMEWORK_VERSION = A;
|
FRAMEWORK_VERSION = A;
|
||||||
@ -591,7 +591,7 @@
|
|||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
DEFINES_MODULE = YES;
|
DEFINES_MODULE = YES;
|
||||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
DYLIB_CURRENT_VERSION = 248;
|
DYLIB_CURRENT_VERSION = 249;
|
||||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../Carthage/Build/Mac";
|
FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../Carthage/Build/Mac";
|
||||||
FRAMEWORK_VERSION = A;
|
FRAMEWORK_VERSION = A;
|
||||||
|
@ -15,9 +15,9 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>FMWK</string>
|
<string>FMWK</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>SNAPSHOT-248</string>
|
<string>SNAPSHOT-249</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>248</string>
|
<string>249</string>
|
||||||
<key>NSHumanReadableCopyright</key>
|
<key>NSHumanReadableCopyright</key>
|
||||||
<string>Copyright © 2017 Tae Won Ha. All rights reserved.</string>
|
<string>Copyright © 2017 Tae Won Ha. All rights reserved.</string>
|
||||||
<key>NSPrincipalClass</key>
|
<key>NSPrincipalClass</key>
|
||||||
|
@ -51,7 +51,7 @@ extension NvimView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public func newTab() {
|
public func newTab() {
|
||||||
self.exec(command: "tabe")
|
self.nvim.command(command: "tabe", expectsReturnValue: false)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func `open`(urls: [URL]) {
|
public func `open`(urls: [URL]) {
|
||||||
@ -101,41 +101,35 @@ extension NvimView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.nvim.command(command: "tab sb \(buffer.handle)")
|
self.nvim.command(command: "tab sb \(buffer.handle)", expectsReturnValue: false)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Closes the current window.
|
/// Closes the current window.
|
||||||
public func closeCurrentTab() {
|
public func closeCurrentTab() {
|
||||||
// We don't have to wait here even when neovim quits since we wait in gui.async() block in neoVimStopped().
|
// We don't have to wait here even when neovim quits since we wait in gui.async() block in neoVimStopped().
|
||||||
self.exec(command: "q")
|
self.nvim.command(command: "q", expectsReturnValue: false)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func saveCurrentTab() {
|
public func saveCurrentTab() {
|
||||||
self.exec(command: "w")
|
self.nvim.command(command: "w", expectsReturnValue: false)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func saveCurrentTab(url: URL) {
|
public func saveCurrentTab(url: URL) {
|
||||||
let path = url.path
|
self.nvim.command(command: "w \(url.path)", expectsReturnValue: false)
|
||||||
guard let escapedFileName = self.agent.escapedFileName(path) else {
|
|
||||||
self.logger.fault("Escaped file name returned nil.")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
self.exec(command: "w \(escapedFileName)")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public func closeCurrentTabWithoutSaving() {
|
public func closeCurrentTabWithoutSaving() {
|
||||||
self.exec(command: "q!")
|
self.nvim.command(command: "q!", expectsReturnValue: false)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func quitNeoVimWithoutSaving() {
|
public func quitNeoVimWithoutSaving() {
|
||||||
self.exec(command: "qa!")
|
self.nvim.command(command: "qa!", expectsReturnValue: false)
|
||||||
self.delegate?.neoVimStopped()
|
self.delegate?.neoVimStopped()
|
||||||
self.waitForNeoVimToQuit()
|
self.waitForNeoVimToQuit()
|
||||||
}
|
}
|
||||||
|
|
||||||
public func vimOutput(of command: String) -> String {
|
public func vimOutput(of command: String) -> String {
|
||||||
return self.nvim.commandOutput(str: command) ?? ""
|
return self.nvim.commandOutput(str: command).value ?? ""
|
||||||
}
|
}
|
||||||
|
|
||||||
public func cursorGo(to position: Position) {
|
public func cursorGo(to position: Position) {
|
||||||
@ -147,45 +141,22 @@ extension NvimView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public func didBecomeMain() {
|
public func didBecomeMain() {
|
||||||
self.agent.focusGained(true)
|
self.uiClient.focusGained(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func didResignMain() {
|
public func didResignMain() {
|
||||||
self.agent.focusGained(false)
|
self.uiClient.focusGained(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
func waitForNeoVimToQuit() {
|
func waitForNeoVimToQuit() {
|
||||||
self.agent.neoVimQuitCondition.lock()
|
self.uiClient.neoVimQuitCondition.lock()
|
||||||
defer { self.agent.neoVimQuitCondition.unlock() }
|
defer { self.uiClient.neoVimQuitCondition.unlock() }
|
||||||
while self.agent.neoVimHasQuit == false
|
while self.uiClient.neoVimHasQuit == false
|
||||||
&& self.agent.neoVimQuitCondition.wait(until: Date(timeIntervalSinceNow: neoVimQuitTimeout)) {}
|
&& self.uiClient.neoVimQuitCondition.wait(until: Date(timeIntervalSinceNow: neoVimQuitTimeout)) {}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Does the following
|
|
||||||
- normal mode: `:command<CR>`
|
|
||||||
- else: `:<Esc>:command<CR>`
|
|
||||||
|
|
||||||
We don't use NvimAgent.vimCommand because if we do for example "e /some/file"
|
|
||||||
and its swap file already exists, then NeoVimServer spins and become unresponsive.
|
|
||||||
*/
|
|
||||||
private func exec(command cmd: String) {
|
|
||||||
switch self.mode {
|
|
||||||
case .normal:
|
|
||||||
self.agent.vimInput(":\(cmd)<CR>")
|
|
||||||
default:
|
|
||||||
self.agent.vimInput("<Esc>:\(cmd)<CR>")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private func `open`(_ url: URL, cmd: String) {
|
private func `open`(_ url: URL, cmd: String) {
|
||||||
let path = url.path
|
self.nvim.command(command: "\(cmd) \(url.path)", expectsReturnValue: false)
|
||||||
guard let escapedFileName = self.agent.escapedFileName(path) else {
|
|
||||||
self.logger.fault("Escaped file name returned nil.")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
self.exec(command: "\(cmd) \(escapedFileName)")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private func neoVimBuffer(for buf: NvimApi.Buffer, currentBuffer: NvimApi.Buffer?) -> NvimView.Buffer? {
|
private func neoVimBuffer(for buf: NvimApi.Buffer, currentBuffer: NvimApi.Buffer?) -> NvimView.Buffer? {
|
||||||
|
@ -38,7 +38,7 @@ extension NvimView {
|
|||||||
? self.wrapNamedKeys(flags + namedChars)
|
? self.wrapNamedKeys(flags + namedChars)
|
||||||
: self.vimPlainString(chars)
|
: self.vimPlainString(chars)
|
||||||
|
|
||||||
self.agent.vimInput(finalInput)
|
self.uiClient.vimInput(finalInput)
|
||||||
self.keyDownDone = true
|
self.keyDownDone = true
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,9 +47,9 @@ extension NvimView {
|
|||||||
|
|
||||||
switch aString {
|
switch aString {
|
||||||
case let string as String:
|
case let string as String:
|
||||||
self.agent.vimInput(self.vimPlainString(string))
|
self.uiClient.vimInput(self.vimPlainString(string))
|
||||||
case let attributedString as NSAttributedString:
|
case let attributedString as NSAttributedString:
|
||||||
self.agent.vimInput(self.vimPlainString(attributedString.string))
|
self.uiClient.vimInput(self.vimPlainString(attributedString.string))
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -98,7 +98,7 @@ extension NvimView {
|
|||||||
// Control code \0 causes rpc parsing problems.
|
// Control code \0 causes rpc parsing problems.
|
||||||
// So we escape as early as possible
|
// So we escape as early as possible
|
||||||
if chars == "\0" {
|
if chars == "\0" {
|
||||||
self.agent.vimInput(self.wrapNamedKeys("Nul"))
|
self.uiClient.vimInput(self.wrapNamedKeys("Nul"))
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -106,12 +106,12 @@ extension NvimView {
|
|||||||
// See special cases in vim/os_win32.c from vim sources
|
// See special cases in vim/os_win32.c from vim sources
|
||||||
// Also mentioned in MacVim's KeyBindings.plist
|
// Also mentioned in MacVim's KeyBindings.plist
|
||||||
if .control == flags && chars == "6" {
|
if .control == flags && chars == "6" {
|
||||||
self.agent.vimInput("\u{1e}") // AKA ^^
|
self.uiClient.vimInput("\u{1e}") // AKA ^^
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if .control == flags && chars == "2" {
|
if .control == flags && chars == "2" {
|
||||||
// <C-2> should generate \0, escaping as above
|
// <C-2> should generate \0, escaping as above
|
||||||
self.agent.vimInput(self.wrapNamedKeys("Nul"))
|
self.uiClient.vimInput(self.wrapNamedKeys("Nul"))
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
// NsEvent already sets \u{1f} for <C--> && <C-_>
|
// NsEvent already sets \u{1f} for <C--> && <C-_>
|
||||||
@ -126,7 +126,7 @@ extension NvimView {
|
|||||||
|
|
||||||
// eg 하 -> hanja popup, cf comment for self.lastMarkedText
|
// eg 하 -> hanja popup, cf comment for self.lastMarkedText
|
||||||
if replacementRange.length > 0 {
|
if replacementRange.length > 0 {
|
||||||
self.agent.deleteCharacters(replacementRange.length)
|
self.uiClient.deleteCharacters(replacementRange.length)
|
||||||
}
|
}
|
||||||
|
|
||||||
switch aString {
|
switch aString {
|
||||||
@ -140,7 +140,7 @@ extension NvimView {
|
|||||||
|
|
||||||
// self.logger.debug("\(#function): \(self.markedText), \(selectedRange), \(replacementRange)")
|
// self.logger.debug("\(#function): \(self.markedText), \(selectedRange), \(replacementRange)")
|
||||||
|
|
||||||
self.agent.vimInputMarkedText(self.markedText!)
|
self.uiClient.vimInputMarkedText(self.markedText!)
|
||||||
self.keyDownDone = true
|
self.keyDownDone = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,9 +48,9 @@ extension NvimView {
|
|||||||
@IBAction func undo(_ sender: AnyObject?) {
|
@IBAction func undo(_ sender: AnyObject?) {
|
||||||
switch self.mode {
|
switch self.mode {
|
||||||
case .insert, .replace:
|
case .insert, .replace:
|
||||||
self.agent.vimInput("<Esc>ui")
|
self.uiClient.vimInput("<Esc>ui")
|
||||||
case .normal, .visual:
|
case .normal, .visual:
|
||||||
self.agent.vimInput("u")
|
self.uiClient.vimInput("u")
|
||||||
default:
|
default:
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -59,9 +59,9 @@ extension NvimView {
|
|||||||
@IBAction func redo(_ sender: AnyObject?) {
|
@IBAction func redo(_ sender: AnyObject?) {
|
||||||
switch self.mode {
|
switch self.mode {
|
||||||
case .insert, .replace:
|
case .insert, .replace:
|
||||||
self.agent.vimInput("<Esc><C-r>i")
|
self.uiClient.vimInput("<Esc><C-r>i")
|
||||||
case .normal, .visual:
|
case .normal, .visual:
|
||||||
self.agent.vimInput("<C-r>")
|
self.uiClient.vimInput("<C-r>")
|
||||||
default:
|
default:
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -70,7 +70,7 @@ extension NvimView {
|
|||||||
@IBAction func cut(_ sender: AnyObject?) {
|
@IBAction func cut(_ sender: AnyObject?) {
|
||||||
switch self.mode {
|
switch self.mode {
|
||||||
case .visual, .normal:
|
case .visual, .normal:
|
||||||
self.agent.vimInput("\"+d")
|
self.uiClient.vimInput("\"+d")
|
||||||
default:
|
default:
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -79,7 +79,7 @@ extension NvimView {
|
|||||||
@IBAction func copy(_ sender: AnyObject?) {
|
@IBAction func copy(_ sender: AnyObject?) {
|
||||||
switch self.mode {
|
switch self.mode {
|
||||||
case .visual, .normal:
|
case .visual, .normal:
|
||||||
self.agent.vimInput("\"+y")
|
self.uiClient.vimInput("\"+y")
|
||||||
default:
|
default:
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -93,7 +93,7 @@ extension NvimView {
|
|||||||
if self.mode == .cmdline || self.mode == .cmdlineInsert || self.mode == .cmdlineReplace
|
if self.mode == .cmdline || self.mode == .cmdlineInsert || self.mode == .cmdlineReplace
|
||||||
|| self.mode == .replace
|
|| self.mode == .replace
|
||||||
|| self.mode == .termFocus {
|
|| self.mode == .termFocus {
|
||||||
self.agent.vimInput(self.vimPlainString(content))
|
self.uiClient.vimInput(self.vimPlainString(content))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -113,9 +113,9 @@ extension NvimView {
|
|||||||
|
|
||||||
switch self.mode {
|
switch self.mode {
|
||||||
case .insert:
|
case .insert:
|
||||||
self.agent.vimInput("<ESC>\"+pa")
|
self.uiClient.vimInput("<ESC>\"+pa")
|
||||||
case .normal, .visual:
|
case .normal, .visual:
|
||||||
self.agent.vimInput("\"+p")
|
self.uiClient.vimInput("\"+p")
|
||||||
default:
|
default:
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -128,7 +128,7 @@ extension NvimView {
|
|||||||
@IBAction func delete(_ sender: AnyObject?) {
|
@IBAction func delete(_ sender: AnyObject?) {
|
||||||
switch self.mode {
|
switch self.mode {
|
||||||
case .normal, .visual:
|
case .normal, .visual:
|
||||||
self.agent.vimInput("x")
|
self.uiClient.vimInput("x")
|
||||||
default:
|
default:
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -137,9 +137,9 @@ extension NvimView {
|
|||||||
@IBAction public override func selectAll(_ sender: Any?) {
|
@IBAction public override func selectAll(_ sender: Any?) {
|
||||||
switch self.mode {
|
switch self.mode {
|
||||||
case .insert, .visual:
|
case .insert, .visual:
|
||||||
self.agent.vimInput("<Esc>ggVG")
|
self.uiClient.vimInput("<Esc>ggVG")
|
||||||
default:
|
default:
|
||||||
self.agent.vimInput("ggVG")
|
self.uiClient.vimInput("ggVG")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,15 +32,15 @@ extension NvimView {
|
|||||||
let (vimInputX, vimInputY) = self.vimScrollInputFor(deltaX: deltaX, deltaY: deltaY,
|
let (vimInputX, vimInputY) = self.vimScrollInputFor(deltaX: deltaX, deltaY: deltaY,
|
||||||
modifierFlags: event.modifierFlags,
|
modifierFlags: event.modifierFlags,
|
||||||
cellPosition: cellPosition)
|
cellPosition: cellPosition)
|
||||||
self.agent.vimInput(vimInputX)
|
self.uiClient.vimInput(vimInputX)
|
||||||
self.agent.vimInput(vimInputY)
|
self.uiClient.vimInput(vimInputY)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
let (absDeltaX, absDeltaY) = (min(Int(ceil(abs(deltaX) / 5.0)), maxScrollDeltaX),
|
let (absDeltaX, absDeltaY) = (min(Int(ceil(abs(deltaX) / 5.0)), maxScrollDeltaX),
|
||||||
min(Int(ceil(abs(deltaY) / 5.0)), maxScrollDeltaY))
|
min(Int(ceil(abs(deltaY) / 5.0)), maxScrollDeltaY))
|
||||||
let (horizSign, vertSign) = (deltaX > 0 ? 1 : -1, deltaY > 0 ? 1 : -1)
|
let (horizSign, vertSign) = (deltaX > 0 ? 1 : -1, deltaY > 0 ? 1 : -1)
|
||||||
self.agent.scrollHorizontal(horizSign * absDeltaX, vertical: vertSign * absDeltaY, at: cellPosition)
|
self.uiClient.scrollHorizontal(horizSign * absDeltaX, vertical: vertSign * absDeltaY, at: cellPosition)
|
||||||
}
|
}
|
||||||
|
|
||||||
override public func magnify(with event: NSEvent) {
|
override public func magnify(with event: NSEvent) {
|
||||||
@ -97,7 +97,7 @@ extension NvimView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// self.logger.debug("\(#function): \(result)")
|
// self.logger.debug("\(#function): \(result)")
|
||||||
self.agent.vimInput(result)
|
self.uiClient.vimInput(result)
|
||||||
}
|
}
|
||||||
|
|
||||||
fileprivate func shouldFireVimInputFor(event: NSEvent, newCellPosition: Position) -> Bool {
|
fileprivate func shouldFireVimInputFor(event: NSEvent, newCellPosition: Position) -> Bool {
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import Cocoa
|
import Cocoa
|
||||||
|
import NvimMsgPack
|
||||||
|
|
||||||
extension NvimView {
|
extension NvimView {
|
||||||
|
|
||||||
@ -50,14 +51,21 @@ extension NvimView {
|
|||||||
self.xOffset = floor((size.width - self.cellSize.width * CGFloat(discreteSize.width)) / 2)
|
self.xOffset = floor((size.width - self.cellSize.width * CGFloat(discreteSize.width)) / 2)
|
||||||
self.yOffset = floor((size.height - self.cellSize.height * CGFloat(discreteSize.height)) / 2)
|
self.yOffset = floor((size.height - self.cellSize.height * CGFloat(discreteSize.height)) / 2)
|
||||||
|
|
||||||
self.agent.resize(toWidth: Int32(discreteSize.width), height: Int32(discreteSize.height))
|
self.uiClient.resize(toWidth: Int32(discreteSize.width), height: Int32(discreteSize.height))
|
||||||
}
|
}
|
||||||
|
|
||||||
fileprivate func launchNeoVim(_ size: Size) {
|
fileprivate func launchNeoVim(_ size: Size) {
|
||||||
self.logger.info("=== Starting neovim...")
|
self.logger.info("=== Starting neovim...")
|
||||||
let noErrorDuringInitialization = self.agent.runLocalServerAndNeoVim(withWidth: size.width, height: size.height)
|
let noErrorDuringInitialization = self.uiClient.runLocalServerAndNeoVim(withWidth: size.width, height: size.height)
|
||||||
|
|
||||||
self.nvim.connect()
|
do {
|
||||||
|
try self.nvim.connect()
|
||||||
|
} catch {
|
||||||
|
logger.fault("Could not connect to nvim: \(error)")
|
||||||
|
self.nvim.disconnect()
|
||||||
|
self.ipcBecameInvalid(String(describing: error))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if noErrorDuringInitialization == false {
|
if noErrorDuringInitialization == false {
|
||||||
self.logger.fault("There was an error launching neovim.")
|
self.logger.fault("There was an error launching neovim.")
|
||||||
|
@ -181,7 +181,7 @@ extension NvimView {
|
|||||||
public func stop() {
|
public func stop() {
|
||||||
self.bridgeLogger.hr()
|
self.bridgeLogger.hr()
|
||||||
self.nvim.disconnect()
|
self.nvim.disconnect()
|
||||||
self.agent.quit()
|
self.uiClient.quit()
|
||||||
|
|
||||||
gui.async {
|
gui.async {
|
||||||
self.waitForNeoVimToQuit()
|
self.waitForNeoVimToQuit()
|
||||||
@ -211,14 +211,15 @@ extension NvimView {
|
|||||||
gui.async {
|
gui.async {
|
||||||
self.bridgeLogger.debug(reason)
|
self.bridgeLogger.debug(reason)
|
||||||
|
|
||||||
if self.agent.neoVimIsQuitting || self.agent.neoVimHasQuit {
|
if self.uiClient.neoVimIsQuitting || self.uiClient.neoVimHasQuit {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
self.delegate?.ipcBecameInvalid(reason: reason)
|
self.delegate?.ipcBecameInvalid(reason: reason)
|
||||||
|
|
||||||
self.bridgeLogger.error("Force-closing due to IPC error.")
|
self.bridgeLogger.error("Force-closing due to IPC error.")
|
||||||
self.agent.forceQuit()
|
self.nvim.disconnect()
|
||||||
|
self.uiClient.forceQuit()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,5 +19,5 @@ FOUNDATION_EXPORT const unsigned char NvimViewVersionString[];
|
|||||||
#import <NvimView/NvimUiBridgeProtocol.h>
|
#import <NvimView/NvimUiBridgeProtocol.h>
|
||||||
// TODO: this header should not be public, but we cannot use a bridging header in a framework.
|
// TODO: this header should not be public, but we cannot use a bridging header in a framework.
|
||||||
#import <NvimView/TextDrawer.h>
|
#import <NvimView/TextDrawer.h>
|
||||||
#import <NvimView/NvimAgent.h>
|
#import <NvimView/UiClient.h>
|
||||||
#import <NvimView/NvimAutoCommandEvent.generated.h>
|
#import <NvimView/NvimAutoCommandEvent.generated.h>
|
||||||
|
@ -133,7 +133,7 @@ public class NvimView: NSView,
|
|||||||
|
|
||||||
set {
|
set {
|
||||||
let path = newValue.path
|
let path = newValue.path
|
||||||
guard let escapedCwd = self.agent.escapedFileName(path) else {
|
guard let escapedCwd = self.uiClient.escapedFileName(path) else {
|
||||||
// this happens when VimR is quitting with some main windows open...
|
// this happens when VimR is quitting with some main windows open...
|
||||||
self.logger.fault("Escaped file name returned nil.")
|
self.logger.fault("Escaped file name returned nil.")
|
||||||
return
|
return
|
||||||
@ -151,7 +151,7 @@ public class NvimView: NSView,
|
|||||||
|
|
||||||
public init(frame rect: NSRect, config: Config) {
|
public init(frame rect: NSRect, config: Config) {
|
||||||
self.drawer = TextDrawer(font: self._font)
|
self.drawer = TextDrawer(font: self._font)
|
||||||
self.agent = NvimAgent(uuid: self.uuid)
|
self.uiClient = UiClient(uuid: self.uuid)
|
||||||
|
|
||||||
let sockPath = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("vimr_\(self.uuid).sock").path
|
let sockPath = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("vimr_\(self.uuid).sock").path
|
||||||
guard let nvim = NvimApi(at: sockPath) else {
|
guard let nvim = NvimApi(at: sockPath) else {
|
||||||
@ -169,10 +169,10 @@ public class NvimView: NSView,
|
|||||||
self.leading = self.drawer.leading
|
self.leading = self.drawer.leading
|
||||||
|
|
||||||
// We cannot set bridge in init since self is not available before super.init()...
|
// We cannot set bridge in init since self is not available before super.init()...
|
||||||
self.agent.bridge = self
|
self.uiClient.bridge = self
|
||||||
self.agent.useInteractiveZsh = config.useInteractiveZsh
|
self.uiClient.useInteractiveZsh = config.useInteractiveZsh
|
||||||
self.agent.cwd = config.cwd
|
self.uiClient.cwd = config.cwd
|
||||||
self.agent.nvimArgs = config.nvimArgs
|
self.uiClient.nvimArgs = config.nvimArgs
|
||||||
}
|
}
|
||||||
|
|
||||||
convenience override public init(frame rect: NSRect) {
|
convenience override public init(frame rect: NSRect) {
|
||||||
@ -185,7 +185,7 @@ public class NvimView: NSView,
|
|||||||
|
|
||||||
@IBAction public func debug1(_ sender: Any?) {
|
@IBAction public func debug1(_ sender: Any?) {
|
||||||
self.logger.debug("DEBUG 1 - Start")
|
self.logger.debug("DEBUG 1 - Start")
|
||||||
self.agent.debug()
|
self.uiClient.debug()
|
||||||
self.logger.debug("DEBUG 1 - End")
|
self.logger.debug("DEBUG 1 - End")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -206,7 +206,7 @@ public class NvimView: NSView,
|
|||||||
let bridgeLogger = LogContext.fileLogger(as: NvimView.self,
|
let bridgeLogger = LogContext.fileLogger(as: NvimView.self,
|
||||||
with: URL(fileURLWithPath: "/tmp/nvv-bridge.log"),
|
with: URL(fileURLWithPath: "/tmp/nvv-bridge.log"),
|
||||||
shouldLogDebug: nil)
|
shouldLogDebug: nil)
|
||||||
let agent: NvimAgent
|
let uiClient: UiClient
|
||||||
let nvim: NvimApi
|
let nvim: NvimApi
|
||||||
let grid = Grid()
|
let grid = Grid()
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
@interface NvimAgent : NSObject
|
@interface UiClient : NSObject
|
||||||
|
|
||||||
@property (nonatomic) bool useInteractiveZsh;
|
@property (nonatomic) bool useInteractiveZsh;
|
||||||
@property (nonatomic) NSURL *cwd;
|
@property (nonatomic) NSURL *cwd;
|
@ -3,7 +3,7 @@
|
|||||||
* See LICENSE
|
* See LICENSE
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#import "NvimAgent.h"
|
#import "UiClient.h"
|
||||||
#import "NeoVimMsgIds.h"
|
#import "NeoVimMsgIds.h"
|
||||||
#import "Logger.h"
|
#import "Logger.h"
|
||||||
|
|
||||||
@ -50,7 +50,7 @@ static void log_cfmachport_error(SInt32 err, NeoVimAgentMsgId msgid, NSData *inp
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@interface NvimAgent ()
|
@interface UiClient ()
|
||||||
|
|
||||||
- (void)handleMessageWithId:(SInt32)msgid data:(NSData *)data;
|
- (void)handleMessageWithId:(SInt32)msgid data:(NSData *)data;
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ static void log_cfmachport_error(SInt32 err, NeoVimAgentMsgId msgid, NSData *inp
|
|||||||
|
|
||||||
static CFDataRef local_server_callback(CFMessagePortRef local __unused, SInt32 msgid, CFDataRef data, void *info) {
|
static CFDataRef local_server_callback(CFMessagePortRef local __unused, SInt32 msgid, CFDataRef data, void *info) {
|
||||||
@autoreleasepool {
|
@autoreleasepool {
|
||||||
NvimAgent *agent = (__bridge NvimAgent *) info;
|
UiClient *agent = (__bridge UiClient *) info;
|
||||||
[agent handleMessageWithId:msgid data:(__bridge NSData *) (data)];
|
[agent handleMessageWithId:msgid data:(__bridge NSData *) (data)];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ static CFDataRef local_server_callback(CFMessagePortRef local __unused, SInt32 m
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@implementation NvimAgent {
|
@implementation UiClient {
|
||||||
NSString *_uuid;
|
NSString *_uuid;
|
||||||
|
|
||||||
CFMessagePortRef _remoteServerPort;
|
CFMessagePortRef _remoteServerPort;
|
@ -100,6 +100,25 @@
|
|||||||
4B96FB411EBBC56F00E4E164 /* RxSwiftCommons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BB1BEA81D48773200463C29 /* RxSwiftCommons.swift */; };
|
4B96FB411EBBC56F00E4E164 /* RxSwiftCommons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BB1BEA81D48773200463C29 /* RxSwiftCommons.swift */; };
|
||||||
4B96FB421EBBC56F00E4E164 /* SwiftCommons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B6A70951D6100E300E12030 /* SwiftCommons.swift */; };
|
4B96FB421EBBC56F00E4E164 /* SwiftCommons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B6A70951D6100E300E12030 /* SwiftCommons.swift */; };
|
||||||
4B97E2CC1D33F53D00FC0660 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4B97E2CE1D33F53D00FC0660 /* MainWindow.xib */; };
|
4B97E2CC1D33F53D00FC0660 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4B97E2CE1D33F53D00FC0660 /* MainWindow.xib */; };
|
||||||
|
4BA753FE1FDDDE64008EE7DC /* HttpServerIO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753EB1FDDDE63008EE7DC /* HttpServerIO.swift */; };
|
||||||
|
4BA753FF1FDDDE64008EE7DC /* HttpServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753EC1FDDDE63008EE7DC /* HttpServer.swift */; };
|
||||||
|
4BA754001FDDDE64008EE7DC /* String+File.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753ED1FDDDE63008EE7DC /* String+File.swift */; };
|
||||||
|
4BA754011FDDDE64008EE7DC /* String+Misc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753EE1FDDDE63008EE7DC /* String+Misc.swift */; };
|
||||||
|
4BA754021FDDDE64008EE7DC /* DemoServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753EF1FDDDE63008EE7DC /* DemoServer.swift */; };
|
||||||
|
4BA754031FDDDE64008EE7DC /* Scopes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753F01FDDDE63008EE7DC /* Scopes.swift */; };
|
||||||
|
4BA754041FDDDE64008EE7DC /* Socket+File.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753F11FDDDE63008EE7DC /* Socket+File.swift */; };
|
||||||
|
4BA754051FDDDE64008EE7DC /* Errno.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753F21FDDDE63008EE7DC /* Errno.swift */; };
|
||||||
|
4BA754061FDDDE64008EE7DC /* HttpRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753F31FDDDE63008EE7DC /* HttpRouter.swift */; };
|
||||||
|
4BA754071FDDDE64008EE7DC /* HttpResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753F41FDDDE63008EE7DC /* HttpResponse.swift */; };
|
||||||
|
4BA754081FDDDE64008EE7DC /* HttpParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753F51FDDDE63008EE7DC /* HttpParser.swift */; };
|
||||||
|
4BA754091FDDDE64008EE7DC /* Socket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753F61FDDDE63008EE7DC /* Socket.swift */; };
|
||||||
|
4BA7540A1FDDDE64008EE7DC /* Process.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753F71FDDDE64008EE7DC /* Process.swift */; };
|
||||||
|
4BA7540B1FDDDE64008EE7DC /* HttpRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753F81FDDDE64008EE7DC /* HttpRequest.swift */; };
|
||||||
|
4BA7540C1FDDDE64008EE7DC /* String+BASE64.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753F91FDDDE64008EE7DC /* String+BASE64.swift */; };
|
||||||
|
4BA7540D1FDDDE64008EE7DC /* String+SHA1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753FA1FDDDE64008EE7DC /* String+SHA1.swift */; };
|
||||||
|
4BA7540E1FDDDE64008EE7DC /* WebSockets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753FB1FDDDE64008EE7DC /* WebSockets.swift */; };
|
||||||
|
4BA7540F1FDDDE64008EE7DC /* Socket+Server.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753FC1FDDDE64008EE7DC /* Socket+Server.swift */; };
|
||||||
|
4BA754101FDDDE64008EE7DC /* Files.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA753FD1FDDDE64008EE7DC /* Files.swift */; };
|
||||||
4BB1BEA91D48773200463C29 /* RxSwiftCommons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BB1BEA81D48773200463C29 /* RxSwiftCommons.swift */; };
|
4BB1BEA91D48773200463C29 /* RxSwiftCommons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BB1BEA81D48773200463C29 /* RxSwiftCommons.swift */; };
|
||||||
4BB409E51DD68CCC005F39A2 /* FileBrowserMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4BB409E71DD68CCC005F39A2 /* FileBrowserMenu.xib */; };
|
4BB409E51DD68CCC005F39A2 /* FileBrowserMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4BB409E71DD68CCC005F39A2 /* FileBrowserMenu.xib */; };
|
||||||
4BB409EE1DDA77E9005F39A2 /* ProxyWorkspaceBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BB409ED1DDA77E9005F39A2 /* ProxyWorkspaceBar.swift */; };
|
4BB409EE1DDA77E9005F39A2 /* ProxyWorkspaceBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BB409ED1DDA77E9005F39A2 /* ProxyWorkspaceBar.swift */; };
|
||||||
@ -120,7 +139,6 @@
|
|||||||
4BF18C3A1FD2E2AB00DF95D1 /* PureLayout.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C321FD2E2AA00DF95D1 /* PureLayout.framework */; };
|
4BF18C3A1FD2E2AB00DF95D1 /* PureLayout.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C321FD2E2AA00DF95D1 /* PureLayout.framework */; };
|
||||||
4BF18C3B1FD2E2AB00DF95D1 /* CocoaMarkdown.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C331FD2E2AA00DF95D1 /* CocoaMarkdown.framework */; };
|
4BF18C3B1FD2E2AB00DF95D1 /* CocoaMarkdown.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C331FD2E2AA00DF95D1 /* CocoaMarkdown.framework */; };
|
||||||
4BF18C3C1FD2E2AB00DF95D1 /* CocoaFontAwesome.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C341FD2E2AA00DF95D1 /* CocoaFontAwesome.framework */; };
|
4BF18C3C1FD2E2AB00DF95D1 /* CocoaFontAwesome.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C341FD2E2AA00DF95D1 /* CocoaFontAwesome.framework */; };
|
||||||
4BF18C3D1FD2E2AB00DF95D1 /* Swifter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C351FD2E2AB00DF95D1 /* Swifter.framework */; };
|
|
||||||
4BF18C3E1FD2E2AB00DF95D1 /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C361FD2E2AB00DF95D1 /* RxSwift.framework */; };
|
4BF18C3E1FD2E2AB00DF95D1 /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C361FD2E2AB00DF95D1 /* RxSwift.framework */; };
|
||||||
4BF18C3F1FD2E2AB00DF95D1 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C371FD2E2AB00DF95D1 /* Sparkle.framework */; };
|
4BF18C3F1FD2E2AB00DF95D1 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C371FD2E2AB00DF95D1 /* Sparkle.framework */; };
|
||||||
4BF18C401FD2E2AB00DF95D1 /* RxCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C381FD2E2AB00DF95D1 /* RxCocoa.framework */; };
|
4BF18C401FD2E2AB00DF95D1 /* RxCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C381FD2E2AB00DF95D1 /* RxCocoa.framework */; };
|
||||||
@ -131,7 +149,6 @@
|
|||||||
4BF18C451FD2E2C900DF95D1 /* RxCocoa.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C381FD2E2AB00DF95D1 /* RxCocoa.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
4BF18C451FD2E2C900DF95D1 /* RxCocoa.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C381FD2E2AB00DF95D1 /* RxCocoa.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||||
4BF18C461FD2E2C900DF95D1 /* RxSwift.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C361FD2E2AB00DF95D1 /* RxSwift.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
4BF18C461FD2E2C900DF95D1 /* RxSwift.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C361FD2E2AB00DF95D1 /* RxSwift.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||||
4BF18C471FD2E2C900DF95D1 /* Sparkle.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C371FD2E2AB00DF95D1 /* Sparkle.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
4BF18C471FD2E2C900DF95D1 /* Sparkle.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C371FD2E2AB00DF95D1 /* Sparkle.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||||
4BF18C481FD2E2C900DF95D1 /* Swifter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C351FD2E2AB00DF95D1 /* Swifter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
|
||||||
4BF18C4A1FD2E2DE00DF95D1 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C491FD2E2DE00DF95D1 /* Nimble.framework */; };
|
4BF18C4A1FD2E2DE00DF95D1 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BF18C491FD2E2DE00DF95D1 /* Nimble.framework */; };
|
||||||
4BF18C4C1FD2E4CE00DF95D1 /* NvimView.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BC1642B1FD2DEE1001903BE /* NvimView.framework */; };
|
4BF18C4C1FD2E4CE00DF95D1 /* NvimView.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BC1642B1FD2DEE1001903BE /* NvimView.framework */; };
|
||||||
4BF18C4D1FD2E4D200DF95D1 /* MsgPackRpc.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BC164291FD2DEE1001903BE /* MsgPackRpc.framework */; };
|
4BF18C4D1FD2E4D200DF95D1 /* MsgPackRpc.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4BC164291FD2DEE1001903BE /* MsgPackRpc.framework */; };
|
||||||
@ -172,7 +189,6 @@
|
|||||||
4BF18C451FD2E2C900DF95D1 /* RxCocoa.framework in Embed Frameworks */,
|
4BF18C451FD2E2C900DF95D1 /* RxCocoa.framework in Embed Frameworks */,
|
||||||
4BF18C461FD2E2C900DF95D1 /* RxSwift.framework in Embed Frameworks */,
|
4BF18C461FD2E2C900DF95D1 /* RxSwift.framework in Embed Frameworks */,
|
||||||
4BF18C471FD2E2C900DF95D1 /* Sparkle.framework in Embed Frameworks */,
|
4BF18C471FD2E2C900DF95D1 /* Sparkle.framework in Embed Frameworks */,
|
||||||
4BF18C481FD2E2C900DF95D1 /* Swifter.framework in Embed Frameworks */,
|
|
||||||
4BC1642C1FD2DEEA001903BE /* MsgPackRpc.framework in Embed Frameworks */,
|
4BC1642C1FD2DEEA001903BE /* MsgPackRpc.framework in Embed Frameworks */,
|
||||||
4BC1642D1FD2DEEA001903BE /* NvimMsgPack.framework in Embed Frameworks */,
|
4BC1642D1FD2DEEA001903BE /* NvimMsgPack.framework in Embed Frameworks */,
|
||||||
4BC1642E1FD2DEEA001903BE /* NvimView.framework in Embed Frameworks */,
|
4BC1642E1FD2DEEA001903BE /* NvimView.framework in Embed Frameworks */,
|
||||||
@ -283,6 +299,25 @@
|
|||||||
4B6A70931D60E04200E12030 /* AppKitCommons.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppKitCommons.swift; sourceTree = "<group>"; };
|
4B6A70931D60E04200E12030 /* AppKitCommons.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppKitCommons.swift; sourceTree = "<group>"; };
|
||||||
4B6A70951D6100E300E12030 /* SwiftCommons.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwiftCommons.swift; sourceTree = "<group>"; };
|
4B6A70951D6100E300E12030 /* SwiftCommons.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwiftCommons.swift; sourceTree = "<group>"; };
|
||||||
4B97E2CD1D33F53D00FC0660 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainWindow.xib; sourceTree = "<group>"; };
|
4B97E2CD1D33F53D00FC0660 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainWindow.xib; sourceTree = "<group>"; };
|
||||||
|
4BA753EB1FDDDE63008EE7DC /* HttpServerIO.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = HttpServerIO.swift; path = ../../Carthage/Checkouts/swifter/Sources/HttpServerIO.swift; sourceTree = "<group>"; };
|
||||||
|
4BA753EC1FDDDE63008EE7DC /* HttpServer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = HttpServer.swift; path = ../../Carthage/Checkouts/swifter/Sources/HttpServer.swift; sourceTree = "<group>"; };
|
||||||
|
4BA753ED1FDDDE63008EE7DC /* String+File.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "String+File.swift"; path = "../../Carthage/Checkouts/swifter/Sources/String+File.swift"; sourceTree = "<group>"; };
|
||||||
|
4BA753EE1FDDDE63008EE7DC /* String+Misc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "String+Misc.swift"; path = "../../Carthage/Checkouts/swifter/Sources/String+Misc.swift"; sourceTree = "<group>"; };
|
||||||
|
4BA753EF1FDDDE63008EE7DC /* DemoServer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = DemoServer.swift; path = ../../Carthage/Checkouts/swifter/Sources/DemoServer.swift; sourceTree = "<group>"; };
|
||||||
|
4BA753F01FDDDE63008EE7DC /* Scopes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Scopes.swift; path = ../../Carthage/Checkouts/swifter/Sources/Scopes.swift; sourceTree = "<group>"; };
|
||||||
|
4BA753F11FDDDE63008EE7DC /* Socket+File.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "Socket+File.swift"; path = "../../Carthage/Checkouts/swifter/Sources/Socket+File.swift"; sourceTree = "<group>"; };
|
||||||
|
4BA753F21FDDDE63008EE7DC /* Errno.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Errno.swift; path = ../../Carthage/Checkouts/swifter/Sources/Errno.swift; sourceTree = "<group>"; };
|
||||||
|
4BA753F31FDDDE63008EE7DC /* HttpRouter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = HttpRouter.swift; path = ../../Carthage/Checkouts/swifter/Sources/HttpRouter.swift; sourceTree = "<group>"; };
|
||||||
|
4BA753F41FDDDE63008EE7DC /* HttpResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = HttpResponse.swift; path = ../../Carthage/Checkouts/swifter/Sources/HttpResponse.swift; sourceTree = "<group>"; };
|
||||||
|
4BA753F51FDDDE63008EE7DC /* HttpParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = HttpParser.swift; path = ../../Carthage/Checkouts/swifter/Sources/HttpParser.swift; sourceTree = "<group>"; };
|
||||||
|
4BA753F61FDDDE63008EE7DC /* Socket.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Socket.swift; path = ../../Carthage/Checkouts/swifter/Sources/Socket.swift; sourceTree = "<group>"; };
|
||||||
|
4BA753F71FDDDE64008EE7DC /* Process.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Process.swift; path = ../../Carthage/Checkouts/swifter/Sources/Process.swift; sourceTree = "<group>"; };
|
||||||
|
4BA753F81FDDDE64008EE7DC /* HttpRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = HttpRequest.swift; path = ../../Carthage/Checkouts/swifter/Sources/HttpRequest.swift; sourceTree = "<group>"; };
|
||||||
|
4BA753F91FDDDE64008EE7DC /* String+BASE64.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "String+BASE64.swift"; path = "../../Carthage/Checkouts/swifter/Sources/String+BASE64.swift"; sourceTree = "<group>"; };
|
||||||
|
4BA753FA1FDDDE64008EE7DC /* String+SHA1.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "String+SHA1.swift"; path = "../../Carthage/Checkouts/swifter/Sources/String+SHA1.swift"; sourceTree = "<group>"; };
|
||||||
|
4BA753FB1FDDDE64008EE7DC /* WebSockets.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = WebSockets.swift; path = ../../Carthage/Checkouts/swifter/Sources/WebSockets.swift; sourceTree = "<group>"; };
|
||||||
|
4BA753FC1FDDDE64008EE7DC /* Socket+Server.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "Socket+Server.swift"; path = "../../Carthage/Checkouts/swifter/Sources/Socket+Server.swift"; sourceTree = "<group>"; };
|
||||||
|
4BA753FD1FDDDE64008EE7DC /* Files.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Files.swift; path = ../../Carthage/Checkouts/swifter/Sources/Files.swift; sourceTree = "<group>"; };
|
||||||
4BB1BEA81D48773200463C29 /* RxSwiftCommons.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxSwiftCommons.swift; sourceTree = "<group>"; };
|
4BB1BEA81D48773200463C29 /* RxSwiftCommons.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxSwiftCommons.swift; sourceTree = "<group>"; };
|
||||||
4BB409E61DD68CCC005F39A2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/FileBrowserMenu.xib; sourceTree = "<group>"; };
|
4BB409E61DD68CCC005F39A2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/FileBrowserMenu.xib; sourceTree = "<group>"; };
|
||||||
4BB409ED1DDA77E9005F39A2 /* ProxyWorkspaceBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ProxyWorkspaceBar.swift; path = Workspace/ProxyWorkspaceBar.swift; sourceTree = "<group>"; };
|
4BB409ED1DDA77E9005F39A2 /* ProxyWorkspaceBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ProxyWorkspaceBar.swift; path = Workspace/ProxyWorkspaceBar.swift; sourceTree = "<group>"; };
|
||||||
@ -305,7 +340,6 @@
|
|||||||
4BF18C321FD2E2AA00DF95D1 /* PureLayout.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PureLayout.framework; path = ../Carthage/Build/Mac/PureLayout.framework; sourceTree = "<group>"; };
|
4BF18C321FD2E2AA00DF95D1 /* PureLayout.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PureLayout.framework; path = ../Carthage/Build/Mac/PureLayout.framework; sourceTree = "<group>"; };
|
||||||
4BF18C331FD2E2AA00DF95D1 /* CocoaMarkdown.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CocoaMarkdown.framework; path = ../Carthage/Build/Mac/CocoaMarkdown.framework; sourceTree = "<group>"; };
|
4BF18C331FD2E2AA00DF95D1 /* CocoaMarkdown.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CocoaMarkdown.framework; path = ../Carthage/Build/Mac/CocoaMarkdown.framework; sourceTree = "<group>"; };
|
||||||
4BF18C341FD2E2AA00DF95D1 /* CocoaFontAwesome.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CocoaFontAwesome.framework; path = ../Carthage/Build/Mac/CocoaFontAwesome.framework; sourceTree = "<group>"; };
|
4BF18C341FD2E2AA00DF95D1 /* CocoaFontAwesome.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CocoaFontAwesome.framework; path = ../Carthage/Build/Mac/CocoaFontAwesome.framework; sourceTree = "<group>"; };
|
||||||
4BF18C351FD2E2AB00DF95D1 /* Swifter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Swifter.framework; path = ../Carthage/Build/Mac/Swifter.framework; sourceTree = "<group>"; };
|
|
||||||
4BF18C361FD2E2AB00DF95D1 /* RxSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxSwift.framework; path = ../Carthage/Build/Mac/RxSwift.framework; sourceTree = "<group>"; };
|
4BF18C361FD2E2AB00DF95D1 /* RxSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxSwift.framework; path = ../Carthage/Build/Mac/RxSwift.framework; sourceTree = "<group>"; };
|
||||||
4BF18C371FD2E2AB00DF95D1 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = ../Carthage/Build/Mac/Sparkle.framework; sourceTree = "<group>"; };
|
4BF18C371FD2E2AB00DF95D1 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = ../Carthage/Build/Mac/Sparkle.framework; sourceTree = "<group>"; };
|
||||||
4BF18C381FD2E2AB00DF95D1 /* RxCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxCocoa.framework; path = ../Carthage/Build/Mac/RxCocoa.framework; sourceTree = "<group>"; };
|
4BF18C381FD2E2AB00DF95D1 /* RxCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxCocoa.framework; path = ../Carthage/Build/Mac/RxCocoa.framework; sourceTree = "<group>"; };
|
||||||
@ -322,7 +356,6 @@
|
|||||||
4BF18C3A1FD2E2AB00DF95D1 /* PureLayout.framework in Frameworks */,
|
4BF18C3A1FD2E2AB00DF95D1 /* PureLayout.framework in Frameworks */,
|
||||||
4BF18C3B1FD2E2AB00DF95D1 /* CocoaMarkdown.framework in Frameworks */,
|
4BF18C3B1FD2E2AB00DF95D1 /* CocoaMarkdown.framework in Frameworks */,
|
||||||
4BF18C3C1FD2E2AB00DF95D1 /* CocoaFontAwesome.framework in Frameworks */,
|
4BF18C3C1FD2E2AB00DF95D1 /* CocoaFontAwesome.framework in Frameworks */,
|
||||||
4BF18C3D1FD2E2AB00DF95D1 /* Swifter.framework in Frameworks */,
|
|
||||||
4BF18C3E1FD2E2AB00DF95D1 /* RxSwift.framework in Frameworks */,
|
4BF18C3E1FD2E2AB00DF95D1 /* RxSwift.framework in Frameworks */,
|
||||||
4BF18C3F1FD2E2AB00DF95D1 /* Sparkle.framework in Frameworks */,
|
4BF18C3F1FD2E2AB00DF95D1 /* Sparkle.framework in Frameworks */,
|
||||||
4BF18C401FD2E2AB00DF95D1 /* RxCocoa.framework in Frameworks */,
|
4BF18C401FD2E2AB00DF95D1 /* RxCocoa.framework in Frameworks */,
|
||||||
@ -509,7 +542,6 @@
|
|||||||
4BF18C381FD2E2AB00DF95D1 /* RxCocoa.framework */,
|
4BF18C381FD2E2AB00DF95D1 /* RxCocoa.framework */,
|
||||||
4BF18C361FD2E2AB00DF95D1 /* RxSwift.framework */,
|
4BF18C361FD2E2AB00DF95D1 /* RxSwift.framework */,
|
||||||
4BF18C371FD2E2AB00DF95D1 /* Sparkle.framework */,
|
4BF18C371FD2E2AB00DF95D1 /* Sparkle.framework */,
|
||||||
4BF18C351FD2E2AB00DF95D1 /* Swifter.framework */,
|
|
||||||
4BC164291FD2DEE1001903BE /* MsgPackRpc.framework */,
|
4BC164291FD2DEE1001903BE /* MsgPackRpc.framework */,
|
||||||
4BC1642A1FD2DEE1001903BE /* NvimMsgPack.framework */,
|
4BC1642A1FD2DEE1001903BE /* NvimMsgPack.framework */,
|
||||||
4BC1642B1FD2DEE1001903BE /* NvimView.framework */,
|
4BC1642B1FD2DEE1001903BE /* NvimView.framework */,
|
||||||
@ -549,6 +581,32 @@
|
|||||||
name = resources;
|
name = resources;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
4BA753EA1FDDDE55008EE7DC /* swifter */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
4BA753EF1FDDDE63008EE7DC /* DemoServer.swift */,
|
||||||
|
4BA753F21FDDDE63008EE7DC /* Errno.swift */,
|
||||||
|
4BA753FD1FDDDE64008EE7DC /* Files.swift */,
|
||||||
|
4BA753F51FDDDE63008EE7DC /* HttpParser.swift */,
|
||||||
|
4BA753F81FDDDE64008EE7DC /* HttpRequest.swift */,
|
||||||
|
4BA753F41FDDDE63008EE7DC /* HttpResponse.swift */,
|
||||||
|
4BA753F31FDDDE63008EE7DC /* HttpRouter.swift */,
|
||||||
|
4BA753EC1FDDDE63008EE7DC /* HttpServer.swift */,
|
||||||
|
4BA753EB1FDDDE63008EE7DC /* HttpServerIO.swift */,
|
||||||
|
4BA753F71FDDDE64008EE7DC /* Process.swift */,
|
||||||
|
4BA753F01FDDDE63008EE7DC /* Scopes.swift */,
|
||||||
|
4BA753F61FDDDE63008EE7DC /* Socket.swift */,
|
||||||
|
4BA753F11FDDDE63008EE7DC /* Socket+File.swift */,
|
||||||
|
4BA753FC1FDDDE64008EE7DC /* Socket+Server.swift */,
|
||||||
|
4BA753F91FDDDE64008EE7DC /* String+BASE64.swift */,
|
||||||
|
4BA753ED1FDDDE63008EE7DC /* String+File.swift */,
|
||||||
|
4BA753EE1FDDDE63008EE7DC /* String+Misc.swift */,
|
||||||
|
4BA753FA1FDDDE64008EE7DC /* String+SHA1.swift */,
|
||||||
|
4BA753FB1FDDDE64008EE7DC /* WebSockets.swift */,
|
||||||
|
);
|
||||||
|
path = swifter;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
4BDF50101D760AB700D8FBC3 /* Commons */ = {
|
4BDF50101D760AB700D8FBC3 /* Commons */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@ -575,6 +633,7 @@
|
|||||||
children = (
|
children = (
|
||||||
4BEBA5071CFF374B00673FDF /* VimR */,
|
4BEBA5071CFF374B00673FDF /* VimR */,
|
||||||
4BEBA5171CFF374B00673FDF /* VimRTests */,
|
4BEBA5171CFF374B00673FDF /* VimRTests */,
|
||||||
|
4BA753EA1FDDDE55008EE7DC /* swifter */,
|
||||||
4B5012001EBA791000F76C46 /* Frameworks */,
|
4B5012001EBA791000F76C46 /* Frameworks */,
|
||||||
4BEBA5061CFF374B00673FDF /* Products */,
|
4BEBA5061CFF374B00673FDF /* Products */,
|
||||||
);
|
);
|
||||||
@ -770,10 +829,13 @@
|
|||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
4B4147A31D97361400DD4A2C /* WorkspaceToolButton.swift in Sources */,
|
4B4147A31D97361400DD4A2C /* WorkspaceToolButton.swift in Sources */,
|
||||||
|
4BA7540E1FDDDE64008EE7DC /* WebSockets.swift in Sources */,
|
||||||
4B238BE11D3BF24200CBDD98 /* Application.swift in Sources */,
|
4B238BE11D3BF24200CBDD98 /* Application.swift in Sources */,
|
||||||
4B6423961D8EFD7100FC78C8 /* Workspace.swift in Sources */,
|
4B6423961D8EFD7100FC78C8 /* Workspace.swift in Sources */,
|
||||||
4B6A70941D60E04200E12030 /* AppKitCommons.swift in Sources */,
|
4B6A70941D60E04200E12030 /* AppKitCommons.swift in Sources */,
|
||||||
4B3965361DEB21300082D3C1 /* InnterToolBar.swift in Sources */,
|
4B3965361DEB21300082D3C1 /* InnterToolBar.swift in Sources */,
|
||||||
|
4BA754101FDDDE64008EE7DC /* Files.swift in Sources */,
|
||||||
|
4BA7540B1FDDDE64008EE7DC /* HttpRequest.swift in Sources */,
|
||||||
4B6423981D8EFDE000FC78C8 /* WorkspaceBar.swift in Sources */,
|
4B6423981D8EFDE000FC78C8 /* WorkspaceBar.swift in Sources */,
|
||||||
4BB1BEA91D48773200463C29 /* RxSwiftCommons.swift in Sources */,
|
4BB1BEA91D48773200463C29 /* RxSwiftCommons.swift in Sources */,
|
||||||
4B6A70961D6100E300E12030 /* SwiftCommons.swift in Sources */,
|
4B6A70961D6100E300E12030 /* SwiftCommons.swift in Sources */,
|
||||||
@ -783,33 +845,43 @@
|
|||||||
1929B6388EAF16C190B82955 /* FileItemIgnorePattern.swift in Sources */,
|
1929B6388EAF16C190B82955 /* FileItemIgnorePattern.swift in Sources */,
|
||||||
1929B67DA3EB21A631EF1DBB /* FileUtils.swift in Sources */,
|
1929B67DA3EB21A631EF1DBB /* FileUtils.swift in Sources */,
|
||||||
1929B3F5743967125F357C9F /* Matcher.swift in Sources */,
|
1929B3F5743967125F357C9F /* Matcher.swift in Sources */,
|
||||||
|
4BA7540D1FDDDE64008EE7DC /* String+SHA1.swift in Sources */,
|
||||||
1929B53876E6952D378C2B30 /* ScoredFileItem.swift in Sources */,
|
1929B53876E6952D378C2B30 /* ScoredFileItem.swift in Sources */,
|
||||||
1929BD3F9E609BFADB27584B /* Scorer.swift in Sources */,
|
1929BD3F9E609BFADB27584B /* Scorer.swift in Sources */,
|
||||||
4BB409EE1DDA77E9005F39A2 /* ProxyWorkspaceBar.swift in Sources */,
|
4BB409EE1DDA77E9005F39A2 /* ProxyWorkspaceBar.swift in Sources */,
|
||||||
1929B0E0C3BC59F52713D5A2 /* FoundationCommons.swift in Sources */,
|
1929B0E0C3BC59F52713D5A2 /* FoundationCommons.swift in Sources */,
|
||||||
1929BD2F41D93ADFF43C1C98 /* NetUtils.m in Sources */,
|
1929BD2F41D93ADFF43C1C98 /* NetUtils.m in Sources */,
|
||||||
1929BE0DAEE9664C5BCFA211 /* States.swift in Sources */,
|
1929BE0DAEE9664C5BCFA211 /* States.swift in Sources */,
|
||||||
|
4BA754011FDDDE64008EE7DC /* String+Misc.swift in Sources */,
|
||||||
1929B4FEE6EB56EF3F56B805 /* Context.swift in Sources */,
|
1929B4FEE6EB56EF3F56B805 /* Context.swift in Sources */,
|
||||||
|
4BA754051FDDDE64008EE7DC /* Errno.swift in Sources */,
|
||||||
|
4BA7540A1FDDDE64008EE7DC /* Process.swift in Sources */,
|
||||||
1929BD3878A3A47B8D685CD2 /* AppDelegateReducer.swift in Sources */,
|
1929BD3878A3A47B8D685CD2 /* AppDelegateReducer.swift in Sources */,
|
||||||
1929BAFF1E011321D3186EE6 /* UiRoot.swift in Sources */,
|
1929BAFF1E011321D3186EE6 /* UiRoot.swift in Sources */,
|
||||||
1929B29B95AD176D57942E08 /* UiRootReducer.swift in Sources */,
|
1929B29B95AD176D57942E08 /* UiRootReducer.swift in Sources */,
|
||||||
1929BB4A9B2FA42A64CCCC76 /* MainWindowReducer.swift in Sources */,
|
1929BB4A9B2FA42A64CCCC76 /* MainWindowReducer.swift in Sources */,
|
||||||
4BE45C1D1FD2DBD2005C0A95 /* Logger.swift in Sources */,
|
4BE45C1D1FD2DBD2005C0A95 /* Logger.swift in Sources */,
|
||||||
1929B8FB248D71BF88A35761 /* PreviewTool.swift in Sources */,
|
1929B8FB248D71BF88A35761 /* PreviewTool.swift in Sources */,
|
||||||
|
4BA754031FDDDE64008EE7DC /* Scopes.swift in Sources */,
|
||||||
1929B4B70926DE113E6BF990 /* PreviewReducer.swift in Sources */,
|
1929B4B70926DE113E6BF990 /* PreviewReducer.swift in Sources */,
|
||||||
1929B5C1BABBC0D09D97C3EF /* PreviewService.swift in Sources */,
|
1929B5C1BABBC0D09D97C3EF /* PreviewService.swift in Sources */,
|
||||||
1929B0F599D1F62C7BE53D2C /* HttpServerService.swift in Sources */,
|
1929B0F599D1F62C7BE53D2C /* HttpServerService.swift in Sources */,
|
||||||
1929B3AC66EFE35D68C020E3 /* PreviewToolReducer.swift in Sources */,
|
1929B3AC66EFE35D68C020E3 /* PreviewToolReducer.swift in Sources */,
|
||||||
1929B59FA5C286E010F70BEE /* Types.swift in Sources */,
|
1929B59FA5C286E010F70BEE /* Types.swift in Sources */,
|
||||||
1929B6D8F5FC723B7109031F /* OpenQuicklyReducer.swift in Sources */,
|
1929B6D8F5FC723B7109031F /* OpenQuicklyReducer.swift in Sources */,
|
||||||
|
4BA753FE1FDDDE64008EE7DC /* HttpServerIO.swift in Sources */,
|
||||||
|
4BA7540F1FDDDE64008EE7DC /* Socket+Server.swift in Sources */,
|
||||||
1929B5543B1E31A26096E656 /* FileMonitorReducer.swift in Sources */,
|
1929B5543B1E31A26096E656 /* FileMonitorReducer.swift in Sources */,
|
||||||
1929B5F016431A76292D1E84 /* FileMonitor.swift in Sources */,
|
1929B5F016431A76292D1E84 /* FileMonitor.swift in Sources */,
|
||||||
1929B71381946860626E5224 /* FileBrowserReducer.swift in Sources */,
|
1929B71381946860626E5224 /* FileBrowserReducer.swift in Sources */,
|
||||||
1929BA715337FE26155B2071 /* OpenedFileList.swift in Sources */,
|
1929BA715337FE26155B2071 /* OpenedFileList.swift in Sources */,
|
||||||
1929B4E54E2F13A7F5F2B682 /* OpenedFileListReducer.swift in Sources */,
|
1929B4E54E2F13A7F5F2B682 /* OpenedFileListReducer.swift in Sources */,
|
||||||
|
4BA754061FDDDE64008EE7DC /* HttpRouter.swift in Sources */,
|
||||||
1929BAE4900D72A7877741B1 /* PrefWindow.swift in Sources */,
|
1929BAE4900D72A7877741B1 /* PrefWindow.swift in Sources */,
|
||||||
1929BEAE0592096BC1191B67 /* PrefPane.swift in Sources */,
|
1929BEAE0592096BC1191B67 /* PrefPane.swift in Sources */,
|
||||||
1929BEDE1BE950EDA9497363 /* GeneralPref.swift in Sources */,
|
1929BEDE1BE950EDA9497363 /* GeneralPref.swift in Sources */,
|
||||||
|
4BA754091FDDDE64008EE7DC /* Socket.swift in Sources */,
|
||||||
|
4BA7540C1FDDDE64008EE7DC /* String+BASE64.swift in Sources */,
|
||||||
1929B3217A7A3D79E28C80DB /* PrefWindowReducer.swift in Sources */,
|
1929B3217A7A3D79E28C80DB /* PrefWindowReducer.swift in Sources */,
|
||||||
1929B6BE1610892E6C4C0CE6 /* GeneralPrefReducer.swift in Sources */,
|
1929B6BE1610892E6C4C0CE6 /* GeneralPrefReducer.swift in Sources */,
|
||||||
1929B05B9D664052EC2D23EF /* FileOutlineView.swift in Sources */,
|
1929B05B9D664052EC2D23EF /* FileOutlineView.swift in Sources */,
|
||||||
@ -818,18 +890,24 @@
|
|||||||
1929B50D933A369A86A165DE /* AdvencedPref.swift in Sources */,
|
1929B50D933A369A86A165DE /* AdvencedPref.swift in Sources */,
|
||||||
1929BCC7908DD899999B70BE /* AppearancePrefReducer.swift in Sources */,
|
1929BCC7908DD899999B70BE /* AppearancePrefReducer.swift in Sources */,
|
||||||
1929B00BA624DA8DC75F7E02 /* SerializableStates.swift in Sources */,
|
1929B00BA624DA8DC75F7E02 /* SerializableStates.swift in Sources */,
|
||||||
|
4BA753FF1FDDDE64008EE7DC /* HttpServer.swift in Sources */,
|
||||||
1929B3557317755A43513B17 /* OpenQuicklyWindow.swift in Sources */,
|
1929B3557317755A43513B17 /* OpenQuicklyWindow.swift in Sources */,
|
||||||
1929B333855A5406C400DA92 /* OpenQuicklyFilterOperation.swift in Sources */,
|
1929B333855A5406C400DA92 /* OpenQuicklyFilterOperation.swift in Sources */,
|
||||||
1929B1837C750CADB3A5BCB9 /* OpenQuicklyFileViewRow.swift in Sources */,
|
1929B1837C750CADB3A5BCB9 /* OpenQuicklyFileViewRow.swift in Sources */,
|
||||||
1929B990A143763A56CFCED0 /* PrefService.swift in Sources */,
|
1929B990A143763A56CFCED0 /* PrefService.swift in Sources */,
|
||||||
1929BA76A1D97D8226F7CFB1 /* Debouncer.swift in Sources */,
|
1929BA76A1D97D8226F7CFB1 /* Debouncer.swift in Sources */,
|
||||||
|
4BA754071FDDDE64008EE7DC /* HttpResponse.swift in Sources */,
|
||||||
1929B71610FF1DC6E459BA49 /* PreviewUtils.swift in Sources */,
|
1929B71610FF1DC6E459BA49 /* PreviewUtils.swift in Sources */,
|
||||||
|
4BA754021FDDDE64008EE7DC /* DemoServer.swift in Sources */,
|
||||||
1929B08C6230B9C5AB72DAF1 /* Pref128ToCurrentConverter.swift in Sources */,
|
1929B08C6230B9C5AB72DAF1 /* Pref128ToCurrentConverter.swift in Sources */,
|
||||||
|
4BA754081FDDDE64008EE7DC /* HttpParser.swift in Sources */,
|
||||||
1929B94083273D4B321AD848 /* FileItemUtils.swift in Sources */,
|
1929B94083273D4B321AD848 /* FileItemUtils.swift in Sources */,
|
||||||
1929BFDE22D155F7C4B19E96 /* HtmlPreviewTool.swift in Sources */,
|
1929BFDE22D155F7C4B19E96 /* HtmlPreviewTool.swift in Sources */,
|
||||||
|
4BA754041FDDDE64008EE7DC /* Socket+File.swift in Sources */,
|
||||||
1929B4B00D7BB191A9A6532D /* HtmlPreviewToolReducer.swift in Sources */,
|
1929B4B00D7BB191A9A6532D /* HtmlPreviewToolReducer.swift in Sources */,
|
||||||
1929BCF7F7B9CC5499A3F506 /* AdvancedPrefReducer.swift in Sources */,
|
1929BCF7F7B9CC5499A3F506 /* AdvancedPrefReducer.swift in Sources */,
|
||||||
1929BF03FD6465F289AA80B2 /* ToolsPref.swift in Sources */,
|
1929BF03FD6465F289AA80B2 /* ToolsPref.swift in Sources */,
|
||||||
|
4BA754001FDDDE64008EE7DC /* String+File.swift in Sources */,
|
||||||
1929B6C0393DE40E34F4A49A /* ToolsPrefReducer.swift in Sources */,
|
1929B6C0393DE40E34F4A49A /* ToolsPrefReducer.swift in Sources */,
|
||||||
1929B542A071BD03C846F6EF /* PrefUtils.swift in Sources */,
|
1929B542A071BD03C846F6EF /* PrefUtils.swift in Sources */,
|
||||||
1929BE2F3E0182CC51F2763A /* ThemedTableSubviews.swift in Sources */,
|
1929BE2F3E0182CC51F2763A /* ThemedTableSubviews.swift in Sources */,
|
||||||
@ -958,7 +1036,7 @@
|
|||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
CURRENT_PROJECT_VERSION = 248;
|
CURRENT_PROJECT_VERSION = 249;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
ENABLE_TESTABILITY = YES;
|
ENABLE_TESTABILITY = YES;
|
||||||
@ -1013,7 +1091,7 @@
|
|||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
CURRENT_PROJECT_VERSION = 248;
|
CURRENT_PROJECT_VERSION = 249;
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
ENABLE_NS_ASSERTIONS = NO;
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
@ -1,93 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "0900"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "4B7780891EAA25FF00CB4E10"
|
|
||||||
BuildableName = "MacNeovim.app"
|
|
||||||
BlueprintName = "MacNeovim"
|
|
||||||
ReferencedContainer = "container:VimR.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
language = ""
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
||||||
<Testables>
|
|
||||||
</Testables>
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "4B7780891EAA25FF00CB4E10"
|
|
||||||
BuildableName = "MacNeovim.app"
|
|
||||||
BlueprintName = "MacNeovim"
|
|
||||||
ReferencedContainer = "container:VimR.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
language = ""
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "4B7780891EAA25FF00CB4E10"
|
|
||||||
BuildableName = "MacNeovim.app"
|
|
||||||
BlueprintName = "MacNeovim"
|
|
||||||
ReferencedContainer = "container:VimR.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "4B7780891EAA25FF00CB4E10"
|
|
||||||
BuildableName = "MacNeovim.app"
|
|
||||||
BlueprintName = "MacNeovim"
|
|
||||||
ReferencedContainer = "container:VimR.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
@ -4,7 +4,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
import Swifter
|
|
||||||
|
|
||||||
class HttpServerService {
|
class HttpServerService {
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>SNAPSHOT-248</string>
|
<string>SNAPSHOT-249</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleURLTypes</key>
|
<key>CFBundleURLTypes</key>
|
||||||
@ -49,7 +49,7 @@
|
|||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>248</string>
|
<string>249</string>
|
||||||
<key>LSApplicationCategoryType</key>
|
<key>LSApplicationCategoryType</key>
|
||||||
<string>public.app-category.productivity</string>
|
<string>public.app-category.productivity</string>
|
||||||
<key>LSMinimumSystemVersion</key>
|
<key>LSMinimumSystemVersion</key>
|
||||||
|
@ -15,10 +15,10 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>BNDL</string>
|
<string>BNDL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>SNAPSHOT-248</string>
|
<string>SNAPSHOT-249</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>248</string>
|
<string>249</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
@ -7,20 +7,22 @@
|
|||||||
<description>Most recent changes with links to updates for VimR.</description>
|
<description>Most recent changes with links to updates for VimR.</description>
|
||||||
<language>en</language>
|
<language>en</language>
|
||||||
<item>
|
<item>
|
||||||
<title>SNAPSHOT-248</title>
|
<title>SNAPSHOT-249</title>
|
||||||
<description><![CDATA[
|
<description><![CDATA[
|
||||||
<p>GH-583: Bugfix: The latest snapshots crash when <code>tcsh</code> or <code>fish</code> is used as default shell.</p>
|
<ul>
|
||||||
|
<li>Few msgpack API related fixes.</li>
|
||||||
|
</ul>
|
||||||
]]></description>
|
]]></description>
|
||||||
<releaseNotesLink>
|
<releaseNotesLink>
|
||||||
https://github.com/qvacua/vimr/releases/tag/snapshot/248
|
https://github.com/qvacua/vimr/releases/tag/snapshot/249
|
||||||
</releaseNotesLink>
|
</releaseNotesLink>
|
||||||
<pubDate>2017-12-10T18:03:46.923110</pubDate>
|
<pubDate>2017-12-14T22:38:27.486667</pubDate>
|
||||||
<minimumSystemVersion>10.10.0</minimumSystemVersion>
|
<minimumSystemVersion>10.10.0</minimumSystemVersion>
|
||||||
<enclosure url="https://github.com/qvacua/vimr/releases/download/snapshot/248/VimR-SNAPSHOT-248.tar.bz2"
|
<enclosure url="https://github.com/qvacua/vimr/releases/download/snapshot/249/VimR-SNAPSHOT-249.tar.bz2"
|
||||||
sparkle:version="248"
|
sparkle:version="249"
|
||||||
sparkle:shortVersionString="SNAPSHOT-248"
|
sparkle:shortVersionString="SNAPSHOT-249"
|
||||||
sparkle:dsaSignature="MC0CFGxx4Erl+k2MTnZbXg/mh3vAUH8IAhUA2Vaod7jeEjYBD8CfW1MB46i2Y7A="
|
sparkle:dsaSignature="MC4CFQCHkhA8jl2C6Da99GHJJUT5zqhFEAIVANGOLb3HakOMFgvz7mtiz02MryPP"
|
||||||
length="14729512"
|
length="12158994"
|
||||||
type="application/octet-stream"/>
|
type="application/octet-stream"/>
|
||||||
</item>
|
</item>
|
||||||
</channel>
|
</channel>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
* GH-571: Bugfix: Read-only buffers are considered as modified. For example NERDTree buffers won't trigger the "Please save first" dialog anymore.
|
* GH-571: Bugfix: Read-only buffers are considered as modified. For example NERDTree buffers won't trigger the "Please save first" dialog anymore.
|
||||||
* GH-387: Show all buffers (the same as `:buffers`) in the buffers list
|
* GH-387: Show all buffers (the same as `:buffers`) in the buffers list
|
||||||
* GH-553: Bugfix: Do not crash when there's an error in `init.vim`.
|
* GH-553: Bugfix: Do not crash when there's an error in `init.vim`.
|
||||||
* Some High Sierra related fixes
|
* High Sierra related fixes
|
||||||
- Do not crash on launch
|
- Do not crash on launch
|
||||||
- Too narrow entries in the file browser and buffers list.
|
- Too narrow entries in the file browser and buffers list.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user