/// <summary>
 /// Sets the editor.
 /// </summary>
 /// <param name="externalEditor">The external editor.</param>
 protected virtual void SetEditor(IExternalEditor externalEditor)
 {
     isEditorReloading = true;
     Editor            = externalEditor;
     editorArgsChanged?.Dispose();
     editorArgsChanged = this.WhenAnyValue(p => p.Editor.ExternalEditorParameters).Where(p => !isEditorReloading).Subscribe(s =>
     {
         SaveEditor();
     }).DisposeWith(Disposables);
     isEditorReloading = false;
 }
        /// <summary>
        /// Saves the specified external editor.
        /// </summary>
        /// <param name="externalEditor">The external editor.</param>
        /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
        public bool Save(IExternalEditor externalEditor)
        {
            var preferences = PreferencesService.Get();

            return(PreferencesService.Save(Mapper.Map(externalEditor, preferences)));
        }