private async Task <BackupMetadata> SaveLastSavedChangesAsync(ITextEditor textEditor) { TextFile snapshot = textEditor.LastSavedSnapshot; StorageFile backupFile; try { backupFile = await SessionUtility.CreateNewBackupFileAsync(textEditor.Id.ToString("N") + "-LastSaved"); await FileSystemUtility.WriteToFile(LineEndingUtility.ApplyLineEnding(snapshot.Content, snapshot.LineEnding), snapshot.Encoding, backupFile); } catch (Exception ex) { LoggingService.LogError($"Failed to save backup file: {ex.Message}"); return(null); } return(new BackupMetadata { BackupFilePath = backupFile.Path, Encoding = snapshot.Encoding, LineEnding = snapshot.LineEnding, DateModified = snapshot.DateModifiedFileTime }); }
private string TrimTextAndFixLineEnding(string text, LineEnding lineEnding) { // Trim end \r if (!string.IsNullOrEmpty(text) && text[text.Length - 1] == '\r') { text = text.Substring(0, text.Length - 1); } return(LineEndingUtility.ApplyLineEnding(text, lineEnding)); }
//public static string GetTextWithDefaultTabIndentation(string text) //{ // if (EditorSettingsService.EditorDefaultTabIndents == -1) return text; // var tabStr = new string(' ', EditorSettingsService.EditorDefaultTabIndents); // text = text.Replace("\t", tabStr); // return text; //} public async Task SaveToFile(StorageFile file) { Encoding encoding = Encoding ?? new UTF8Encoding(false); var text = GetText(); text = LineEndingUtility.ApplyLineEnding(text, LineEnding); await FileSystemUtility.WriteToFile(text, encoding, file); EditingFile = file; Encoding = encoding; Saved = true; }
private async Task <bool> BackupTextAsync(string text, Encoding encoding, LineEnding lineEnding, StorageFile file) { try { await FileSystemUtility.WriteToFile(LineEndingUtility.ApplyLineEnding(text, lineEnding), encoding, file); return(true); } catch (Exception ex) { LoggingService.LogError($"[SessionManager] Failed to save backup file: {ex.Message}"); return(false); } }
private async Task <BackupMetadata> SaveLastSavedChangesAsync(TextEditor textEditor) { TextFile originalSnapshot = textEditor.OriginalSnapshot; StorageFile backupFile; try { backupFile = await SessionUtility.CreateNewBackupFileAsync(textEditor.Id.ToString("N") + "-LastSaved"); await FileSystemUtility.WriteToFile(LineEndingUtility.ApplyLineEnding(originalSnapshot.Content, originalSnapshot.LineEnding), originalSnapshot.Encoding, backupFile); } catch { return(null); } return(new BackupMetadata { BackupFilePath = backupFile.Path, Encoding = originalSnapshot.Encoding, LineEnding = originalSnapshot.LineEnding, DateModified = originalSnapshot.DateModifiedFileTime }); }
private string FixLineEnding(string text, LineEnding lineEnding) { return(LineEndingUtility.ApplyLineEnding(text, lineEnding)); }