on ab50299 help sign in
11 files changed+156−330
since splitsnapshots
unifiedsplit
Cargo.lock+82−101 book/src/languages.md−1 helix-core/src/diagnostic.rs−4 helix-core/src/syntax.rs−2 helix-core/src/transaction.rs+14−73 helix-term/src/application.rs+38−80 helix-vcs/Cargo.toml+1−1 helix-view/src/document.rs+20−57 languages.toml−1 logo.svg+1−1 runtime/themes/nord.toml−9
Cargo.lock+82−101
@@ -62,9 +62,9 @@ dependencies = [
6262
6363[[package]]
6464name = "anyhow"
65−version = "1.0.76"
65+version = "1.0.75"
6666source = "registry+https://github.com/rust-lang/crates.io-index"
67−checksum = "59d2a3357dde987206219e78ecfbbb6e8dad06cbb65292758d3270e6254f7355"
67+checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
6868
6969[[package]]
7070name = "arc-swap"
@@ -469,9 +469,9 @@ dependencies = [
469469
470470[[package]]
471471name = "futures-core"
472−version = "0.3.30"
472+version = "0.3.29"
473473source = "registry+https://github.com/rust-lang/crates.io-index"
474−checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
474+checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
475475
476476[[package]]
477477name = "futures-executor"
@@ -486,15 +486,15 @@ dependencies = [
486486
487487[[package]]
488488name = "futures-task"
489−version = "0.3.30"
489+version = "0.3.29"
490490source = "registry+https://github.com/rust-lang/crates.io-index"
491−checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
491+checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
492492
493493[[package]]
494494name = "futures-util"
495−version = "0.3.30"
495+version = "0.3.29"
496496source = "registry+https://github.com/rust-lang/crates.io-index"
497−checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
497+checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
498498dependencies = [
499499 "futures-core",
500500 "futures-task",
@@ -522,9 +522,9 @@ checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
522522
523523[[package]]
524524name = "gix"
525−version = "0.57.0"
525+version = "0.56.0"
526526source = "registry+https://github.com/rust-lang/crates.io-index"
527−checksum = "721c7497ab24b665ed5a1eb2b3526936aa60068e61ba260651f7e77c52feec69"
527+checksum = "5b0dcdc9c60d66535897fa40a7ea2a635e72f99456b1d9ae86b7e170e80618cb"
528528dependencies = [
529529 "gix-actor",
530530 "gix-commitgraph",
@@ -563,9 +563,9 @@ dependencies = [
563563
564564[[package]]
565565name = "gix-actor"
566−version = "0.29.0"
566+version = "0.28.1"
567567source = "registry+https://github.com/rust-lang/crates.io-index"
568−checksum = "886014c4865b93ce268f1d3eddd4fd3261242c3f3ee61eb36009f913016a9059"
568+checksum = "2eadca029ef716b4378f7afb19f7ee101fde9e58ba1f1445971315ac866db417"
569569dependencies = [
570570 "bstr",
571571 "btoi",
@@ -577,18 +577,18 @@ dependencies = [
577577
578578[[package]]
579579name = "gix-chunk"
580−version = "0.4.6"
580+version = "0.4.5"
581581source = "registry+https://github.com/rust-lang/crates.io-index"
582−checksum = "2ade37ef69870de0ed966b97c57a3a947a22ff3482a52c3b99b205f77bcb08fb"
582+checksum = "d411ecd9b558b0c20b3252b7e409eec48eabc41d18324954fe526bac6e2db55f"
583583dependencies = [
584584 "thiserror",
585585]
586586
587587[[package]]
588588name = "gix-commitgraph"
589−version = "0.23.0"
589+version = "0.22.1"
590590source = "registry+https://github.com/rust-lang/crates.io-index"
591−checksum = "e7559ea9cefee188cd88b05afcc8e3ef7a3cb4a5c647bccf06b981e591b02b77"
591+checksum = "85a7007ba021f059803afaf6f8a48872422abc20550ac12ede6ddea2936cec36"
592592dependencies = [
593593 "bstr",
594594 "gix-chunk",
@@ -600,9 +600,9 @@ dependencies = [
600600
601601[[package]]
602602name = "gix-config"
603−version = "0.33.0"
603+version = "0.32.1"
604604source = "registry+https://github.com/rust-lang/crates.io-index"
605−checksum = "9c35dc7f9c00a42bbc9cfa1ca2ec0a78ad1b76ff0736d3d35dfd612962244467"
605+checksum = "0341471d55d8676e98b88e121d7065dfa4c9c5acea4b6d6ecdd2846e85cce0c3"
606606dependencies = [
607607 "bstr",
608608 "gix-config-value",
@@ -621,9 +621,9 @@ dependencies = [
621621
622622[[package]]
623623name = "gix-config-value"
624−version = "0.14.2"
624+version = "0.14.1"
625625source = "registry+https://github.com/rust-lang/crates.io-index"
626−checksum = "39f388cb2396aee82d6f460a2e7770659bdf8854e9e5478f7d2b1324a9698284"
626+checksum = "6419db582ea84dfb58c7e7b0af7fd62c808aa14954af2936a33f89b0f4ed018e"
627627dependencies = [
628628 "bitflags 2.4.1",
629629 "bstr",
@@ -634,9 +634,9 @@ dependencies = [
634634
635635[[package]]
636636name = "gix-date"
637−version = "0.8.2"
637+version = "0.8.1"
638638source = "registry+https://github.com/rust-lang/crates.io-index"
639−checksum = "9d85f4a01e0d05c3de585e28bae514d4baf01655e3fc3f14ce6f30bf62405345"
639+checksum = "468dfbe411f335f01525a1352271727f8e7772075a93fa747260f502086b30be"
640640dependencies = [
641641 "bstr",
642642 "itoa",
@@ -646,9 +646,9 @@ dependencies = [
646646
647647[[package]]
648648name = "gix-diff"
649−version = "0.39.0"
649+version = "0.38.0"
650650source = "registry+https://github.com/rust-lang/crates.io-index"
651−checksum = "ac0e75f5afd2f6c47c800b6b0a000a08045739d0450d20482e8faa42543f62d1"
651+checksum = "8119a985887cfe68f4bdf92e51bd64bc758a73882d82fcfc03ebcb164441c85d"
652652dependencies = [
653653 "bstr",
654654 "gix-hash",
@@ -658,9 +658,9 @@ dependencies = [
658658
659659[[package]]
660660name = "gix-discover"
661−version = "0.28.0"
661+version = "0.27.0"
662662source = "registry+https://github.com/rust-lang/crates.io-index"
663−checksum = "f0b63ce2ad81632ac1a84ac370f85a5e580c3261580bd85ea17ff35d3a0bba18"
663+checksum = "6fad89416ebe0b3b7df78464124e2a02417b6cd3743d48ad93df86f4d2929c07"
664664dependencies = [
665665 "bstr",
666666 "dunce",
@@ -673,9 +673,9 @@ dependencies = [
673673
674674[[package]]
675675name = "gix-features"
676−version = "0.37.0"
676+version = "0.36.1"
677677source = "registry+https://github.com/rust-lang/crates.io-index"
678−checksum = "befe7edea299a824504b5acc96d7a3a538125b38c42f3a8379f6912a29c90c81"
678+checksum = "4d46a4a5c6bb5bebec9c0d18b65ada20e6517dbd7cf855b87dd4bbdce3a771b2"
679679dependencies = [
680680 "crc32fast",
681681 "flate2",
@@ -691,18 +691,18 @@ dependencies = [
691691
692692[[package]]
693693name = "gix-fs"
694−version = "0.9.0"
694+version = "0.8.1"
695695source = "registry+https://github.com/rust-lang/crates.io-index"
696−checksum = "007017ce93b819ea52c0ec68306f7d72212a2d307c3d70f1548c7141c015d0a1"
696+checksum = "20e86eb040f5776a5ade092282e51cdcad398adb77d948b88d17583c2ae4e107"
697697dependencies = [
698698 "gix-features",
699699]
700700
701701[[package]]
702702name = "gix-glob"
703−version = "0.15.0"
703+version = "0.14.1"
704704source = "registry+https://github.com/rust-lang/crates.io-index"
705−checksum = "61fb116c2516d3a1170e010118f639944a6389872c875a008960cdab2a44ac72"
705+checksum = "5db19298c5eeea2961e5b3bf190767a2d1f09b8802aeb5f258e42276350aff19"
706706dependencies = [
707707 "bitflags 2.4.1",
708708 "bstr",
@@ -712,9 +712,9 @@ dependencies = [
712712
713713[[package]]
714714name = "gix-hash"
715−version = "0.14.0"
715+version = "0.13.3"
716716source = "registry+https://github.com/rust-lang/crates.io-index"
717−checksum = "c52c3170a17b6031833cd2eb4ad7bc23f2755d06e6e70f78dec21d42e8fe1b30"
717+checksum = "1f8cf8c2266f63e582b7eb206799b63aa5fa68ee510ad349f637dfe2d0653de0"
718718dependencies = [
719719 "faster-hex",
720720 "thiserror",
@@ -722,9 +722,9 @@ dependencies = [
722722
723723[[package]]
724724name = "gix-hashtable"
725−version = "0.5.0"
725+version = "0.4.1"
726726source = "registry+https://github.com/rust-lang/crates.io-index"
727−checksum = "40a838e6366a5e5b84668b6997ce0981b833136468e8ba949f424c0ef2927eba"
727+checksum = "feb61880816d7ec4f0b20606b498147d480860ddd9133ba542628df2f548d3ca"
728728dependencies = [
729729 "gix-hash",
730730 "hashbrown 0.14.3",
@@ -733,9 +733,9 @@ dependencies = [
733733
734734[[package]]
735735name = "gix-lock"
736−version = "12.0.0"
736+version = "11.0.0"
737737source = "registry+https://github.com/rust-lang/crates.io-index"
738−checksum = "6cf112ddee94223c119a8534dad027740dc3aba3365ac5edeef8a7f6660c74db"
738+checksum = "f4feb1dcd304fe384ddc22edba9dd56a42b0800032de6537728cea2f033a4f37"
739739dependencies = [
740740 "gix-tempfile",
741741 "gix-utils",
@@ -744,9 +744,9 @@ dependencies = [
744744
745745[[package]]
746746name = "gix-macros"
747−version = "0.1.2"
747+version = "0.1.1"
748748source = "registry+https://github.com/rust-lang/crates.io-index"
749−checksum = "fc207b64189cf71bcb17fc841ab99a5d63d0845546b611e2703ce467f659323a"
749+checksum = "02a5bcaf6704d9354a3071cede7e77d366a5980c7352e102e2c2f9b645b1d3ae"
750750dependencies = [
751751 "proc-macro2",
752752 "quote",
@@ -755,9 +755,9 @@ dependencies = [
755755
756756[[package]]
757757name = "gix-object"
758−version = "0.40.0"
758+version = "0.39.0"
759759source = "registry+https://github.com/rust-lang/crates.io-index"
760−checksum = "e4c77e47ffba92127faf632a841fce23d19547e269bd8b88e68961a70eab4e93"
760+checksum = "febf79c5825720c1c63fe974c7bbe695d0cb54aabad73f45671c60ce0e501e33"
761761dependencies = [
762762 "bstr",
763763 "btoi",
@@ -774,9 +774,9 @@ dependencies = [
774774
775775[[package]]
776776name = "gix-odb"
777−version = "0.56.0"
777+version = "0.55.0"
778778source = "registry+https://github.com/rust-lang/crates.io-index"
779−checksum = "a3254f2005cc7553ea78e85e816a09150c6f7a64e6b7627b8d1fdc56721bea73"
779+checksum = "1fae5f971540c99c6ecc8d4368ecc9d18a9dc8b9391025c68c4399747dc93bac"
780780dependencies = [
781781 "arc-swap",
782782 "gix-date",
@@ -793,9 +793,9 @@ dependencies = [
793793
794794[[package]]
795795name = "gix-pack"
796−version = "0.46.0"
796+version = "0.45.0"
797797source = "registry+https://github.com/rust-lang/crates.io-index"
798−checksum = "02ebc8cd657eec207d82d8f876ca402361308ecd3c87a47935b0299506257b4f"
798+checksum = "4569491c92446fddf373456ff360aff9a9effd627b40a70f2d7914dcd75a3205"
799799dependencies = [
800800 "clru",
801801 "gix-chunk",
@@ -813,9 +813,9 @@ dependencies = [
813813
814814[[package]]
815815name = "gix-path"
816−version = "0.10.2"
816+version = "0.10.1"
817817source = "registry+https://github.com/rust-lang/crates.io-index"
818−checksum = "10931652a3da126990ac93bce1b1c600cc99d7c268d712b6360ed52174ce1b68"
818+checksum = "d86d6fac2fabe07b67b7835f46d07571f68b11aa1aaecae94fe722ea4ef305e1"
819819dependencies = [
820820 "bstr",
821821 "gix-trace",
@@ -826,9 +826,9 @@ dependencies = [
826826
827827[[package]]
828828name = "gix-quote"
829−version = "0.4.9"
829+version = "0.4.8"
830830source = "registry+https://github.com/rust-lang/crates.io-index"
831−checksum = "6c43530cb94a7759807e6f8d180e17ac9c65673b891645c6c433831dc0cf4342"
831+checksum = "4f84845efa535468bc79c5a87b9d29219f1da0313c8ecf0365a5daa7e72786f2"
832832dependencies = [
833833 "bstr",
834834 "btoi",
@@ -837,9 +837,9 @@ dependencies = [
837837
838838[[package]]
839839name = "gix-ref"
840−version = "0.40.0"
840+version = "0.39.0"
841841source = "registry+https://github.com/rust-lang/crates.io-index"
842−checksum = "baa951b3b850d6d1be4f900768e49af20b76bf9505beac22af723d57249a2f1d"
842+checksum = "1ac23ed741583c792f573c028785db683496a6dfcd672ec701ee54ba6a77e1ff"
843843dependencies = [
844844 "gix-actor",
845845 "gix-date",
@@ -858,9 +858,9 @@ dependencies = [
858858
859859[[package]]
860860name = "gix-refspec"
861−version = "0.21.0"
861+version = "0.20.0"
862862source = "registry+https://github.com/rust-lang/crates.io-index"
863−checksum = "88c61f849d58c06e3068a0b601cf10127d2a07cdad00a725ed66cf303f76f6b3"
863+checksum = "76d9d3b82e1ee78fc0dc1c37ea5ea76c2dbc73f407db155f0dfcea285e583bee"
864864dependencies = [
865865 "bstr",
866866 "gix-hash",
@@ -872,9 +872,9 @@ dependencies = [
872872
873873[[package]]
874874name = "gix-revision"
875−version = "0.25.0"
875+version = "0.24.0"
876876source = "registry+https://github.com/rust-lang/crates.io-index"
877−checksum = "bcbbf91f4200c5c76802ef5f057b96f5a336827508881fe55a780be71a794d22"
877+checksum = "fe5dd51710ce5434bc315ea30394fab483c5377276494edd79222b321a5a9544"
878878dependencies = [
879879 "bstr",
880880 "gix-date",
@@ -888,9 +888,9 @@ dependencies = [
888888
889889[[package]]
890890name = "gix-revwalk"
891−version = "0.11.0"
891+version = "0.10.0"
892892source = "registry+https://github.com/rust-lang/crates.io-index"
893−checksum = "33ab66354d83f70f2730391747d0c75f94ef3c3dd40ebde2e206db9faaf7a0a7"
893+checksum = "69d4ed2493ca94a475fdf147138e1ef8bab3b6ebb56abf3d9bda1c05372ec1dd"
894894dependencies = [
895895 "gix-commitgraph",
896896 "gix-date",
@@ -903,21 +903,21 @@ dependencies = [
903903
904904[[package]]
905905name = "gix-sec"
906−version = "0.10.2"
906+version = "0.10.1"
907907source = "registry+https://github.com/rust-lang/crates.io-index"
908−checksum = "a9963f38a42144253ed4d571882d7db5ef644c12e6726e4b75135597cc9d0e1a"
908+checksum = "a36ea2c5907d64a9b4b5d3cc9f430e6c30f0509646b5e38eb275ca57c5bf29e2"
909909dependencies = [
910910 "bitflags 2.4.1",
911911 "gix-path",
912912 "libc",
913− "windows 0.52.0",
913+ "windows",
914914]
915915
916916[[package]]
917917name = "gix-tempfile"
918−version = "12.0.0"
918+version = "11.0.0"
919919source = "registry+https://github.com/rust-lang/crates.io-index"
920−checksum = "e76a494bd530e1a1309188ff971825a24f159c76c2db0bf71fa5dfb469a2c915"
920+checksum = "05cc2205cf10d99f70b96e04e16c55d4c7cf33efc151df1f793e29fd12a931f8"
921921dependencies = [
922922 "gix-fs",
923923 "libc",
@@ -928,15 +928,15 @@ dependencies = [
928928
929929[[package]]
930930name = "gix-trace"
931−version = "0.1.5"
931+version = "0.1.4"
932932source = "registry+https://github.com/rust-lang/crates.io-index"
933−checksum = "bda62acb44dd86a40c7c3762a5403cfc1ac789ea559df54085cedf79864f809e"
933+checksum = "b686a35799b53a9825575ca3f06481d0a053a409c4d97ffcf5ddd67a8760b497"
934934
935935[[package]]
936936name = "gix-traverse"
937−version = "0.36.0"
937+version = "0.35.0"
938938source = "registry+https://github.com/rust-lang/crates.io-index"
939−checksum = "8661fab39985c9214e56d81a63ceb5886ac948cec2fba76c39494d1e0e307ea8"
939+checksum = "df2112088122a0206592c84fbd42020db63b2ccaed66a0293779f2e5fbf80474"
940940dependencies = [
941941 "gix-commitgraph",
942942 "gix-date",
@@ -950,9 +950,9 @@ dependencies = [
950950
951951[[package]]
952952name = "gix-url"
953−version = "0.26.0"
953+version = "0.25.2"
954954source = "registry+https://github.com/rust-lang/crates.io-index"
955−checksum = "10a0129c1e8b52736d7c5128300a4485dbc85863001371e2771ac1754bd89fd7"
955+checksum = "0c427a1a11ccfa53a4a2da47d9442c2241deee63a154bc15cc14b8312fbc4005"
956956dependencies = [
957957 "bstr",
958958 "gix-features",
@@ -964,18 +964,18 @@ dependencies = [
964964
965965[[package]]
966966name = "gix-utils"
967−version = "0.1.7"
967+version = "0.1.6"
968968source = "registry+https://github.com/rust-lang/crates.io-index"
969−checksum = "ab9277a5e32e85d53f738096d872a4a9b76067ad471894ad31bd99c8fa2da1dc"
969+checksum = "9f82c41937f00e15a1f6cb0b55307f0ca1f77f4407ff2bf440be35aa688c6a3e"
970970dependencies = [
971971 "fastrand",
972972]
973973
974974[[package]]
975975name = "gix-validate"
976−version = "0.8.2"
976+version = "0.8.1"
977977source = "registry+https://github.com/rust-lang/crates.io-index"
978−checksum = "f805ebbdbaa4bfd98e2ee43e6d14099b8a4d9141f5d7b8202fea4d48e44263e7"
978+checksum = "75b7d8e4274be69f284bbc7e6bb2ccf7065dbcdeba22d8c549f2451ae426883f"
979979dependencies = [
980980 "bstr",
981981 "thiserror",
@@ -1286,7 +1286,7 @@ dependencies = [
12861286 "iana-time-zone-haiku",
12871287 "js-sys",
12881288 "wasm-bindgen",
1289− "windows 0.48.0",
1289+ "windows",
12901290]
12911291
12921292[[package]]
@@ -1624,9 +1624,9 @@ dependencies = [
16241624
16251625[[package]]
16261626name = "prodash"
1627−version = "28.0.0"
1627+version = "26.2.2"
16281628source = "registry+https://github.com/rust-lang/crates.io-index"
1629−checksum = "744a264d26b88a6a7e37cbad97953fa233b94d585236310bcbc88474b4092d79"
1629+checksum = "794b5bf8e2d19b53dcdcec3e4bba628e20f5b6062503ba89281fa7037dd7bbcf"
16301630
16311631[[package]]
16321632name = "pulldown-cmark"
@@ -2028,18 +2028,18 @@ dependencies = [
20282028
20292029[[package]]
20302030name = "thiserror"
2031−version = "1.0.52"
2031+version = "1.0.51"
20322032source = "registry+https://github.com/rust-lang/crates.io-index"
2033−checksum = "83a48fd946b02c0a526b2e9481c8e2a17755e47039164a86c4070446e3a4614d"
2033+checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7"
20342034dependencies = [
20352035 "thiserror-impl",
20362036]
20372037
20382038[[package]]
20392039name = "thiserror-impl"
2040−version = "1.0.52"
2040+version = "1.0.51"
20412041source = "registry+https://github.com/rust-lang/crates.io-index"
2042−checksum = "e7fbe9b594d6568a6a1443250a7e67d80b74e1e96f6d1715e1e21cc1888291d3"
2042+checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df"
20432043dependencies = [
20442044 "proc-macro2",
20452045 "quote",
@@ -2101,9 +2101,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
21012101
21022102[[package]]
21032103name = "tokio"
2104−version = "1.35.1"
2104+version = "1.35.0"
21052105source = "registry+https://github.com/rust-lang/crates.io-index"
2106−checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
2106+checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c"
21072107dependencies = [
21082108 "backtrace",
21092109 "bytes",
@@ -2384,25 +2384,6 @@ dependencies = [
23842384 "windows-targets 0.48.0",
23852385]
23862386
2387−[[package]]
2388−name = "windows"
2389−version = "0.52.0"
2390−source = "registry+https://github.com/rust-lang/crates.io-index"
2391−checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
2392−dependencies = [
2393− "windows-core",
2394− "windows-targets 0.52.0",
2395−]
2396−
2397−[[package]]
2398−name = "windows-core"
2399−version = "0.52.0"
2400−source = "registry+https://github.com/rust-lang/crates.io-index"
2401−checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
2402−dependencies = [
2403− "windows-targets 0.52.0",
2404−]
2405−
24062387[[package]]
24072388name = "windows-sys"
24082389version = "0.45.0"
book/src/languages.md−1
@@ -69,7 +69,6 @@ These configuration keys are available:
6969| `soft-wrap` | [editor.softwrap](./configuration.md#editorsoft-wrap-section)
7070| `text-width` | Maximum line length. Used for the `:reflow` command and soft-wrapping if `soft-wrap.wrap-at-text-width` is set, defaults to `editor.text-width` |
7171| `workspace-lsp-roots` | Directories relative to the workspace root that are treated as LSP roots. Should only be set in `.helix/config.toml`. Overwrites the setting of the same name in `config.toml` if set. |
72−| `persistent-diagnostic-sources` | An array of LSP diagnostic sources assumed unchanged when the language server resends the same set of diagnostics. Helix can track the position for these diagnostics internally instead. Useful for diagnostics that are recomputed on save.
7372
7473### File-type detection and the `file-types` key
7574
helix-core/src/diagnostic.rs−4
@@ -39,10 +39,6 @@ pub enum DiagnosticTag {
3939#[derive(Debug, Clone)]
4040pub struct Diagnostic {
4141 pub range: Range,
42− // whether this diagnostic ends at the end of(or inside) a word
43− pub ends_at_word: bool,
44− pub starts_at_word: bool,
45− pub zero_width: bool,
4642 pub line: usize,
4743 pub message: String,
4844 pub severity: Option<Severity>,
helix-core/src/syntax.rs−2
@@ -155,8 +155,6 @@ pub struct LanguageConfiguration {
155155 /// Hardcoded LSP root directories relative to the workspace root, like `examples` or `tools/fuzz`.
156156 /// Falling back to the current working directory if none are configured.
157157 pub workspace_lsp_roots: Option<Vec<PathBuf>>,
158− #[serde(default)]
159− pub persistent_diagnostic_sources: Vec<String>,
160158}
161159
162160#[derive(Debug, PartialEq, Eq, Hash)]
helix-core/src/transaction.rs+14−73
@@ -1,7 +1,7 @@
11use ropey::RopeSlice;
22use smallvec::SmallVec;
33
4−use crate::{chars::char_is_word, Range, Rope, Selection, Tendril};
4+use crate::{Range, Rope, Selection, Tendril};
55use std::{borrow::Cow, iter::once};
66
77/// (from, to, replacement)
@@ -23,30 +23,6 @@ pub enum Operation {
2323pub enum Assoc {
2424 Before,
2525 After,
26− /// Acts like `After` if a word character is inserted
27− /// after the position, otherwise acts like `Before`
28− AfterWord,
29− /// Acts like `Before` if a word character is inserted
30− /// before the position, otherwise acts like `After`
31− BeforeWord,
32−}
33−
34−impl Assoc {
35− /// Whether to stick to gaps
36− fn stay_at_gaps(self) -> bool {
37− !matches!(self, Self::BeforeWord | Self::AfterWord)
38− }
39−
40− fn insert_offset(self, s: &str) -> usize {
41− let chars = s.chars().count();
42− match self {
43− Assoc::After => chars,
44− Assoc::AfterWord => s.chars().take_while(|&c| char_is_word(c)).count(),
45− // return position before inserted text
46− Assoc::Before => 0,
47− Assoc::BeforeWord => chars - s.chars().rev().take_while(|&c| char_is_word(c)).count(),
48− }
49− }
5026}
5127
5228#[derive(Debug, Default, Clone, PartialEq, Eq)]
@@ -439,6 +415,8 @@ impl ChangeSet {
439415 map!(|pos, _| (old_end > pos).then_some(new_pos), i);
440416 }
441417 Insert(s) => {
418+ let ins = s.chars().count();
419+
442420 // a subsequent delete means a replace, consume it
443421 if let Some((_, Delete(len))) = iter.peek() {
444422 iter.next();
@@ -446,13 +424,13 @@ impl ChangeSet {
446424 old_end = old_pos + len;
447425 // in range of replaced text
448426 map!(
449− |pos, assoc: Assoc| (old_end > pos).then(|| {
427+ |pos, assoc| (old_end > pos).then(|| {
450428 // at point or tracking before
451− if pos == old_pos && assoc.stay_at_gaps() {
429+ if pos == old_pos || assoc == Assoc::Before {
452430 new_pos
453431 } else {
454432 // place to end of insert
455− new_pos + assoc.insert_offset(s)
433+ new_pos + ins
456434 }
457435 }),
458436 i
@@ -460,15 +438,20 @@ impl ChangeSet {
460438 } else {
461439 // at insert point
462440 map!(
463− |pos, assoc: Assoc| (old_pos == pos).then(|| {
441+ |pos, assoc| (old_pos == pos).then(|| {
464442 // return position before inserted text
465− new_pos + assoc.insert_offset(s)
443+ if assoc == Assoc::Before {
444+ new_pos
445+ } else {
446+ // after text
447+ new_pos + ins
448+ }
466449 }),
467450 i
468451 );
469452 }
470453
471− new_pos += s.chars().count();
454+ new_pos += ins;
472455 }
473456 }
474457 old_pos = old_end;
@@ -901,48 +884,6 @@ mod test {
901884 let mut positions = [4, 2];
902885 cs.update_positions(positions.iter_mut().map(|pos| (pos, Assoc::After)));
903886 assert_eq!(positions, [4, 2]);
904− // stays at word boundary
905− let cs = ChangeSet {
906− changes: vec![
907− Retain(2), // <space><space>
908− Insert(" ab".into()),
909− Retain(2), // cd
910− Insert("de ".into()),
911− ],
912− len: 4,
913− len_after: 10,
914− };
915− assert_eq!(cs.map_pos(2, Assoc::BeforeWord), 3);
916− assert_eq!(cs.map_pos(4, Assoc::AfterWord), 9);
917− let cs = ChangeSet {
918− changes: vec![
919− Retain(1), // <space>
920− Insert(" b".into()),
921− Delete(1), // c
922− Retain(1), // d
923− Insert("e ".into()),
924− Delete(1), // <space>
925− ],
926− len: 5,
927− len_after: 7,
928− };
929− assert_eq!(cs.map_pos(1, Assoc::BeforeWord), 2);
930− assert_eq!(cs.map_pos(3, Assoc::AfterWord), 5);
931− let cs = ChangeSet {
932− changes: vec![
933− Retain(1), // <space>
934− Insert("a".into()),
935− Delete(2), // <space>b
936− Retain(1), // d
937− Insert("e".into()),
938− Delete(1), // f
939− Retain(1), // <space>
940− ],
941− len: 5,
942− len_after: 7,
943− };
944− assert_eq!(cs.map_pos(2, Assoc::BeforeWord), 1);
945− assert_eq!(cs.map_pos(4, Assoc::AfterWord), 4);
946887 }
947888
948889 #[test]
helix-term/src/application.rs+38−80
@@ -1,7 +1,6 @@
11use arc_swap::{access::Map, ArcSwap};
22use futures_util::Stream;
33use helix_core::{
4− chars::char_is_word,
54 diagnostic::{DiagnosticTag, NumberOrString},
65 path::get_relative_path,
76 pos_at_coords, syntax, Selection,
@@ -718,7 +717,7 @@ impl Application {
718717 ));
719718 }
720719 }
721− Notification::PublishDiagnostics(mut params) => {
720+ Notification::PublishDiagnostics(params) => {
722721 let path = match params.uri.to_file_path() {
723722 Ok(path) => path,
724723 Err(_) => {
@@ -732,69 +731,31 @@ impl Application {
732731 return;
733732 }
734733 let offset_encoding = language_server.offset_encoding();
735− // have to inline the function because of borrow checking...
736− let doc = self.editor.documents.values_mut()
737− .find(|doc| doc.path().map(|p| p == &path).unwrap_or(false))
738− .filter(|doc| {
739− if let Some(version) = params.version {
740− if version != doc.version() {
741− log::info!("Version ({version}) is out of date for {path:?} (expected ({}), dropping PublishDiagnostic notification", doc.version());
742− return false;
743− }
734+ let doc = self.editor.document_by_path_mut(&path).filter(|doc| {
735+ if let Some(version) = params.version {
736+ if version != doc.version() {
737+ log::info!("Version ({version}) is out of date for {path:?} (expected ({}), dropping PublishDiagnostic notification", doc.version());
738+ return false;
744739 }
745− true
746− });
740+ }
741+
742+ true
743+ });
747744
748745 if let Some(doc) = doc {
749− let lang_conf = doc.language.clone();
750− let text = doc.text().clone();
751−
752− let mut unchaged_diag_sources_ = Vec::new();
753− if let Some(lang_conf) = &lang_conf {
754− if let Some(old_diagnostics) =
755− self.editor.diagnostics.get(&params.uri)
756− {
757− if !lang_conf.persistent_diagnostic_sources.is_empty() {
758− // Sort diagnostics first by severity and then by line numbers.
759− // Note: The `lsp::DiagnosticSeverity` enum is already defined in decreasing order
760− params
761− .diagnostics
762− .sort_unstable_by_key(|d| (d.severity, d.range.start));
763− }
764− for source in &lang_conf.persistent_diagnostic_sources {
765− let new_diagnostics = params
766− .diagnostics
767− .iter()
768− .filter(|d| d.source.as_ref() == Some(source));
769− let old_diagnostics = old_diagnostics
770− .iter()
771− .filter(|(d, d_server)| {
772− *d_server == server_id
773− && d.source.as_ref() == Some(source)
774− })
775− .map(|(d, _)| d);
776− if new_diagnostics.eq(old_diagnostics) {
777− unchaged_diag_sources_.push(source.clone())
778− }
779− }
780− }
781− }
746+ let lang_conf = doc.language_config();
747+ let text = doc.text();
782748
783− let unchaged_diag_sources = &unchaged_diag_sources_;
784− let diagnostics =
785− params.diagnostics.iter().filter_map(move |diagnostic| {
749+ let diagnostics = params
750+ .diagnostics
751+ .iter()
752+ .filter_map(|diagnostic| {
786753 use helix_core::diagnostic::{Diagnostic, Range, Severity::*};
787754 use lsp::DiagnosticSeverity;
788755
789− if diagnostic.source.as_ref().map_or(false, |source| {
790− unchaged_diag_sources.contains(source)
791− }) {
792− return None;
793− }
794−
795756 // TODO: convert inside server
796757 let start = if let Some(start) = lsp_pos_to_pos(
797− &text,
758+ text,
798759 diagnostic.range.start,
799760 offset_encoding,
800761 ) {
@@ -805,13 +766,14 @@ impl Application {
805766 };
806767
807768 let end = if let Some(end) =
808− lsp_pos_to_pos(&text, diagnostic.range.end, offset_encoding)
769+ lsp_pos_to_pos(text, diagnostic.range.end, offset_encoding)
809770 {
810771 end
811772 } else {
812773 log::warn!("lsp position out of bounds - {:?}", diagnostic);
813774 return None;
814775 };
776+
815777 let severity =
816778 diagnostic.severity.map(|severity| match severity {
817779 DiagnosticSeverity::ERROR => Error,
@@ -824,7 +786,7 @@ impl Application {
824786 ),
825787 });
826788
827− if let Some(lang_conf) = &lang_conf {
789+ if let Some(lang_conf) = lang_conf {
828790 if let Some(severity) = severity {
829791 if severity < lang_conf.diagnostic_severity {
830792 return None;
@@ -863,17 +825,8 @@ impl Application {
863825 Vec::new()
864826 };
865827
866− let ends_at_word = start != end
867− && end != 0
868− && text.get_char(end - 1).map_or(false, char_is_word);
869− let starts_at_word = start != end
870− && text.get_char(start).map_or(false, char_is_word);
871−
872828 Some(Diagnostic {
873829 range: Range { start, end },
874− ends_at_word,
875− starts_at_word,
876− zero_width: start == end,
877830 line: diagnostic.range.start.line as usize,
878831 message: diagnostic.message.clone(),
879832 severity,
@@ -883,33 +836,38 @@ impl Application {
883836 data: diagnostic.data.clone(),
884837 language_server_id: server_id,
885838 })
886− });
839+ })
840+ .collect();
887841
888− doc.replace_diagnostics(diagnostics, unchaged_diag_sources, server_id);
842+ doc.replace_diagnostics(diagnostics, server_id);
889843 }
890844
891− let diagnostics = params.diagnostics.into_iter().map(|d| (d, server_id));
845+ let mut diagnostics = params
846+ .diagnostics
847+ .into_iter()
848+ .map(|d| (d, server_id))
849+ .collect();
892850
893851 // Insert the original lsp::Diagnostics here because we may have no open document
894852 // for diagnosic message and so we can't calculate the exact position.
895853 // When using them later in the diagnostics picker, we calculate them on-demand.
896− let diagnostics = match self.editor.diagnostics.entry(params.uri) {
854+ match self.editor.diagnostics.entry(params.uri) {
897855 Entry::Occupied(o) => {
898856 let current_diagnostics = o.into_mut();
899857 // there may entries of other language servers, which is why we can't overwrite the whole entry
900858 current_diagnostics.retain(|(_, lsp_id)| *lsp_id != server_id);
901− current_diagnostics.extend(diagnostics);
902− current_diagnostics
859+ current_diagnostics.append(&mut diagnostics);
903860 // Sort diagnostics first by severity and then by line numbers.
861+ // Note: The `lsp::DiagnosticSeverity` enum is already defined in decreasing order
862+ current_diagnostics
863+ .sort_unstable_by_key(|(d, _)| (d.severity, d.range.start));
864+ }
865+ Entry::Vacant(v) => {
866+ diagnostics
867+ .sort_unstable_by_key(|(d, _)| (d.severity, d.range.start));
868+ v.insert(diagnostics);
904869 }
905− Entry::Vacant(v) => v.insert(diagnostics.collect()),
906870 };
907−
908− // Sort diagnostics first by severity and then by line numbers.
909− // Note: The `lsp::DiagnosticSeverity` enum is already defined in decreasing order
910− diagnostics.sort_unstable_by_key(|(d, server_id)| {
911− (d.severity, d.range.start, *server_id)
912− });
913871 }
914872 Notification::ShowMessage(params) => {
915873 log::warn!("unhandled window/showMessage: {:?}", params);
helix-vcs/Cargo.toml+1−1
@@ -19,7 +19,7 @@ tokio = { version = "1", features = ["rt", "rt-multi-thread", "time", "sync", "p
1919parking_lot = "0.12"
2020arc-swap = { version = "1.6.0" }
2121
22−gix = { version = "0.57.0", default-features = false , optional = true }
22+gix = { version = "0.56.0", default-features = false , optional = true }
2323imara-diff = "0.1.5"
2424anyhow = "1"
2525
helix-view/src/document.rs+20−57
@@ -1213,40 +1213,23 @@ impl Document {
12131213
12141214 let changes = transaction.changes();
12151215
1216− // map diagnostics over changes too
1217− changes.update_positions(self.diagnostics.iter_mut().map(|diagnostic| {
1218− let assoc = if diagnostic.starts_at_word {
1219− Assoc::BeforeWord
1220− } else {
1221− Assoc::After
1222− };
1223− (&mut diagnostic.range.start, assoc)
1224− }));
1225− changes.update_positions(self.diagnostics.iter_mut().map(|diagnostic| {
1226− let assoc = if diagnostic.ends_at_word {
1227− Assoc::AfterWord
1228− } else {
1229− Assoc::Before
1230− };
1231− (&mut diagnostic.range.end, assoc)
1232− }));
1233− self.diagnostics.retain_mut(|diagnostic| {
1234− if diagnostic.range.start > diagnostic.range.end
1235− || (!diagnostic.zero_width && diagnostic.range.start == diagnostic.range.end)
1236− {
1237− return false;
1238− }
1216+ changes.update_positions(
1217+ self.diagnostics
1218+ .iter_mut()
1219+ .map(|diagnostic| (&mut diagnostic.range.start, Assoc::After)),
1220+ );
1221+ changes.update_positions(
1222+ self.diagnostics
1223+ .iter_mut()
1224+ .map(|diagnostic| (&mut diagnostic.range.end, Assoc::After)),
1225+ );
1226+ // map state.diagnostics over changes::map_pos too
1227+ for diagnostic in &mut self.diagnostics {
12391228 diagnostic.line = self.text.char_to_line(diagnostic.range.start);
1240− true
1241− });
1229+ }
12421230
1243− self.diagnostics.sort_unstable_by_key(|diagnostic| {
1244− (
1245− diagnostic.range,
1246− diagnostic.severity,
1247− diagnostic.language_server_id,
1248− )
1249− });
1231+ self.diagnostics
1232+ .sort_unstable_by_key(|diagnostic| diagnostic.range);
12501233
12511234 // Update the inlay hint annotations' positions, helping ensure they are displayed in the proper place
12521235 let apply_inlay_hint_changes = |annotations: &mut Rc<[InlineAnnotation]>| {
@@ -1723,33 +1706,13 @@ impl Document {
17231706
17241707 pub fn replace_diagnostics(
17251708 &mut self,
1726− diagnostics: impl IntoIterator<Item = Diagnostic>,
1727− unchanged_sources: &[String],
1709+ mut diagnostics: Vec<Diagnostic>,
17281710 language_server_id: usize,
17291711 ) {
1730− if unchanged_sources.is_empty() {
1731− self.clear_diagnostics(language_server_id);
1732− } else {
1733− self.diagnostics.retain(|d| {
1734− if d.language_server_id != language_server_id {
1735− return true;
1736− }
1737−
1738− if let Some(source) = &d.source {
1739− unchanged_sources.contains(source)
1740− } else {
1741− false
1742− }
1743− });
1744− }
1745− self.diagnostics.extend(diagnostics);
1746− self.diagnostics.sort_unstable_by_key(|diagnostic| {
1747− (
1748− diagnostic.range,
1749− diagnostic.severity,
1750− diagnostic.language_server_id,
1751− )
1752− });
1712+ self.clear_diagnostics(language_server_id);
1713+ self.diagnostics.append(&mut diagnostics);
1714+ self.diagnostics
1715+ .sort_unstable_by_key(|diagnostic| diagnostic.range);
17531716 }
17541717
17551718 pub fn clear_diagnostics(&mut self, language_server_id: usize) {
languages.toml−1
@@ -191,7 +191,6 @@ auto-format = true
191191comment-token = "//"
192192language-servers = [ "rust-analyzer" ]
193193indent = { tab-width = 4, unit = " " }
194−persistent-diagnostic-sources = ["rustc", "clippy"]
195194
196195[language.auto-pairs]
197196'(' = ')'
logo.svg+1−1
@@ -1 +1 @@
1−<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;" viewBox="663.38 37.57 575.35 903.75"><g transform="matrix(1,0,0,1,-31352.7,-1817.25)"><g transform="matrix(1,0,0,1,31062.7,-20.8972)"><g transform="matrix(1,0,0,1,-130.173,0.00185558)"><path style="fill:#706bc8;" d="M1083.58,1875.72L1635.06,2194.12C1649.8,2202.63 1658.88,2218.37 1658.88,2235.39C1658.88,2264.98 1658.88,2311.74 1658.88,2341.33C1658.88,2349.84 1656.61,2358.03 1652.5,2365.16C1652.5,2365.16 1214.7,2112.4 1107.2,2050.33C1092.58,2041.89 1083.58,2026.29 1083.58,2009.41C1083.58,1963.5 1083.58,1875.72 1083.58,1875.72Z"></path></g><g transform="matrix(1,0,0,1,-130.173,0.00185558)"><path style="fill:#55c5e4;" d="M1635.26,2604.84C1649.88,2613.28 1658.88,2628.87 1658.88,2645.75C1658.88,2691.67 1658.88,2779.44 1658.88,2779.44L1107.41,2461.05C1092.66,2452.53 1083.58,2436.8 1083.58,2419.78C1083.58,2390.19 1083.58,2343.42 1083.58,2313.84C1083.58,2305.32 1085.85,2297.13 1089.96,2290.01C1089.96,2290.01 1527.76,2542.77 1635.26,2604.84Z"></path></g><g transform="matrix(1,0,0,1,216.062,984.098)"><path style="fill:#84ddea;" d="M790.407,1432.56C785.214,1435.55 780.717,1439.9 777.509,1445.46C767.862,1462.16 773.473,1483.76 790.004,1493.59L789.998,1493.59L761.173,1476.95C746.427,1468.44 737.344,1452.71 737.344,1435.68C737.344,1406.09 737.344,1359.33 737.344,1329.74C737.344,1312.71 746.427,1296.98 761.173,1288.47L1259.59,1000.74L1259.83,1000.6C1264.92,997.617 1269.33,993.314 1272.48,987.844C1282.13,971.136 1276.52,949.544 1259.99,939.707L1260,939.707L1288.82,956.349C1303.57,964.862 1312.65,980.595 1312.65,997.622C1312.65,1027.21 1312.65,1073.97 1312.65,1103.56C1312.65,1120.59 1303.57,1136.32 1288.82,1144.83L1259.19,1161.94L1259.59,1161.68L790.407,1432.56Z"></path></g><g transform="matrix(1,0,0,1,216.062,984.098)"><path style="fill:#997bc8;" d="M790.407,1686.24C785.214,1689.23 780.717,1693.58 777.509,1699.13C767.862,1715.84 773.473,1737.43 790.004,1747.27L789.998,1747.27L761.173,1730.63C746.427,1722.12 737.344,1706.38 737.344,1689.36C737.344,1659.77 737.344,1613.01 737.344,1583.42C737.344,1566.39 746.427,1550.66 761.173,1542.15L1259.59,1254.42L1259.83,1254.28C1264.92,1251.29 1269.33,1246.99 1272.48,1241.52C1282.13,1224.81 1276.52,1203.22 1259.99,1193.38L1260,1193.38L1288.82,1210.03C1303.57,1218.54 1312.65,1234.27 1312.65,1251.3C1312.65,1280.89 1312.65,1327.65 1312.65,1357.24C1312.65,1374.26 1303.57,1390 1288.82,1398.51L1259.19,1415.61L1259.59,1415.36L790.407,1686.24Z"></path></g></g></g></svg>
1+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;" viewBox="663.38 37.57 575.35 903.75"> <g transform="matrix(1,0,0,1,-31352.7,-1817.25)"> <g transform="matrix(1,0,0,1,31062.7,-20.8972)"> <g transform="matrix(1,0,0,1,-130.173,0.00185558)"> <path d="M1083.58,1875.72L1635.06,2194.12C1649.8,2202.63 1658.88,2218.37 1658.88,2235.39C1658.88,2264.98 1658.88,2311.74 1658.88,2341.33C1658.88,2349.84 1656.61,2358.03 1652.5,2365.16C1652.5,2365.16 1214.7,2112.4 1107.2,2050.33C1092.58,2041.89 1083.58,2026.29 1083.58,2009.41C1083.58,1963.5 1083.58,1875.72 1083.58,1875.72Z" style="fill:#706bc8;"></path> </g> <g transform="matrix(1,0,0,1,-130.173,0.00185558)"> <path d="M1635.26,2604.84C1649.88,2613.28 1658.88,2628.87 1658.88,2645.75C1658.88,2691.67 1658.88,2779.44 1658.88,2779.44L1107.41,2461.05C1092.66,2452.53 1083.58,2436.8 1083.58,2419.78C1083.58,2390.19 1083.58,2343.42 1083.58,2313.84C1083.58,2305.32 1085.85,2297.13 1089.96,2290.01C1089.96,2290.01 1527.76,2542.77 1635.26,2604.84Z" style="fill:#55c5e4;"></path> </g> <g transform="matrix(1,0,0,1,216.062,984.098)"> <path d="M790.407,1432.56C785.214,1435.55 780.717,1439.9 777.509,1445.46C767.862,1462.16 773.473,1483.76 790.004,1493.59L789.998,1493.59L761.173,1476.95C746.427,1468.44 737.344,1452.71 737.344,1435.68C737.344,1406.09 737.344,1359.33 737.344,1329.74C737.344,1312.71 746.427,1296.98 761.173,1288.47L1259.59,1000.74L1259.83,1000.6C1264.92,997.617 1269.33,993.314 1272.48,987.844C1282.13,971.136 1276.52,949.544 1259.99,939.707L1260,939.707L1288.82,956.349C1303.57,964.862 1312.65,980.595 1312.65,997.622C1312.65,1027.21 1312.65,1073.97 1312.65,1103.56C1312.65,1120.59 1303.57,1136.32 1288.82,1144.83L1259.19,1161.94L1259.59,1161.68L790.407,1432.56Z" style="fill:#84ddea;"></path> </g> <g transform="matrix(1,0,0,1,216.062,984.098)"> <path d="M790.407,1686.24C785.214,1689.23 780.717,1693.58 777.509,1699.13C767.862,1715.84 773.473,1737.43 790.004,1747.27L789.998,1747.27L761.173,1730.63C746.427,1722.12 737.344,1706.38 737.344,1689.36C737.344,1659.77 737.344,1613.01 737.344,1583.42C737.344,1566.39 746.427,1550.66 761.173,1542.15L1259.59,1254.42L1259.83,1254.28C1264.92,1251.29 1269.33,1246.99 1272.48,1241.52C1282.13,1224.81 1276.52,1203.22 1259.99,1193.38L1260,1193.38L1288.82,1210.03C1303.57,1218.54 1312.65,1234.27 1312.65,1251.3C1312.65,1280.89 1312.65,1327.65 1312.65,1357.24C1312.65,1374.26 1303.57,1390 1288.82,1398.51L1259.19,1415.61L1259.59,1415.36L790.407,1686.24Z" style="fill:#997bc8;"></path></g></g></g> </svg>
runtime/themes/nord.toml−9
@@ -134,15 +134,6 @@
134134"ui.bufferline" = { fg = "nord5", bg = "nord1" }
135135"ui.bufferline.active" = { fg = "nord6", bg = "nord2", underline = { color = "nord8", style = "line" }, modifiers = [ "italic" ] }
136136
137−# Markup
138−"markup.heading" = "nord8"
139−"markup.list" = "nord9"
140−"markup.bold" = { modifiers = ["bold"] }
141−"markup.italic" = { modifiers = ["italic"] }
142−"markup.strikethrough" = { modifiers = ["crossed_out"] }
143−"markup.link.text" = "nord8"
144−"markup.raw" = "nord7"
145−
146137[palette]
147138# Polar Night is made up of four darker colors that are commonly used for base elements like backgrounds or text color in bright ambiance designs.
148139#