natvis - удаляет префиксы из перечислений (или других оцененных значений) - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть перечисление

typedef enum eAnimals{
  SOME_PREFIX_INDICATING_IT_BELONGS_TO_ANIMALS__CAT,
  SOME_PREFIX_INDICATING_IT_BELONGS_TO_ANIMALS__DOG,
  SOME_PREFIX_INDICATING_IT_BELONGS_TO_ANIMALS__SHEEP,
  SOME_PREFIX_INDICATING_IT_BELONGS_TO_ANIMALS__BROOM,
}Animals;

У меня также есть некоторые структуры, которые содержат член.

typedef struct sCowboy{
  const char* name;
  /* some other stuff */ 
  int  guns;
  Animals rides;
}Cowboy;

Я хочу использовать это поле в визуализаторах Показать строку, но удалить префикспотому что он использует слишком много места.

, например, если displayString:

<Type Name="Cowboy">
  <AlternativeTypeName="sCowboy" />
  <DisplayString>Cowboy {name} has {guns} guns and rides a {rides}</DisplayString>
</Type>

{rides} расширен до правильного имени значения перечисления.Могу ли я каким-то образом манипулировать вычисляемым выражением, например, с помощью некоторого регулярного выражения, чтобы избавиться от некоторых частей (в данном случае префикса)?

Одна вещь заключается в создании собственной записи Visualizer с условными выражениями для Animals, но

  1. также кажется, что невозможно создать визуализатор для перечислений.
  2. Я не знаю, как ссылаться на сам объект в условном выражении (есть ли какой-то $this?
...