mirror of
https://github.com/coteditor/CotEditor.git
synced 2024-10-26 10:58:05 +03:00
Remove nonisolated(unsafe) from .setSyntax(name:initial:)
This commit is contained in:
parent
2a52e859aa
commit
221e850aec
@ -33,6 +33,7 @@
|
|||||||
|
|
||||||
### TODO
|
### TODO
|
||||||
|
|
||||||
|
- Scan line endings in background.
|
||||||
- Improve Assembly syntax.
|
- Improve Assembly syntax.
|
||||||
- Localized strings added.
|
- Localized strings added.
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ import FilePermissions
|
|||||||
private nonisolated(unsafe) var suppressesInconsistentLineEndingAlert = false
|
private nonisolated(unsafe) var suppressesInconsistentLineEndingAlert = false
|
||||||
private nonisolated(unsafe) var isExternalUpdateAlertShown = false
|
private nonisolated(unsafe) var isExternalUpdateAlertShown = false
|
||||||
private nonisolated(unsafe) var allowsLossySaving = false
|
private nonisolated(unsafe) var allowsLossySaving = false
|
||||||
private nonisolated(unsafe) var isInitialized = false
|
private var isInitialized = false
|
||||||
|
|
||||||
private nonisolated(unsafe) var lastSavedData: Data? // temporal data used only within saving process
|
private nonisolated(unsafe) var lastSavedData: Data? // temporal data used only within saving process
|
||||||
|
|
||||||
@ -371,20 +371,20 @@ import FilePermissions
|
|||||||
self.suppressesInconsistentLineEndingAlert = true
|
self.suppressesInconsistentLineEndingAlert = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self.allowsLossySaving = false
|
||||||
|
|
||||||
// set read values
|
// set read values
|
||||||
Task { @MainActor in
|
Task { @MainActor in
|
||||||
self.textStorage.replaceContent(with: string)
|
self.textStorage.replaceContent(with: string)
|
||||||
|
|
||||||
self.fileEncoding = fileEncoding
|
self.fileEncoding = fileEncoding
|
||||||
self.lineEnding = self.lineEndingScanner.majorLineEnding ?? self.lineEnding // keep default if no line endings are found
|
self.lineEnding = self.lineEndingScanner.majorLineEnding ?? self.lineEnding // keep default if no line endings are found
|
||||||
}
|
|
||||||
|
// determine syntax (only on the first file open)
|
||||||
self.allowsLossySaving = false
|
if !self.isInitialized {
|
||||||
|
let syntaxName = SyntaxManager.shared.settingName(documentName: url.lastPathComponent, content: string)
|
||||||
// determine syntax (only on the first file open)
|
self.setSyntax(name: syntaxName ?? SyntaxName.none, isInitial: true)
|
||||||
if !self.isInitialized {
|
}
|
||||||
let syntaxName = SyntaxManager.shared.settingName(documentName: url.lastPathComponent, content: string)
|
|
||||||
self.setSyntax(name: syntaxName ?? SyntaxName.none, isInitial: true)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -946,10 +946,10 @@ import FilePermissions
|
|||||||
/// - Parameters:
|
/// - Parameters:
|
||||||
/// - name: The name of the syntax to change with.
|
/// - name: The name of the syntax to change with.
|
||||||
/// - isInitial: Whether the setting is initial.
|
/// - isInitial: Whether the setting is initial.
|
||||||
nonisolated(unsafe) func setSyntax(name: String, isInitial: Bool = false) {
|
func setSyntax(name: String, isInitial: Bool = false) {
|
||||||
|
|
||||||
defer {
|
defer {
|
||||||
Task { await self.invalidateMode() }
|
self.invalidateMode()
|
||||||
}
|
}
|
||||||
|
|
||||||
let syntax: Syntax
|
let syntax: Syntax
|
||||||
@ -957,9 +957,7 @@ import FilePermissions
|
|||||||
syntax = try SyntaxManager.shared.setting(name: name)
|
syntax = try SyntaxManager.shared.setting(name: name)
|
||||||
} catch {
|
} catch {
|
||||||
// present error dialog if failed
|
// present error dialog if failed
|
||||||
Task { @MainActor [error] in
|
self.presentErrorAsSheet(error)
|
||||||
self.presentErrorAsSheet(error)
|
|
||||||
}
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -972,10 +970,8 @@ import FilePermissions
|
|||||||
// to avoid redundant highlight parse due to async notification.
|
// to avoid redundant highlight parse due to async notification.
|
||||||
guard !isInitial else { return }
|
guard !isInitial else { return }
|
||||||
|
|
||||||
Task { @MainActor in
|
self.didChangeSyntax.send(name)
|
||||||
self.didChangeSyntax.send(name)
|
self.invalidateRestorableState()
|
||||||
self.invalidateRestorableState()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user