uni-app 插件需求 括号高亮显示 点击显示一对

发布于 1周前 作者 itying888 来自 Uni-App

uni-app 插件需求 括号高亮显示 点击显示一对

3 回复

我也好希望,括号和标签,能看瞎眼


都一年多了,现在还没有Rainbow Brackets,插件市场急需丰富起来

uni-app 中实现括号高亮显示,并且在点击时显示其配对括号,可以通过自定义组件和一些 JavaScript 代码来实现。以下是一个基本的实现思路,包括代码示例。

1. 创建自定义组件

首先,我们创建一个自定义组件 BracketHighlighter.vue,用于处理括号高亮和点击事件。

<template>
  <view>
    <text @click="handleClick" :class="{'highlight': isHighlighted, 'pair': isPair}">
      {{ text }}
    </text>
  </view>
</template>

<script>
export default {
  props: {
    text: {
      type: String,
      required: true
    },
    brackets: {
      type: Array,
      required: true
    },
    index: {
      type: Number,
      required: true
    },
    highlightIndex: {
      type: Number,
      default: null
    }
  },
  computed: {
    isHighlighted() {
      return this.highlightIndex === this.index;
    },
    isPair() {
      const pairIndex = this.brackets[this.index];
      return this.highlightIndex === pairIndex;
    }
  },
  methods: {
    handleClick() {
      this.$emit('show-pair', this.index);
    }
  }
};
</script>

<style>
.highlight {
  background-color: yellow;
}
.pair {
  background-color: lightblue;
}
</style>

2. 使用自定义组件

在主页面 index.vue 中使用自定义组件,并处理点击事件来显示配对括号。

<template>
  <view>
    <BracketHighlighter
      v-for="(text, index) in texts"
      :key="index"
      :text="text"
      :brackets="brackets"
      :index="index"
      :highlight-index="highlightIndex"
      @show-pair="highlightPair"
    />
  </view>
</template>

<script>
import BracketHighlighter from './components/BracketHighlighter.vue';

export default {
  components: {
    BracketHighlighter
  },
  data() {
    return {
      texts: ['(', ')', '{', '}'],
      brackets: [1, 0, 3, 2], // Pairing indices
      highlightIndex: null
    };
  },
  methods: {
    highlightPair(index) {
      this.highlightIndex = this.brackets[index];
    }
  }
};
</script>

3. 注意事项

  • 上述代码仅用于演示,假设括号的配对关系是已知的,并且存储在 brackets 数组中。
  • 在实际应用中,你可能需要动态计算括号配对关系,这通常涉及到对文本内容的解析。
  • 可以根据实际需求进一步扩展,例如支持不同类型的括号(圆括号、花括号、方括号等),以及处理嵌套括号的情况。

通过这种方法,你可以在 uni-app 中实现括号的高亮显示和点击显示配对括号的功能。

回到顶部