special_indices 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. ! model = keycodes
  2. my_model = my_keycodes
  3. * = default_keycodes
  4. ! layout[single] variant = symbols // valid
  5. layout_a my_variant = a+extra_variant
  6. ! layout[single] = symbols
  7. layout_a = A
  8. ! layout = symbols
  9. layout_b = B
  10. layout_c = C:%i // valid, but unusual
  11. layout_d = D
  12. layout_e = E
  13. * = %l[%i]%(v[%i]) // valid, but unusual
  14. ! layout[first] = symbols
  15. layout_a = a:1
  16. layout_b = b:1
  17. layout_c = c:1
  18. layout_d = d:%i // valid, but unusual
  19. layout_e = e:1
  20. * = %l[%i]%(v[%i]) // valid, cannot be easily expressed otherwise
  21. ! layout[first] = symbols
  22. layout_e = %+l // different output if single or multiple layouts
  23. ! layout[later] = symbols
  24. layout_a = +x:%i
  25. layout_b = +y:%i
  26. * = +%l[%i]%(v[%i]):%i
  27. ! layout[multiple] = symbols
  28. layout_a = +m:%i
  29. ! layout[any] = symbols
  30. layout_c = +z:%i
  31. ! layout[any] variant[any] = symbols
  32. * extra = +foo:%i|bar:%i
  33. ! layout[1] variant = symbols // invalid mapping
  34. * * = +AAA:%i
  35. ! layout variant[1] = symbols // invalid mapping
  36. * * = +BBB:%i
  37. ! layout[1] variant[2] = symbols // invalid mapping
  38. * * = +CCC:%i
  39. ! layout[any] variant = symbols // invalid mapping
  40. * * = +DDD:%i
  41. ! layout variant[any] = symbols // invalid mapping
  42. * * = +EEE:%i
  43. ! layout[any] variant[1] = symbols // invalid mapping
  44. * * = +FFF:%i
  45. ! layout[any] variant[first] = symbols // invalid mapping
  46. * * = +GGG:%i
  47. ! model = types
  48. my_model = my_types
  49. * = default_types
  50. ! model = compat
  51. my_model = my_compat
  52. * = default_compat
  53. ! option = symbols
  54. my_option = +extra_option
  55. // Used to check that special indices merge the KcCGST values in the
  56. // expected order.
  57. ! layout[any] option = symbols
  58. layout_c option_2 = +HHH:%i
  59. layout_b option_1 = +III:%i
  60. // should be skipped (no explicit merge mode) and
  61. // should not interact with other rules
  62. layout_b option_2 = skip
  63. layout_b option_3 = +JJJ:%i
  64. layout_c option_1 = +KKK:%i
  65. ! layout[first] option = compat symbols
  66. * option_1 = skip1 skip
  67. * option_2 = skip2 +LLL
  68. ! layout[later] option = symbols compat
  69. layout_c option_2 = +MMM:%i skip1
  70. layout_c option_1 = +NNN:%i skip2
  71. layout_b option_1 = +OOO:%i skip3
  72. // Invalid %i (no layout nor variant): always discarded
  73. ! model = symbols
  74. * = +invalid:%i
  75. // Invalid %i (no layout nor variant): always discarded
  76. ! option = symbols
  77. * = +invalid-too:%i