mirror of
https://github.com/qvacua/vimr.git
synced 2024-12-25 23:02:35 +03:00
Merge branch 'develop' into update-neovim
Conflicts: NvimServer NvimView/Sources/NvimView/NvimAutoCommandEvent.generated.swift NvimView/Sources/NvimView/NvimCursorModeShape.generated.swift
This commit is contained in:
commit
69e650b16f
15
DEVELOP.md
15
DEVELOP.md
@ -38,21 +38,6 @@ then continuously invoke the `build_nvimserver_for_local_dev` script.
|
|||||||
|
|
||||||
## How to release
|
## How to release
|
||||||
|
|
||||||
### NvimServer
|
|
||||||
|
|
||||||
* Tag with the name `nvimserver-x.y.z-n`. GitHub actions will build the `x86_64` version,
|
|
||||||
create a release and upload it.
|
|
||||||
* Build the `arm64` version locally and upload it:
|
|
||||||
```bash
|
|
||||||
clean=true build_libnvim=true ./NvimServer/bin/build_nvimserver.sh
|
|
||||||
```
|
|
||||||
* Build a universal binary by the following and upload the artefact:
|
|
||||||
```bash
|
|
||||||
tag=nvimserver-x.y.z-n ./NvimServer/bin/build_release.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
### VimR
|
|
||||||
|
|
||||||
* Set a new version of VimR via
|
* Set a new version of VimR via
|
||||||
```bash
|
```bash
|
||||||
is_snapshot=true ./bin/set_new_versions.sh # for snapshot or
|
is_snapshot=true ./bin/set_new_versions.sh # for snapshot or
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
public class GitUtils {
|
public final class GitUtils {
|
||||||
static func globalGitignoreFileUrl() -> URL? {
|
static func globalGitignoreFileUrl() -> URL? {
|
||||||
guard let path = shellCommandOutput(
|
guard let path = shellCommandOutput(
|
||||||
"git config --get core.excludesFile",
|
"git config --get core.excludesFile",
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
public class Ignore {
|
public final class Ignore {
|
||||||
public static let defaultIgnoreFileNames = [".ignore", ".gitignore"]
|
public static let defaultIgnoreFileNames = [".ignore", ".gitignore"]
|
||||||
public static let vcsFolderPattern = [".svn/", ".hg/", ".git/"]
|
public static let vcsFolderPattern = [".svn/", ".hg/", ".git/"]
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Cocoa
|
import Cocoa
|
||||||
|
|
||||||
class KeyUtils {
|
final class KeyUtils {
|
||||||
static func isControlCode(key: String) -> Bool {
|
static func isControlCode(key: String) -> Bool {
|
||||||
guard key.count == 1 else {
|
guard key.count == 1 else {
|
||||||
return false
|
return false
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
|
<<<<<<< HEAD
|
||||||
// Auto generated for nvim v0.8.0-dev
|
// Auto generated for nvim v0.8.0-dev
|
||||||
|
=======
|
||||||
|
// Auto generated for nvim v0.7.2
|
||||||
|
>>>>>>> develop
|
||||||
// See bin/generate_autocmds.py
|
// See bin/generate_autocmds.py
|
||||||
|
|
||||||
enum NvimAutoCommandEvent: Int {
|
enum NvimAutoCommandEvent: Int {
|
||||||
|
@ -25,7 +25,7 @@ public protocol NvimViewDelegate: AnyObject {
|
|||||||
func isMenuItemKeyEquivalent(_: NSEvent) -> Bool
|
func isMenuItemKeyEquivalent(_: NSEvent) -> Bool
|
||||||
}
|
}
|
||||||
|
|
||||||
public class NvimView: NSView,
|
public final class NvimView: NSView,
|
||||||
UiBridgeConsumer,
|
UiBridgeConsumer,
|
||||||
NSUserInterfaceValidations,
|
NSUserInterfaceValidations,
|
||||||
NSTextInputClient
|
NSTextInputClient
|
||||||
|
@ -41,7 +41,7 @@ protocol UiBridgeConsumer: AnyObject {
|
|||||||
func suspend()
|
func suspend()
|
||||||
}
|
}
|
||||||
|
|
||||||
class UiBridge {
|
final class UiBridge {
|
||||||
weak var consumer: UiBridgeConsumer?
|
weak var consumer: UiBridgeConsumer?
|
||||||
|
|
||||||
init(uuid: UUID, config: NvimView.Config) {
|
init(uuid: UUID, config: NvimView.Config) {
|
||||||
|
@ -53,7 +53,7 @@ git submodule update
|
|||||||
xcode-select --install # install the Xcode command line tools, if you haven't already
|
xcode-select --install # install the Xcode command line tools, if you haven't already
|
||||||
brew bundle
|
brew bundle
|
||||||
|
|
||||||
code_sign=false use_carthage_cache=false ./bin/build_vimr.sh
|
clean=true notarize=false use_carthage_cache=false ./bin/build_vimr.sh
|
||||||
# VimR.app will be placed in ./build/Build/Products/Release/
|
# VimR.app will be placed in ./build/Build/Products/Release/
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
import Cocoa
|
import Cocoa
|
||||||
|
|
||||||
class DraggingSingleRowStackView: NSStackView {
|
final class DraggingSingleRowStackView: NSStackView {
|
||||||
var postDraggingHandler: ((NSStackView, NSView) -> Void)?
|
var postDraggingHandler: ((NSStackView, NSView) -> Void)?
|
||||||
|
|
||||||
override func mouseDragged(with event: NSEvent) {
|
override func mouseDragged(with event: NSEvent) {
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Cocoa
|
import Cocoa
|
||||||
|
|
||||||
class HorizontalOnlyScrollView: NSScrollView {
|
final class HorizontalOnlyScrollView: NSScrollView {
|
||||||
// Needed to be able to override scrollWheel(with:)
|
// Needed to be able to override scrollWheel(with:)
|
||||||
// https://stackoverflow.com/a/31201614
|
// https://stackoverflow.com/a/31201614
|
||||||
override static var isCompatibleWithResponsiveScrolling: Bool { true }
|
override static var isCompatibleWithResponsiveScrolling: Bool { true }
|
||||||
|
@ -13,7 +13,7 @@ struct TabPosition: OptionSet {
|
|||||||
let rawValue: Int
|
let rawValue: Int
|
||||||
}
|
}
|
||||||
|
|
||||||
class Tab<Rep: TabRepresentative>: NSView {
|
final class Tab<Rep: TabRepresentative>: NSView {
|
||||||
var title: String { self.tabRepresentative.title }
|
var title: String { self.tabRepresentative.title }
|
||||||
|
|
||||||
var tabRepresentative: Rep {
|
var tabRepresentative: Rep {
|
||||||
|
@ -11,7 +11,7 @@ public protocol TabRepresentative: Hashable {
|
|||||||
var isSelected: Bool { get }
|
var isSelected: Bool { get }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TabBar<Rep: TabRepresentative>: NSView {
|
public final class TabBar<Rep: TabRepresentative>: NSView {
|
||||||
public typealias TabCallback = (Int, Rep, [Rep]) -> Void
|
public typealias TabCallback = (Int, Rep, [Rep]) -> Void
|
||||||
|
|
||||||
public var theme: Theme { self._theme }
|
public var theme: Theme { self._theme }
|
||||||
|
@ -1127,7 +1127,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 = 20220618.161750;
|
CURRENT_PROJECT_VERSION = 20220626.182832;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
ENABLE_TESTABILITY = YES;
|
ENABLE_TESTABILITY = YES;
|
||||||
@ -1188,7 +1188,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 = 20220618.161750;
|
CURRENT_PROJECT_VERSION = 20220626.182832;
|
||||||
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;
|
||||||
@ -1217,7 +1217,7 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 20220618.161750;
|
CURRENT_PROJECT_VERSION = 20220626.182832;
|
||||||
DEFINES_MODULE = YES;
|
DEFINES_MODULE = YES;
|
||||||
IBC_MODULE = VimR;
|
IBC_MODULE = VimR;
|
||||||
INFOPLIST_FILE = VimR/Info.plist;
|
INFOPLIST_FILE = VimR/Info.plist;
|
||||||
@ -1239,7 +1239,7 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 20220618.161750;
|
CURRENT_PROJECT_VERSION = 20220626.182832;
|
||||||
DEFINES_MODULE = YES;
|
DEFINES_MODULE = YES;
|
||||||
IBC_MODULE = VimR;
|
IBC_MODULE = VimR;
|
||||||
INFOPLIST_FILE = VimR/Info.plist;
|
INFOPLIST_FILE = VimR/Info.plist;
|
||||||
|
@ -57,6 +57,16 @@
|
|||||||
savedToolIdentifier = ""
|
savedToolIdentifier = ""
|
||||||
useCustomWorkingDirectory = "NO"
|
useCustomWorkingDirectory = "NO"
|
||||||
debugDocumentVersioning = "YES">
|
debugDocumentVersioning = "YES">
|
||||||
|
<BuildableProductRunnable
|
||||||
|
runnableDebuggingMode = "0">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "4BEBA5041CFF374B00673FDF"
|
||||||
|
BuildableName = "VimR.app"
|
||||||
|
BlueprintName = "VimR"
|
||||||
|
ReferencedContainer = "container:VimR.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildableProductRunnable>
|
||||||
</ProfileAction>
|
</ProfileAction>
|
||||||
<AnalyzeAction
|
<AnalyzeAction
|
||||||
buildConfiguration = "Debug">
|
buildConfiguration = "Debug">
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class AdvancedPrefReducer: ReducerType {
|
final class AdvancedPrefReducer: ReducerType {
|
||||||
typealias StateType = AppState
|
typealias StateType = AppState
|
||||||
typealias ActionType = AdvancedPref.Action
|
typealias ActionType = AdvancedPref.Action
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ import Cocoa
|
|||||||
import PureLayout
|
import PureLayout
|
||||||
import RxSwift
|
import RxSwift
|
||||||
|
|
||||||
class AdvancedPref: PrefPane, UiComponent, NSTextFieldDelegate {
|
final class AdvancedPref: PrefPane, UiComponent, NSTextFieldDelegate {
|
||||||
typealias StateType = AppState
|
typealias StateType = AppState
|
||||||
|
|
||||||
enum Action {
|
enum Action {
|
||||||
|
@ -14,7 +14,7 @@ import Sparkle
|
|||||||
|
|
||||||
let debugMenuItemIdentifier = NSUserInterfaceItemIdentifier("debug-menu-item")
|
let debugMenuItemIdentifier = NSUserInterfaceItemIdentifier("debug-menu-item")
|
||||||
|
|
||||||
class UpdaterDelegate: NSObject, SPUUpdaterDelegate {
|
final class UpdaterDelegate: NSObject, SPUUpdaterDelegate {
|
||||||
var useSnapshotChannel = false
|
var useSnapshotChannel = false
|
||||||
|
|
||||||
func feedURLString(for _: SPUUpdater) -> String? {
|
func feedURLString(for _: SPUUpdater) -> String? {
|
||||||
@ -27,7 +27,7 @@ class UpdaterDelegate: NSObject, SPUUpdaterDelegate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NSApplicationMain
|
@NSApplicationMain
|
||||||
class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDelegate {
|
final class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDelegate {
|
||||||
struct OpenConfig {
|
struct OpenConfig {
|
||||||
var urls: [URL]
|
var urls: [URL]
|
||||||
var cwd: URL
|
var cwd: URL
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class AppDelegateReducer: ReducerType {
|
final class AppDelegateReducer: ReducerType {
|
||||||
typealias StateType = AppState
|
typealias StateType = AppState
|
||||||
typealias ActionType = AppDelegate.Action
|
typealias ActionType = AppDelegate.Action
|
||||||
|
|
||||||
|
@ -8,7 +8,9 @@ import NvimView
|
|||||||
import PureLayout
|
import PureLayout
|
||||||
import RxSwift
|
import RxSwift
|
||||||
|
|
||||||
class AppearancePref: PrefPane, NSComboBoxDelegate, NSControlTextEditingDelegate, NSFontChanging {
|
final class AppearancePref: PrefPane, NSComboBoxDelegate, NSControlTextEditingDelegate,
|
||||||
|
NSFontChanging
|
||||||
|
{
|
||||||
typealias StateType = AppState
|
typealias StateType = AppState
|
||||||
|
|
||||||
enum Action {
|
enum Action {
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class AppearancePrefReducer: ReducerType {
|
final class AppearancePrefReducer: ReducerType {
|
||||||
typealias StateType = AppState
|
typealias StateType = AppState
|
||||||
typealias ActionType = AppearancePref.Action
|
typealias ActionType = AppearancePref.Action
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
import Cocoa
|
import Cocoa
|
||||||
import Sparkle
|
import Sparkle
|
||||||
|
|
||||||
class Application: NSApplication {
|
final class Application: NSApplication {
|
||||||
override init() {
|
override init() {
|
||||||
setPressAndHoldSetting()
|
setPressAndHoldSetting()
|
||||||
super.init()
|
super.init()
|
||||||
|
@ -9,7 +9,7 @@ import NvimView
|
|||||||
import PureLayout
|
import PureLayout
|
||||||
import RxSwift
|
import RxSwift
|
||||||
|
|
||||||
class BuffersList: NSView,
|
final class BuffersList: NSView,
|
||||||
UiComponent,
|
UiComponent,
|
||||||
NSTableViewDataSource,
|
NSTableViewDataSource,
|
||||||
NSTableViewDelegate,
|
NSTableViewDelegate,
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class BuffersListReducer: ReducerType {
|
final class BuffersListReducer: ReducerType {
|
||||||
typealias StateType = MainWindow.State
|
typealias StateType = MainWindow.State
|
||||||
typealias ActionType = UuidAction<BuffersList.Action>
|
typealias ActionType = UuidAction<BuffersList.Action>
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ extension ReduxTypes {
|
|||||||
typealias ActionType = AnyAction
|
typealias ActionType = AnyAction
|
||||||
}
|
}
|
||||||
|
|
||||||
class Context: ReduxContext {
|
final class Context: ReduxContext {
|
||||||
// The following should only be used when Cmd-Q'ing
|
// The following should only be used when Cmd-Q'ing
|
||||||
func savePrefs() { self.prefMiddleware.applyPref(from: self.state) }
|
func savePrefs() { self.prefMiddleware.applyPref(from: self.state) }
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import CoreData
|
|||||||
import Foundation
|
import Foundation
|
||||||
import os
|
import os
|
||||||
|
|
||||||
class CoreDataStack {
|
final class CoreDataStack {
|
||||||
enum Error: Swift.Error {
|
enum Error: Swift.Error {
|
||||||
case noCacheFolder
|
case noCacheFolder
|
||||||
case pathDoesNotExit
|
case pathDoesNotExit
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Cocoa
|
import Cocoa
|
||||||
|
|
||||||
class CssUtils {
|
final class CssUtils {
|
||||||
static let cssOverridesTemplate: String = try! String(
|
static let cssOverridesTemplate: String = try! String(
|
||||||
contentsOf: Resources.cssOverridesTemplateUrl
|
contentsOf: Resources.cssOverridesTemplateUrl
|
||||||
)
|
)
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import RxSwift
|
import RxSwift
|
||||||
|
|
||||||
class Debouncer<T> {
|
final class Debouncer<T> {
|
||||||
let observable: Observable<T>
|
let observable: Observable<T>
|
||||||
|
|
||||||
init(interval: RxTimeInterval) {
|
init(interval: RxTimeInterval) {
|
||||||
|
@ -10,7 +10,7 @@ import PureLayout
|
|||||||
import RxSwift
|
import RxSwift
|
||||||
import Workspace
|
import Workspace
|
||||||
|
|
||||||
class FileBrowser: NSView,
|
final class FileBrowser: NSView,
|
||||||
UiComponent
|
UiComponent
|
||||||
{
|
{
|
||||||
typealias StateType = MainWindow.State
|
typealias StateType = MainWindow.State
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class FileBrowserReducer: ReducerType {
|
final class FileBrowserReducer: ReducerType {
|
||||||
typealias StateType = MainWindow.State
|
typealias StateType = MainWindow.State
|
||||||
typealias ActionType = UuidAction<FileBrowser.Action>
|
typealias ActionType = UuidAction<FileBrowser.Action>
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import EonilFSEvents
|
|||||||
import Foundation
|
import Foundation
|
||||||
import os
|
import os
|
||||||
|
|
||||||
class FileMonitor {
|
final class FileMonitor {
|
||||||
static let fileSystemEventsLatency = 1.0
|
static let fileSystemEventsLatency = 1.0
|
||||||
|
|
||||||
private(set) var urlToMonitor = FileUtils.userHomeUrl
|
private(set) var urlToMonitor = FileUtils.userHomeUrl
|
||||||
|
@ -11,7 +11,7 @@ import os
|
|||||||
import PureLayout
|
import PureLayout
|
||||||
import RxSwift
|
import RxSwift
|
||||||
|
|
||||||
class FileOutlineView: NSOutlineView,
|
final class FileOutlineView: NSOutlineView,
|
||||||
UiComponent,
|
UiComponent,
|
||||||
NSOutlineViewDelegate,
|
NSOutlineViewDelegate,
|
||||||
ThemedView
|
ThemedView
|
||||||
@ -495,7 +495,7 @@ extension FileOutlineView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Node: NSObject, Comparable {
|
final class Node: NSObject, Comparable {
|
||||||
static func < (lhs: Node, rhs: Node) -> Bool { lhs.displayName < rhs.displayName }
|
static func < (lhs: Node, rhs: Node) -> Bool { lhs.displayName < rhs.displayName }
|
||||||
|
|
||||||
@objc dynamic var url: URL
|
@objc dynamic var url: URL
|
||||||
|
@ -10,7 +10,7 @@ import Ignore
|
|||||||
import os
|
import os
|
||||||
import Misc
|
import Misc
|
||||||
|
|
||||||
class FuzzySearchService {
|
final class FuzzySearchService {
|
||||||
typealias ScoredUrlsCallback = ([ScoredUrl]) -> Void
|
typealias ScoredUrlsCallback = ([ScoredUrl]) -> Void
|
||||||
|
|
||||||
var root: URL {
|
var root: URL {
|
||||||
|
@ -7,7 +7,7 @@ import Cocoa
|
|||||||
import PureLayout
|
import PureLayout
|
||||||
import RxSwift
|
import RxSwift
|
||||||
|
|
||||||
class GeneralPref: PrefPane, UiComponent, NSTextFieldDelegate {
|
final class GeneralPref: PrefPane, UiComponent, NSTextFieldDelegate {
|
||||||
typealias StateType = AppState
|
typealias StateType = AppState
|
||||||
|
|
||||||
enum Action {
|
enum Action {
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class GeneralPrefReducer: ReducerType {
|
final class GeneralPrefReducer: ReducerType {
|
||||||
typealias StateType = AppState
|
typealias StateType = AppState
|
||||||
typealias ActionType = GeneralPref.Action
|
typealias ActionType = GeneralPref.Action
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
import Commons
|
import Commons
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class HtmlPreviewMiddleware: MiddlewareType {
|
final class HtmlPreviewMiddleware: MiddlewareType {
|
||||||
static func selectFirstHtmlUrl(uuid: UUID) -> URL {
|
static func selectFirstHtmlUrl(uuid: UUID) -> URL {
|
||||||
FileUtils.tempDir().appendingPathComponent("\(uuid)-select-first.html")
|
FileUtils.tempDir().appendingPathComponent("\(uuid)-select-first.html")
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ import Workspace
|
|||||||
|
|
||||||
private let fileSystemEventsLatency = 1.0
|
private let fileSystemEventsLatency = 1.0
|
||||||
|
|
||||||
class HtmlPreviewTool: NSView, UiComponent, WKNavigationDelegate {
|
final class HtmlPreviewTool: NSView, UiComponent, WKNavigationDelegate {
|
||||||
enum Action {
|
enum Action {
|
||||||
case selectHtmlFile(URL)
|
case selectHtmlFile(URL)
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class HtmlPreviewReducer {
|
final class HtmlPreviewReducer {
|
||||||
static let basePath = "tools/html-preview"
|
static let basePath = "tools/html-preview"
|
||||||
|
|
||||||
static func serverUrl(baseUrl: URL, uuid: UUID) -> URL {
|
static func serverUrl(baseUrl: URL, uuid: UUID) -> URL {
|
||||||
|
@ -7,7 +7,7 @@ import Foundation
|
|||||||
import os
|
import os
|
||||||
import Swifter
|
import Swifter
|
||||||
|
|
||||||
class HttpServerMiddleware {
|
final class HttpServerMiddleware {
|
||||||
let htmlPreviewTool: HtmlPreviewToolMiddleware
|
let htmlPreviewTool: HtmlPreviewToolMiddleware
|
||||||
let htmlPreviewMainWindow: HtmlPreviewMainWindowMiddleware
|
let htmlPreviewMainWindow: HtmlPreviewMainWindowMiddleware
|
||||||
let markdownPreview: MarkdownPreviewMiddleware
|
let markdownPreview: MarkdownPreviewMiddleware
|
||||||
|
@ -6,7 +6,7 @@ import Foundation
|
|||||||
import Ignore
|
import Ignore
|
||||||
import OrderedCollections
|
import OrderedCollections
|
||||||
|
|
||||||
class IgnoreService {
|
final class IgnoreService {
|
||||||
var root: URL {
|
var root: URL {
|
||||||
didSet {
|
didSet {
|
||||||
self.rootIgnore = Ignore(base: self.root, parent: Ignore.globalGitignore(base: self.root))
|
self.rootIgnore = Ignore(base: self.root, parent: Ignore.globalGitignore(base: self.root))
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
import Cocoa
|
import Cocoa
|
||||||
import PureLayout
|
import PureLayout
|
||||||
|
|
||||||
class ImageAndTextTableCell: NSTableCellView {
|
final class ImageAndTextTableCell: NSTableCellView {
|
||||||
private let _textField = NSTextField(forAutoLayout: ())
|
private let _textField = NSTextField(forAutoLayout: ())
|
||||||
private let _imageView = NSImageView(forAutoLayout: ())
|
private let _imageView = NSImageView(forAutoLayout: ())
|
||||||
|
|
||||||
|
@ -1224,7 +1224,7 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>0.40.0</string>
|
<string>0.41.0</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleURLTypes</key>
|
<key>CFBundleURLTypes</key>
|
||||||
@ -1241,7 +1241,7 @@
|
|||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>20220618.161750</string>
|
<string>20220626.182832</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>
|
||||||
|
@ -7,7 +7,7 @@ import Cocoa
|
|||||||
import PureLayout
|
import PureLayout
|
||||||
import RxSwift
|
import RxSwift
|
||||||
|
|
||||||
class KeysPref: PrefPane, UiComponent, NSTextFieldDelegate {
|
final class KeysPref: PrefPane, UiComponent, NSTextFieldDelegate {
|
||||||
typealias StateType = AppState
|
typealias StateType = AppState
|
||||||
|
|
||||||
enum Action {
|
enum Action {
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class KeysPrefReducer: ReducerType {
|
final class KeysPrefReducer: ReducerType {
|
||||||
typealias StateType = AppState
|
typealias StateType = AppState
|
||||||
typealias ActionType = KeysPref.Action
|
typealias ActionType = KeysPref.Action
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ import RxSwift
|
|||||||
import Tabs
|
import Tabs
|
||||||
import Workspace
|
import Workspace
|
||||||
|
|
||||||
class MainWindow: NSObject,
|
final class MainWindow: NSObject,
|
||||||
UiComponent,
|
UiComponent,
|
||||||
NSWindowDelegate,
|
NSWindowDelegate,
|
||||||
NSUserInterfaceValidations,
|
NSUserInterfaceValidations,
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class MainWindowReducer: ReducerType {
|
final class MainWindowReducer: ReducerType {
|
||||||
typealias StateType = MainWindow.State
|
typealias StateType = MainWindow.State
|
||||||
typealias ActionType = UuidAction<MainWindow.Action>
|
typealias ActionType = UuidAction<MainWindow.Action>
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ import Down
|
|||||||
import Foundation
|
import Foundation
|
||||||
import os
|
import os
|
||||||
|
|
||||||
class MarkdownPreviewMiddleware {
|
final class MarkdownPreviewMiddleware {
|
||||||
let markdownTool: MarkdownToolMiddleware
|
let markdownTool: MarkdownToolMiddleware
|
||||||
let mainWindow: MainWindowMiddleware
|
let mainWindow: MainWindowMiddleware
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ import Cocoa
|
|||||||
import Commons
|
import Commons
|
||||||
import NvimView
|
import NvimView
|
||||||
|
|
||||||
class MarkdownPreviewReducer {
|
final class MarkdownPreviewReducer {
|
||||||
private static func previewState(
|
private static func previewState(
|
||||||
for uuid: UUID,
|
for uuid: UUID,
|
||||||
baseUrl: URL,
|
baseUrl: URL,
|
||||||
|
@ -10,7 +10,7 @@ import PureLayout
|
|||||||
import RxSwift
|
import RxSwift
|
||||||
import WebKit
|
import WebKit
|
||||||
|
|
||||||
class MarkdownTool: NSView, UiComponent, WKNavigationDelegate {
|
final class MarkdownTool: NSView, UiComponent, WKNavigationDelegate {
|
||||||
enum Action {
|
enum Action {
|
||||||
case refreshNow
|
case refreshNow
|
||||||
case reverseSearch(to: Position)
|
case reverseSearch(to: Position)
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class MarkdownToolReducer: ReducerType {
|
final class MarkdownToolReducer: ReducerType {
|
||||||
typealias StateType = MainWindow.State
|
typealias StateType = MainWindow.State
|
||||||
typealias ActionType = UuidAction<MarkdownTool.Action>
|
typealias ActionType = UuidAction<MarkdownTool.Action>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Cocoa
|
import Cocoa
|
||||||
|
|
||||||
class OpenQuicklyFileViewRow: NSTableRowView {
|
final class OpenQuicklyFileViewRow: NSTableRowView {
|
||||||
override func drawSelection(in dirtyRect: NSRect) {
|
override func drawSelection(in dirtyRect: NSRect) {
|
||||||
if self.isSelected {
|
if self.isSelected {
|
||||||
NSColor.selectedControlColor.set()
|
NSColor.selectedControlColor.set()
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import RxSwift
|
import RxSwift
|
||||||
|
|
||||||
class OpenQuicklyReducer: ReducerType {
|
final class OpenQuicklyReducer: ReducerType {
|
||||||
typealias StateType = AppState
|
typealias StateType = AppState
|
||||||
typealias ActionType = OpenQuicklyWindow.Action
|
typealias ActionType = OpenQuicklyWindow.Action
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ import PureLayout
|
|||||||
import RxCocoa
|
import RxCocoa
|
||||||
import RxSwift
|
import RxSwift
|
||||||
|
|
||||||
class OpenQuicklyWindow: NSObject,
|
final class OpenQuicklyWindow: NSObject,
|
||||||
UiComponent,
|
UiComponent,
|
||||||
NSWindowDelegate,
|
NSWindowDelegate,
|
||||||
NSTextFieldDelegate,
|
NSTextFieldDelegate,
|
||||||
|
@ -7,7 +7,7 @@ import Cocoa
|
|||||||
import DictionaryCoding
|
import DictionaryCoding
|
||||||
import os
|
import os
|
||||||
|
|
||||||
class PrefMiddleware: MiddlewareType {
|
final class PrefMiddleware: MiddlewareType {
|
||||||
typealias StateType = AppState
|
typealias StateType = AppState
|
||||||
typealias ActionType = AnyAction
|
typealias ActionType = AnyAction
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
//
|
/**
|
||||||
// Created by Tae Won Ha on 2/27/17.
|
* Tae Won Ha - http://taewon.de - @hataewon
|
||||||
// Copyright (c) 2017 Tae Won Ha. All rights reserved.
|
* See LICENSE
|
||||||
//
|
*/
|
||||||
|
|
||||||
import Cocoa
|
import Cocoa
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
import Cocoa
|
import Cocoa
|
||||||
import NvimView
|
import NvimView
|
||||||
|
|
||||||
class PrefUtils {
|
final class PrefUtils {
|
||||||
static func value<T>(from dict: [String: Any], for key: String) -> T? {
|
static func value<T>(from dict: [String: Any], for key: String) -> T? {
|
||||||
dict[key] as? T
|
dict[key] as? T
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ import Cocoa
|
|||||||
import PureLayout
|
import PureLayout
|
||||||
import RxSwift
|
import RxSwift
|
||||||
|
|
||||||
class PrefWindow: NSObject,
|
final class PrefWindow: NSObject,
|
||||||
UiComponent,
|
UiComponent,
|
||||||
NSWindowDelegate,
|
NSWindowDelegate,
|
||||||
NSTableViewDataSource, NSTableViewDelegate
|
NSTableViewDataSource, NSTableViewDelegate
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class PrefWindowReducer: ReducerType {
|
final class PrefWindowReducer: ReducerType {
|
||||||
typealias StateType = AppState
|
typealias StateType = AppState
|
||||||
typealias ActionType = PrefWindow.Action
|
typealias ActionType = PrefWindow.Action
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class Resources {
|
final class Resources {
|
||||||
static let resourceUrl = Bundle.main.resourceURL!
|
static let resourceUrl = Bundle.main.resourceURL!
|
||||||
static let previewUrl = resourceUrl.appendingPathComponent("preview")
|
static let previewUrl = resourceUrl.appendingPathComponent("preview")
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class RpcAppearanceEpic: EpicType {
|
final class RpcAppearanceEpic: EpicType {
|
||||||
typealias StateType = AppState
|
typealias StateType = AppState
|
||||||
typealias ActionType = UuidAction<MainWindow.Action>
|
typealias ActionType = UuidAction<MainWindow.Action>
|
||||||
typealias EmitActionType = AppearancePref.Action
|
typealias EmitActionType = AppearancePref.Action
|
||||||
|
@ -10,7 +10,7 @@ extension Observable {
|
|||||||
func completableSubject() -> CompletableSubject<Element> { CompletableSubject(source: self) }
|
func completableSubject() -> CompletableSubject<Element> { CompletableSubject(source: self) }
|
||||||
}
|
}
|
||||||
|
|
||||||
class CompletableSubject<T> {
|
final class CompletableSubject<T> {
|
||||||
func asObservable() -> Observable<T> { self.subject.asObservable() }
|
func asObservable() -> Observable<T> { self.subject.asObservable() }
|
||||||
|
|
||||||
init(source: Observable<T>) {
|
init(source: Observable<T>) {
|
||||||
|
@ -40,7 +40,7 @@ protocol ReduxContextType {
|
|||||||
/**
|
/**
|
||||||
`typealias` `StateType` and `ActionType` either within the class definition or in an extension.
|
`typealias` `StateType` and `ActionType` either within the class definition or in an extension.
|
||||||
*/
|
*/
|
||||||
class ReduxTypes: ReduxContextType {}
|
final class ReduxTypes: ReduxContextType {}
|
||||||
|
|
||||||
protocol ReducerType {
|
protocol ReducerType {
|
||||||
associatedtype StateType
|
associatedtype StateType
|
||||||
@ -110,7 +110,7 @@ protocol UiComponent {
|
|||||||
init(source: Observable<StateType>, emitter: ActionEmitter, state: StateType)
|
init(source: Observable<StateType>, emitter: ActionEmitter, state: StateType)
|
||||||
}
|
}
|
||||||
|
|
||||||
class ActionEmitter {
|
final class ActionEmitter {
|
||||||
var observable: Observable<ReduxTypes.ActionType> {
|
var observable: Observable<ReduxTypes.ActionType> {
|
||||||
self.subject.asObservable().observe(on: self.scheduler)
|
self.subject.asObservable().observe(on: self.scheduler)
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Cocoa
|
import Cocoa
|
||||||
|
|
||||||
class ShortcutItem: NSObject, Comparable {
|
final class ShortcutItem: NSObject, Comparable {
|
||||||
static func < (lhs: ShortcutItem, rhs: ShortcutItem) -> Bool { lhs.title < rhs.title }
|
static func < (lhs: ShortcutItem, rhs: ShortcutItem) -> Bool { lhs.title < rhs.title }
|
||||||
|
|
||||||
@objc dynamic var title: String
|
@objc dynamic var title: String
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
import Cocoa
|
import Cocoa
|
||||||
import ShortcutRecorder
|
import ShortcutRecorder
|
||||||
|
|
||||||
class ShortcutService {
|
final class ShortcutService {
|
||||||
func update(shortcuts: [Shortcut]) {
|
func update(shortcuts: [Shortcut]) {
|
||||||
self.shortcuts = shortcuts
|
self.shortcuts = shortcuts
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ import PureLayout
|
|||||||
import RxSwift
|
import RxSwift
|
||||||
import ShortcutRecorder
|
import ShortcutRecorder
|
||||||
|
|
||||||
class ShortcutsPref: PrefPane,
|
final class ShortcutsPref: PrefPane,
|
||||||
UiComponent,
|
UiComponent,
|
||||||
NSOutlineViewDelegate,
|
NSOutlineViewDelegate,
|
||||||
RecorderControlDelegate
|
RecorderControlDelegate
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
import Cocoa
|
import Cocoa
|
||||||
import ShortcutRecorder
|
import ShortcutRecorder
|
||||||
|
|
||||||
class ShortcutTableRow: NSTableRowView {
|
final class ShortcutTableRow: NSTableRowView {
|
||||||
init(withIdentifier identifier: String) {
|
init(withIdentifier identifier: String) {
|
||||||
super.init(frame: .zero)
|
super.init(frame: .zero)
|
||||||
self.identifier = NSUserInterfaceItemIdentifier(identifier)
|
self.identifier = NSUserInterfaceItemIdentifier(identifier)
|
||||||
@ -18,7 +18,7 @@ class ShortcutTableRow: NSTableRowView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class ShortcutTableCell: NSTableCellView {
|
final class ShortcutTableCell: NSTableCellView {
|
||||||
static let font = NSFont.systemFont(ofSize: 13)
|
static let font = NSFont.systemFont(ofSize: 13)
|
||||||
static let boldFont = NSFont.boldSystemFont(ofSize: 13)
|
static let boldFont = NSFont.boldSystemFont(ofSize: 13)
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ protocol ThemedView: AnyObject {
|
|||||||
var lastThemeMark: Token { get }
|
var lastThemeMark: Token { get }
|
||||||
}
|
}
|
||||||
|
|
||||||
class ThemedTableRow: NSTableRowView {
|
final class ThemedTableRow: NSTableRowView {
|
||||||
weak var triangleView: NSButton?
|
weak var triangleView: NSButton?
|
||||||
var themeToken: Token
|
var themeToken: Token
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ class ThemedTableRow: NSTableRowView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override open func drawBackground(in dirtyRect: NSRect) {
|
override func drawBackground(in dirtyRect: NSRect) {
|
||||||
if let cell = self.view(atColumn: 0) as? ThemedTableCell {
|
if let cell = self.view(atColumn: 0) as? ThemedTableCell {
|
||||||
if cell.isDir {
|
if cell.isDir {
|
||||||
cell.textField?.textColor
|
cell.textField?.textColor
|
||||||
@ -62,7 +62,7 @@ class ThemedTableRow: NSTableRowView {
|
|||||||
required init?(coder _: NSCoder) { fatalError("init(coder:) has not been implemented") }
|
required init?(coder _: NSCoder) { fatalError("init(coder:) has not been implemented") }
|
||||||
}
|
}
|
||||||
|
|
||||||
class ThemedTableCell: NSTableCellView {
|
final class ThemedTableCell: NSTableCellView {
|
||||||
// MARK: - API
|
// MARK: - API
|
||||||
|
|
||||||
static let font = NSFont.systemFont(ofSize: 12)
|
static let font = NSFont.systemFont(ofSize: 12)
|
||||||
|
@ -7,7 +7,7 @@ import Cocoa
|
|||||||
import PureLayout
|
import PureLayout
|
||||||
import RxSwift
|
import RxSwift
|
||||||
|
|
||||||
class ToolsPref: PrefPane, UiComponent {
|
final class ToolsPref: PrefPane, UiComponent {
|
||||||
typealias StateType = AppState
|
typealias StateType = AppState
|
||||||
|
|
||||||
enum Action {
|
enum Action {
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class ToolsPrefReducer: ReducerType {
|
final class ToolsPrefReducer: ReducerType {
|
||||||
typealias StateType = AppState
|
typealias StateType = AppState
|
||||||
typealias ActionType = ToolsPref.Action
|
typealias ActionType = ToolsPref.Action
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ protocol UuidTagged {
|
|||||||
var uuid: UUID { get }
|
var uuid: UUID { get }
|
||||||
}
|
}
|
||||||
|
|
||||||
class UuidAction<A>: UuidTagged, CustomStringConvertible {
|
final class UuidAction<A>: UuidTagged, CustomStringConvertible {
|
||||||
let uuid: UUID
|
let uuid: UUID
|
||||||
let payload: A
|
let payload: A
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ class UuidAction<A>: UuidTagged, CustomStringConvertible {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class UuidState<S>: UuidTagged, CustomStringConvertible {
|
final class UuidState<S>: UuidTagged, CustomStringConvertible {
|
||||||
let uuid: UUID
|
let uuid: UUID
|
||||||
let payload: S
|
let payload: S
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ class UuidState<S>: UuidTagged, CustomStringConvertible {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Token: Hashable, CustomStringConvertible {
|
final class Token: Hashable, CustomStringConvertible {
|
||||||
func hash(into hasher: inout Hasher) {
|
func hash(into hasher: inout Hasher) {
|
||||||
hasher.combine(ObjectIdentifier(self))
|
hasher.combine(ObjectIdentifier(self))
|
||||||
}
|
}
|
||||||
@ -58,7 +58,7 @@ class Token: Hashable, CustomStringConvertible {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Marked<T>: CustomStringConvertible {
|
final class Marked<T>: CustomStringConvertible {
|
||||||
let mark: Token
|
let mark: Token
|
||||||
let payload: T
|
let payload: T
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ class Marked<T>: CustomStringConvertible {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class UiComponentTemplate: UiComponent {
|
final class UiComponentTemplate: UiComponent {
|
||||||
typealias StateType = State
|
typealias StateType = State
|
||||||
|
|
||||||
struct State {
|
struct State {
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
import Cocoa
|
import Cocoa
|
||||||
import RxSwift
|
import RxSwift
|
||||||
|
|
||||||
class UiRoot: UiComponent {
|
final class UiRoot: UiComponent {
|
||||||
typealias StateType = AppState
|
typealias StateType = AppState
|
||||||
|
|
||||||
enum Action {
|
enum Action {
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class UiRootReducer: ReducerType {
|
final class UiRootReducer: ReducerType {
|
||||||
typealias StateType = AppState
|
typealias StateType = AppState
|
||||||
typealias ActionType = UiRoot.Action
|
typealias ActionType = UiRoot.Action
|
||||||
|
|
||||||
|
@ -15,10 +15,10 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>BNDL</string>
|
<string>BNDL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>0.40.0</string>
|
<string>0.41.0</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>20220618.161750</string>
|
<string>20220626.182832</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
@ -18,7 +18,7 @@ open class CustomToolBar: NSView {
|
|||||||
- Close button
|
- Close button
|
||||||
- Cog button: not shown when there's no menu
|
- Cog button: not shown when there's no menu
|
||||||
*/
|
*/
|
||||||
public class InnerToolBar: NSView, NSUserInterfaceValidations {
|
public final class InnerToolBar: NSView, NSUserInterfaceValidations {
|
||||||
// MARK: - Public
|
// MARK: - Public
|
||||||
|
|
||||||
public static let iconDimension = 16.0
|
public static let iconDimension = 16.0
|
||||||
|
@ -9,7 +9,7 @@ import PureLayout
|
|||||||
/**
|
/**
|
||||||
This class is used to display the placeholder bar when a tool is drag & dropped to a location with no existing tools.
|
This class is used to display the placeholder bar when a tool is drag & dropped to a location with no existing tools.
|
||||||
*/
|
*/
|
||||||
class ProxyWorkspaceBar: NSView {
|
final class ProxyWorkspaceBar: NSView {
|
||||||
var theme = Workspace.Theme.default
|
var theme = Workspace.Theme.default
|
||||||
|
|
||||||
@available(*, unavailable)
|
@available(*, unavailable)
|
||||||
|
@ -21,7 +21,7 @@ public protocol WorkspaceDelegate: AnyObject {
|
|||||||
func moved(tool: WorkspaceTool)
|
func moved(tool: WorkspaceTool)
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Workspace: NSView, WorkspaceBarDelegate {
|
public final class Workspace: NSView, WorkspaceBarDelegate {
|
||||||
// MARK: - Public
|
// MARK: - Public
|
||||||
|
|
||||||
public struct Config {
|
public struct Config {
|
||||||
|
@ -45,7 +45,7 @@ private class ProxyBar: NSView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class WorkspaceBar: NSView, WorkspaceToolDelegate {
|
final class WorkspaceBar: NSView, WorkspaceToolDelegate {
|
||||||
private static let separatorThickness = 1.0
|
private static let separatorThickness = 1.0
|
||||||
|
|
||||||
fileprivate(set) var tools = [WorkspaceTool]()
|
fileprivate(set) var tools = [WorkspaceTool]()
|
||||||
|
@ -10,7 +10,7 @@ protocol WorkspaceToolDelegate: AnyObject {
|
|||||||
func toggle(_ tool: WorkspaceTool)
|
func toggle(_ tool: WorkspaceTool)
|
||||||
}
|
}
|
||||||
|
|
||||||
public class WorkspaceTool: NSView {
|
public final class WorkspaceTool: NSView {
|
||||||
public var dimension: CGFloat
|
public var dimension: CGFloat
|
||||||
|
|
||||||
// MARK: - Public
|
// MARK: - Public
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
import Cocoa
|
import Cocoa
|
||||||
import Commons
|
import Commons
|
||||||
|
|
||||||
public class WorkspaceToolButton: NSView, NSDraggingSource {
|
public final class WorkspaceToolButton: NSView, NSDraggingSource {
|
||||||
private static let titlePadding = CGSize(width: 8, height: 2)
|
private static let titlePadding = CGSize(width: 8, height: 2)
|
||||||
private static let dummyButton = WorkspaceToolButton(title: "Dummy")
|
private static let dummyButton = WorkspaceToolButton(title: "Dummy")
|
||||||
|
|
||||||
|
26
appcast.xml
26
appcast.xml
@ -6,32 +6,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>v0.40.0-20220618.161750</title>
|
<title>v0.41.0-20220626.182832</title>
|
||||||
<link>https://twitter.com/vimrefined</link>
|
<link>https://twitter.com/vimrefined</link>
|
||||||
<sparkle:version>20220618.161750</sparkle:version>
|
<sparkle:version>20220626.182832</sparkle:version>
|
||||||
<sparkle:shortVersionString>v0.40.0</sparkle:shortVersionString>
|
<sparkle:shortVersionString>v0.41.0</sparkle:shortVersionString>
|
||||||
<description><![CDATA[
|
<description><![CDATA[
|
||||||
<ul>
|
<ul>
|
||||||
<li>Improved trackpad scrolling sensitivity (removed the option for customizing the sensitivity). Thanks @tsung-ju for the PR!</li>
|
<li>Neovim 0.7.2 😀</li>
|
||||||
<li>Refactor open quickly:<ul>
|
|
||||||
<li>Use <a href="https://github.com/jhawthorn/fzy">fzy</a> instead of <a href="https://github.com/MaskRay/ccls">ccls</a></li>
|
|
||||||
<li>Replace <a href="https://github.com/ggreer/the_silver_searcher">The Silver Searcher</a>'s ignore mechanism with own implementation in Swift using <a href="https://github.com/davvid/wildmatch">wildmatch</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>Dependencies updates<ul>
|
|
||||||
<li>Quick/Nimble@10.0.0</li>
|
|
||||||
<li>qvacua/misc.swift@0.0.1</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
]]></description>
|
]]></description>
|
||||||
<releaseNotesLink>
|
<releaseNotesLink>
|
||||||
https://github.com/qvacua/vimr/releases/tag/v0.40.0-20220618.161750
|
https://github.com/qvacua/vimr/releases/tag/v0.41.0-20220626.182832
|
||||||
</releaseNotesLink>
|
</releaseNotesLink>
|
||||||
<pubDate>2022-06-18T16:26:12.761684</pubDate>
|
<pubDate>2022-06-26T18:52:31.247376</pubDate>
|
||||||
<minimumSystemVersion>10.13.0</minimumSystemVersion>
|
<minimumSystemVersion>10.13.0</minimumSystemVersion>
|
||||||
<enclosure url="https://github.com/qvacua/vimr/releases/download/v0.40.0-20220618.161750/VimR-v0.40.0.tar.bz2"
|
<enclosure url="https://github.com/qvacua/vimr/releases/download/v0.41.0-20220626.182832/VimR-v0.41.0.tar.bz2"
|
||||||
sparkle:edSignature="ajaCAcCSK14qN1Fo7zGWM5p+GdkID9S+14tHPjJWGJg9ZyA7qCM0j+FPE8WRpRc9ymvs77zxxTPcEL8qwLpDCg==" length="21435446"
|
sparkle:edSignature="IUqDBwkTsTFh6M//X1AL21+4q2CbiBjv1PZZDdp3tqP84iwBq9VIauTY4sw07PrRE3xZ09w+CwZ/BNeVKGzfDg==" length="21355568"
|
||||||
type="application/octet-stream"/>
|
type="application/octet-stream"/>
|
||||||
</item>
|
</item>
|
||||||
</channel>
|
</channel>
|
||||||
|
@ -6,32 +6,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>v0.40.0-20220618.161750</title>
|
<title>v0.41.0-20220626.182832</title>
|
||||||
<link>https://twitter.com/vimrefined</link>
|
<link>https://twitter.com/vimrefined</link>
|
||||||
<sparkle:version>20220618.161750</sparkle:version>
|
<sparkle:version>20220626.182832</sparkle:version>
|
||||||
<sparkle:shortVersionString>v0.40.0</sparkle:shortVersionString>
|
<sparkle:shortVersionString>v0.41.0</sparkle:shortVersionString>
|
||||||
<description><![CDATA[
|
<description><![CDATA[
|
||||||
<ul>
|
<ul>
|
||||||
<li>Improved trackpad scrolling sensitivity (removed the option for customizing the sensitivity). Thanks @tsung-ju for the PR!</li>
|
<li>Neovim 0.7.2 😀</li>
|
||||||
<li>Refactor open quickly:<ul>
|
|
||||||
<li>Use <a href="https://github.com/jhawthorn/fzy">fzy</a> instead of <a href="https://github.com/MaskRay/ccls">ccls</a></li>
|
|
||||||
<li>Replace <a href="https://github.com/ggreer/the_silver_searcher">The Silver Searcher</a>'s ignore mechanism with own implementation in Swift using <a href="https://github.com/davvid/wildmatch">wildmatch</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>Dependencies updates<ul>
|
|
||||||
<li>Quick/Nimble@10.0.0</li>
|
|
||||||
<li>qvacua/misc.swift@0.0.1</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
]]></description>
|
]]></description>
|
||||||
<releaseNotesLink>
|
<releaseNotesLink>
|
||||||
https://github.com/qvacua/vimr/releases/tag/v0.40.0-20220618.161750
|
https://github.com/qvacua/vimr/releases/tag/v0.41.0-20220626.182832
|
||||||
</releaseNotesLink>
|
</releaseNotesLink>
|
||||||
<pubDate>2022-06-18T16:26:12.761684</pubDate>
|
<pubDate>2022-06-26T18:52:31.247376</pubDate>
|
||||||
<minimumSystemVersion>10.13.0</minimumSystemVersion>
|
<minimumSystemVersion>10.13.0</minimumSystemVersion>
|
||||||
<enclosure url="https://github.com/qvacua/vimr/releases/download/v0.40.0-20220618.161750/VimR-v0.40.0.tar.bz2"
|
<enclosure url="https://github.com/qvacua/vimr/releases/download/v0.41.0-20220626.182832/VimR-v0.41.0.tar.bz2"
|
||||||
sparkle:edSignature="ajaCAcCSK14qN1Fo7zGWM5p+GdkID9S+14tHPjJWGJg9ZyA7qCM0j+FPE8WRpRc9ymvs77zxxTPcEL8qwLpDCg==" length="21435446"
|
sparkle:edSignature="IUqDBwkTsTFh6M//X1AL21+4q2CbiBjv1PZZDdp3tqP84iwBq9VIauTY4sw07PrRE3xZ09w+CwZ/BNeVKGzfDg==" length="21355568"
|
||||||
type="application/octet-stream"/>
|
type="application/octet-stream"/>
|
||||||
</item>
|
</item>
|
||||||
</channel>
|
</channel>
|
||||||
|
@ -11,7 +11,7 @@ main() {
|
|||||||
|
|
||||||
pushd "./NvimServer"
|
pushd "./NvimServer"
|
||||||
./NvimServer/bin/build_nvimserver.sh
|
./NvimServer/bin/build_nvimserver.sh
|
||||||
cp ./.build/release/NvimServer ../NvimView/Sources/NvimView/Resources
|
cp ./.build/apple/Products/Release/NvimServer ../NvimView/Sources/NvimView/Resources
|
||||||
cp -r ./runtime ../NvimView/Sources/NvimView/Resources
|
cp -r ./runtime ../NvimView/Sources/NvimView/Resources
|
||||||
cp ../NvimView/Sources/NvimView/Resources/com.qvacua.NvimView.vim ../NvimView/Sources/NvimView/Resources/runtime/plugin
|
cp ../NvimView/Sources/NvimView/Resources/com.qvacua.NvimView.vim ../NvimView/Sources/NvimView/Resources/runtime/plugin
|
||||||
popd >/dev/null
|
popd >/dev/null
|
||||||
|
@ -56,9 +56,7 @@ check_gh_release_present() {
|
|||||||
|
|
||||||
build_release() {
|
build_release() {
|
||||||
echo "### Building release"
|
echo "### Building release"
|
||||||
code_sign=true use_carthage_cache=false ./bin/build_vimr.sh
|
clean=true notarize=true use_carthage_cache=false ./bin/build_vimr.sh
|
||||||
|
|
||||||
vimr_app_path="${build_folder_path}/VimR.app" ./bin/notarize_vimr.sh
|
|
||||||
|
|
||||||
pushd "${build_folder_path}" >/dev/null
|
pushd "${build_folder_path}" >/dev/null
|
||||||
tar cjf "VimR-${marketing_version}.tar.bz2" VimR.app
|
tar cjf "VimR-${marketing_version}.tar.bz2" VimR.app
|
||||||
|
@ -1,14 +1,31 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -Eeuo pipefail
|
set -Eeuo pipefail
|
||||||
|
|
||||||
readonly code_sign=${code_sign:?"true or false"}
|
readonly notarize=${notarize:?"true or false"}
|
||||||
readonly use_carthage_cache=${use_carthage_cache:?"true or false"}
|
readonly use_carthage_cache=${use_carthage_cache:?"true or false"}
|
||||||
|
readonly clean=${clean:?"true or false"}
|
||||||
|
|
||||||
main () {
|
prepare_nvimserver() {
|
||||||
pushd "$(dirname "${BASH_SOURCE[0]}")/.." >/dev/null
|
resources_folder="./NvimView/Sources/NvimView/Resources"
|
||||||
echo "### Building VimR target"
|
rm -rf "${resources_folder}/NvimServer"
|
||||||
|
rm -rf "${resources_folder}/runtime"
|
||||||
|
|
||||||
local -r build_path="./build"
|
# Build NvimServer and copy
|
||||||
|
build_libnvim=true ./NvimServer/NvimServer/bin/build_nvimserver.sh
|
||||||
|
cp ./NvimServer/.build/apple/Products/Release/NvimServer "${resources_folder}"
|
||||||
|
|
||||||
|
# Create and copy runtime folder
|
||||||
|
install_path="$(/usr/bin/mktemp -d -t 'nvim-runtime')"
|
||||||
|
nvim_install_path="${install_path}" ./NvimServer/NvimServer/bin/build_runtime.sh
|
||||||
|
cp -r "${install_path}/share/nvim/runtime" "${resources_folder}"
|
||||||
|
rm -rf "${install_path}"
|
||||||
|
|
||||||
|
# Copy VimR specific vim file to runtime/plugin folder
|
||||||
|
cp "${resources_folder}/com.qvacua.NvimView.vim" "${resources_folder}/runtime/plugin"
|
||||||
|
}
|
||||||
|
|
||||||
|
build_vimr() {
|
||||||
|
local -r build_path=$1
|
||||||
|
|
||||||
# Carthage often crashes => do it at the beginning.
|
# Carthage often crashes => do it at the beginning.
|
||||||
echo "### Updating carthage"
|
echo "### Updating carthage"
|
||||||
@ -18,22 +35,31 @@ main () {
|
|||||||
carthage update --platform macos
|
carthage update --platform macos
|
||||||
fi
|
fi
|
||||||
|
|
||||||
./bin/download_nvimserver.sh
|
|
||||||
|
|
||||||
echo "### Xcodebuilding"
|
echo "### Xcodebuilding"
|
||||||
rm -rf ${build_path}
|
rm -rf "${build_path}"
|
||||||
|
xcodebuild \
|
||||||
xcodebuild -configuration Release -derivedDataPath ${build_path} \
|
-configuration Release -derivedDataPath "${build_path}" \
|
||||||
-workspace VimR.xcworkspace -scheme VimR \
|
-workspace VimR.xcworkspace -scheme VimR \
|
||||||
clean build
|
clean build
|
||||||
|
}
|
||||||
|
|
||||||
if [[ "${code_sign}" == true ]]; then
|
main () {
|
||||||
local -r -x vimr_app_path="${build_path}/Build/Products/Release/VimR.app"
|
pushd "$(dirname "${BASH_SOURCE[0]}")/.." >/dev/null
|
||||||
./bin/sign_vimr.sh
|
echo "### Building VimR"
|
||||||
|
|
||||||
|
prepare_nvimserver
|
||||||
|
|
||||||
|
local -r build_path="./build"
|
||||||
|
build_vimr "${build_path}"
|
||||||
|
|
||||||
|
if [[ "${notarize}" == true ]]; then
|
||||||
|
local -r -x vimr_app_path="${build_path}/Build/Products/Release/VimR.app"
|
||||||
|
./bin/sign_vimr.sh
|
||||||
|
./bin/notarize_vimr.sh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "### Built VimR target"
|
echo "### VimR built in ${build_path}/Build/Products/VimR.app"
|
||||||
popd >/dev/null
|
popd >/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
main
|
main
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -Eeuo pipefail
|
set -Eeuo pipefail
|
||||||
|
|
||||||
|
readonly clean=${clean:?"true or false"}
|
||||||
readonly use_committed_nvim=${use_committed_nvim:?"If true, checkout the committed version of nvim, otherwise use the workspace."}
|
readonly use_committed_nvim=${use_committed_nvim:?"If true, checkout the committed version of nvim, otherwise use the workspace."}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
@ -23,7 +24,6 @@ main() {
|
|||||||
nvim_version="v$major.$minor.$patch$prerelease"
|
nvim_version="v$major.$minor.$patch$prerelease"
|
||||||
echo "### Using nvim version: $nvim_version"
|
echo "### Using nvim version: $nvim_version"
|
||||||
|
|
||||||
local -r -x build_deps=false
|
|
||||||
./NvimServer/bin/build_libnvim.sh
|
./NvimServer/bin/build_libnvim.sh
|
||||||
popd > /dev/null
|
popd > /dev/null
|
||||||
|
|
||||||
|
@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
* ...
|
* ...
|
||||||
|
|
||||||
|
# 0.41.0-20220626.182832
|
||||||
|
|
||||||
|
* Neovim 0.7.2 😀
|
||||||
|
|
||||||
# 0.40.0-20220618.161750
|
# 0.40.0-20220618.161750
|
||||||
|
|
||||||
* Improved trackpad scrolling sensitivity (removed the option for customizing the sensitivity). Thanks @tsung-ju for the PR!
|
* Improved trackpad scrolling sensitivity (removed the option for customizing the sensitivity). Thanks @tsung-ju for the PR!
|
||||||
|
Loading…
Reference in New Issue
Block a user