mirror of
https://github.com/qvacua/vimr.git
synced 2024-12-25 23:02:35 +03:00
Update neovim
This commit is contained in:
parent
bf89439ad4
commit
52ae48be2a
@ -1 +1 @@
|
|||||||
Subproject commit c503e4192cfc293eb60b708ace175ee8fd6438d4
|
Subproject commit bc7937e337e3c5233092949d33dd6cc09165a59c
|
@ -41,6 +41,190 @@ extension RxNeovimApi {
|
|||||||
|
|
||||||
extension RxNeovimApi {
|
extension RxNeovimApi {
|
||||||
|
|
||||||
|
public func getAutocmds(
|
||||||
|
opts: Dictionary<String, RxNeovimApi.Value>,
|
||||||
|
errWhenBlocked: Bool = true
|
||||||
|
) -> Single<RxNeovimApi.Value> {
|
||||||
|
|
||||||
|
let params: [RxNeovimApi.Value] = [
|
||||||
|
.map(opts.mapToDict({ (Value.string($0), $1) })),
|
||||||
|
]
|
||||||
|
|
||||||
|
func transform(_ value: Value) throws -> RxNeovimApi.Value {
|
||||||
|
guard let result = (Optional(value)) else {
|
||||||
|
throw RxNeovimApi.Error.conversion(type: RxNeovimApi.Value.self)
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
if errWhenBlocked {
|
||||||
|
return self
|
||||||
|
.checkBlocked(
|
||||||
|
self.rpc(method: "nvim_get_autocmds", params: params, expectsReturnValue: true)
|
||||||
|
)
|
||||||
|
.map(transform)
|
||||||
|
}
|
||||||
|
|
||||||
|
return self
|
||||||
|
.rpc(method: "nvim_get_autocmds", params: params, expectsReturnValue: true)
|
||||||
|
.map(transform)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func createAutocmd(
|
||||||
|
event: RxNeovimApi.Value,
|
||||||
|
opts: Dictionary<String, RxNeovimApi.Value>,
|
||||||
|
errWhenBlocked: Bool = true
|
||||||
|
) -> Single<Int> {
|
||||||
|
|
||||||
|
let params: [RxNeovimApi.Value] = [
|
||||||
|
event,
|
||||||
|
.map(opts.mapToDict({ (Value.string($0), $1) })),
|
||||||
|
]
|
||||||
|
|
||||||
|
func transform(_ value: Value) throws -> Int {
|
||||||
|
guard let result = ((value.int64Value == nil ? nil : Int(value.int64Value!))) else {
|
||||||
|
throw RxNeovimApi.Error.conversion(type: Int.self)
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
if errWhenBlocked {
|
||||||
|
return self
|
||||||
|
.checkBlocked(
|
||||||
|
self.rpc(method: "nvim_create_autocmd", params: params, expectsReturnValue: true)
|
||||||
|
)
|
||||||
|
.map(transform)
|
||||||
|
}
|
||||||
|
|
||||||
|
return self
|
||||||
|
.rpc(method: "nvim_create_autocmd", params: params, expectsReturnValue: true)
|
||||||
|
.map(transform)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func delAutocmd(
|
||||||
|
id: Int,
|
||||||
|
expectsReturnValue: Bool = false
|
||||||
|
) -> Completable {
|
||||||
|
|
||||||
|
let params: [RxNeovimApi.Value] = [
|
||||||
|
.int(Int64(id)),
|
||||||
|
]
|
||||||
|
|
||||||
|
if expectsReturnValue {
|
||||||
|
return self
|
||||||
|
.checkBlocked(
|
||||||
|
self.rpc(method: "nvim_del_autocmd", params: params, expectsReturnValue: expectsReturnValue)
|
||||||
|
)
|
||||||
|
.asCompletable()
|
||||||
|
}
|
||||||
|
|
||||||
|
return self
|
||||||
|
.rpc(method: "nvim_del_autocmd", params: params, expectsReturnValue: expectsReturnValue)
|
||||||
|
.asCompletable()
|
||||||
|
}
|
||||||
|
|
||||||
|
public func createAugroup(
|
||||||
|
name: String,
|
||||||
|
opts: Dictionary<String, RxNeovimApi.Value>,
|
||||||
|
errWhenBlocked: Bool = true
|
||||||
|
) -> Single<Int> {
|
||||||
|
|
||||||
|
let params: [RxNeovimApi.Value] = [
|
||||||
|
.string(name),
|
||||||
|
.map(opts.mapToDict({ (Value.string($0), $1) })),
|
||||||
|
]
|
||||||
|
|
||||||
|
func transform(_ value: Value) throws -> Int {
|
||||||
|
guard let result = ((value.int64Value == nil ? nil : Int(value.int64Value!))) else {
|
||||||
|
throw RxNeovimApi.Error.conversion(type: Int.self)
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
if errWhenBlocked {
|
||||||
|
return self
|
||||||
|
.checkBlocked(
|
||||||
|
self.rpc(method: "nvim_create_augroup", params: params, expectsReturnValue: true)
|
||||||
|
)
|
||||||
|
.map(transform)
|
||||||
|
}
|
||||||
|
|
||||||
|
return self
|
||||||
|
.rpc(method: "nvim_create_augroup", params: params, expectsReturnValue: true)
|
||||||
|
.map(transform)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func delAugroupById(
|
||||||
|
id: Int,
|
||||||
|
expectsReturnValue: Bool = false
|
||||||
|
) -> Completable {
|
||||||
|
|
||||||
|
let params: [RxNeovimApi.Value] = [
|
||||||
|
.int(Int64(id)),
|
||||||
|
]
|
||||||
|
|
||||||
|
if expectsReturnValue {
|
||||||
|
return self
|
||||||
|
.checkBlocked(
|
||||||
|
self.rpc(method: "nvim_del_augroup_by_id", params: params, expectsReturnValue: expectsReturnValue)
|
||||||
|
)
|
||||||
|
.asCompletable()
|
||||||
|
}
|
||||||
|
|
||||||
|
return self
|
||||||
|
.rpc(method: "nvim_del_augroup_by_id", params: params, expectsReturnValue: expectsReturnValue)
|
||||||
|
.asCompletable()
|
||||||
|
}
|
||||||
|
|
||||||
|
public func delAugroupByName(
|
||||||
|
name: String,
|
||||||
|
expectsReturnValue: Bool = false
|
||||||
|
) -> Completable {
|
||||||
|
|
||||||
|
let params: [RxNeovimApi.Value] = [
|
||||||
|
.string(name),
|
||||||
|
]
|
||||||
|
|
||||||
|
if expectsReturnValue {
|
||||||
|
return self
|
||||||
|
.checkBlocked(
|
||||||
|
self.rpc(method: "nvim_del_augroup_by_name", params: params, expectsReturnValue: expectsReturnValue)
|
||||||
|
)
|
||||||
|
.asCompletable()
|
||||||
|
}
|
||||||
|
|
||||||
|
return self
|
||||||
|
.rpc(method: "nvim_del_augroup_by_name", params: params, expectsReturnValue: expectsReturnValue)
|
||||||
|
.asCompletable()
|
||||||
|
}
|
||||||
|
|
||||||
|
public func doAutocmd(
|
||||||
|
event: RxNeovimApi.Value,
|
||||||
|
opts: Dictionary<String, RxNeovimApi.Value>,
|
||||||
|
expectsReturnValue: Bool = false
|
||||||
|
) -> Completable {
|
||||||
|
|
||||||
|
let params: [RxNeovimApi.Value] = [
|
||||||
|
event,
|
||||||
|
.map(opts.mapToDict({ (Value.string($0), $1) })),
|
||||||
|
]
|
||||||
|
|
||||||
|
if expectsReturnValue {
|
||||||
|
return self
|
||||||
|
.checkBlocked(
|
||||||
|
self.rpc(method: "nvim_do_autocmd", params: params, expectsReturnValue: expectsReturnValue)
|
||||||
|
)
|
||||||
|
.asCompletable()
|
||||||
|
}
|
||||||
|
|
||||||
|
return self
|
||||||
|
.rpc(method: "nvim_do_autocmd", params: params, expectsReturnValue: expectsReturnValue)
|
||||||
|
.asCompletable()
|
||||||
|
}
|
||||||
|
|
||||||
public func bufLineCount(
|
public func bufLineCount(
|
||||||
buffer: RxNeovimApi.Buffer,
|
buffer: RxNeovimApi.Buffer,
|
||||||
errWhenBlocked: Bool = true
|
errWhenBlocked: Bool = true
|
||||||
@ -233,6 +417,46 @@ extension RxNeovimApi {
|
|||||||
.asCompletable()
|
.asCompletable()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func bufGetText(
|
||||||
|
buffer: RxNeovimApi.Buffer,
|
||||||
|
start_row: Int,
|
||||||
|
start_col: Int,
|
||||||
|
end_row: Int,
|
||||||
|
end_col: Int,
|
||||||
|
opts: Dictionary<String, RxNeovimApi.Value>,
|
||||||
|
errWhenBlocked: Bool = true
|
||||||
|
) -> Single<[String]> {
|
||||||
|
|
||||||
|
let params: [RxNeovimApi.Value] = [
|
||||||
|
.int(Int64(buffer.handle)),
|
||||||
|
.int(Int64(start_row)),
|
||||||
|
.int(Int64(start_col)),
|
||||||
|
.int(Int64(end_row)),
|
||||||
|
.int(Int64(end_col)),
|
||||||
|
.map(opts.mapToDict({ (Value.string($0), $1) })),
|
||||||
|
]
|
||||||
|
|
||||||
|
func transform(_ value: Value) throws -> [String] {
|
||||||
|
guard let result = (value.arrayValue?.compactMap({ v in v.stringValue })) else {
|
||||||
|
throw RxNeovimApi.Error.conversion(type: [String].self)
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
if errWhenBlocked {
|
||||||
|
return self
|
||||||
|
.checkBlocked(
|
||||||
|
self.rpc(method: "nvim_buf_get_text", params: params, expectsReturnValue: true)
|
||||||
|
)
|
||||||
|
.map(transform)
|
||||||
|
}
|
||||||
|
|
||||||
|
return self
|
||||||
|
.rpc(method: "nvim_buf_get_text", params: params, expectsReturnValue: true)
|
||||||
|
.map(transform)
|
||||||
|
}
|
||||||
|
|
||||||
public func bufGetOffset(
|
public func bufGetOffset(
|
||||||
buffer: RxNeovimApi.Buffer,
|
buffer: RxNeovimApi.Buffer,
|
||||||
index: Int,
|
index: Int,
|
||||||
|
Loading…
Reference in New Issue
Block a user