@@ -522,6 +522,7 @@ undesirable, simply delete the `pre-push` file from .git/hooks."
522
522
#[ derive( Clone , Debug , Eq , PartialEq ) ]
523
523
enum EditorKind {
524
524
Vscode ,
525
+ Vim ,
525
526
Emacs ,
526
527
Helix ,
527
528
}
@@ -532,7 +533,7 @@ impl EditorKind {
532
533
/// outdated vs. user-modified settings files.
533
534
fn hashes ( & self ) -> Vec < & str > {
534
535
match self {
535
- EditorKind :: Vscode => vec ! [
536
+ EditorKind :: Vscode | EditorKind :: Vim => vec ! [
536
537
"ea67e259dedf60d4429b6c349a564ffcd1563cf41c920a856d1f5b16b4701ac8" ,
537
538
"56e7bf011c71c5d81e0bf42e84938111847a810eee69d906bba494ea90b51922" ,
538
539
"af1b5efe196aed007577899db9dae15d6dbc923d6fa42fa0934e68617ba9bbe0" ,
@@ -542,12 +543,12 @@ impl EditorKind {
542
543
"828666b021d837a33e78d870b56d34c88a5e2c85de58b693607ec574f0c27000" ,
543
544
"811fb3b063c739d261fd8590dd30242e117908f5a095d594fa04585daa18ec4d" ,
544
545
] ,
545
- EditorKind :: Emacs => vec ! [
546
- "51068d4747a13732440d1a8b8f432603badb1864fa431d83d0fd4f8fa57039e0"
547
- ] ,
548
- EditorKind :: Helix => vec ! [
549
- "2d3069b8cf1b977e5d4023965eb6199597755e6c96c185ed5f2854f98b83d233"
550
- ]
546
+ EditorKind :: Emacs => {
547
+ vec ! [ "51068d4747a13732440d1a8b8f432603badb1864fa431d83d0fd4f8fa57039e0" ]
548
+ }
549
+ EditorKind :: Helix => {
550
+ vec ! [ "2d3069b8cf1b977e5d4023965eb6199597755e6c96c185ed5f2854f98b83d233" ]
551
+ }
551
552
}
552
553
}
553
554
@@ -558,25 +559,24 @@ impl EditorKind {
558
559
fn settings_short_path ( & self ) -> PathBuf {
559
560
match self {
560
561
EditorKind :: Vscode => PathBuf :: new ( ) . join ( ".vscode" ) . join ( "settings.json" ) ,
562
+ EditorKind :: Vim => PathBuf :: new ( ) . join ( ".vim" ) . join ( "coc-settings.json" ) ,
561
563
EditorKind :: Emacs => PathBuf :: new ( ) . join ( ".dir-locals.el" ) ,
562
564
EditorKind :: Helix => PathBuf :: new ( ) . join ( ".helix" ) . join ( "languages.toml" ) ,
563
565
}
564
566
}
565
567
566
568
fn settings ( & self ) -> & str {
567
569
match self {
568
- EditorKind :: Vscode => include_str ! ( "../../../../etc/rust_analyzer_settings.json" ) ,
570
+ EditorKind :: Vscode | EditorKind :: Vim => {
571
+ include_str ! ( "../../../../etc/rust_analyzer_settings.json" )
572
+ }
569
573
EditorKind :: Emacs => include_str ! ( "../../../../etc/rust_analyzer_eglot.el" ) ,
570
574
EditorKind :: Helix => include_str ! ( "../../../../etc/rust_analyzer_helix.toml" ) ,
571
575
}
572
576
}
573
577
574
- fn backup_extension ( & self ) -> & str {
575
- match self {
576
- EditorKind :: Vscode => "json.bak" ,
577
- EditorKind :: Emacs => "el.bak" ,
578
- EditorKind :: Helix => "toml.bak" ,
579
- }
578
+ fn backup_extension ( & self ) -> String {
579
+ format ! ( "{}.bak" , self . settings_short_path( ) . extension( ) . unwrap( ) . to_str( ) . unwrap( ) )
580
580
}
581
581
}
582
582
@@ -618,6 +618,7 @@ macro_rules! impl_editor_support {
618
618
}
619
619
620
620
impl_editor_support ! ( vscode, Vscode ) ;
621
+ impl_editor_support ! ( vim, Vim ) ;
621
622
impl_editor_support ! ( emacs, Emacs ) ;
622
623
impl_editor_support ! ( helix, Helix ) ;
623
624
0 commit comments