小编dus*_*sch的帖子

VSCode 扩展在编辑器区域嵌入图像

我想为 VSCode 编写一个扩展,它可以在您正在编辑的文本文件中搜索某个单词,并在编辑器视图中用图像替换该单词。单击图像后,它应该会转换回原始文本,并且像平常一样可编辑。

我本来希望这是可能的,但在发现 VSCode 不允许你直接操作 DOM 后,我对此表示怀疑。

有人可以向我指出一些文档,使我能够将图像添加到编辑器窗口吗?(而不是左侧的行号区域)?

预先非常感谢!

visual-studio-code vscode-extensions

5
推荐指数
1
解决办法
6282
查看次数

使用case语句在ruby中分配多个变量

我正在用ruby实现HSV到RGB函数,我希望这样的语法:

def hsv_to_rgb(h, s, v)
    if (h == 0) then return 0, 0, 0 end
    c = v * s
    hp = h / 60.0
    x = c * (1 - (hp % 2 - 1).abs)
    r, g, b = case hp
        when 0..1
            c, x, 0
        when 1..2
            x, c, 0
        when 2..3
            0, c, x 
        when 3..4
            0, x, c
        when 4..5
            x, 0, c
        else
            c, 0, x
        end

    m = v - c
    return r + …
Run Code Online (Sandbox Code Playgroud)

ruby

2
推荐指数
1
解决办法
682
查看次数

用默认对象填充红宝石数组

假设我在ruby中有一个Counter类,定义为

class Counter
    attr_accessor :starting_value
    def initialize(starting_value)
        @starting_value = starting_value
    end

    def tick
        @starting_value = @starting_value + 1
    end
end
Run Code Online (Sandbox Code Playgroud)

我想使用默认参数用该对象填充数组,如下所示: counter_arr = Array.new(5, Counter.new(0))

这几乎是我想要的,除了我现在有一个包含5次相同计数器实例的数组,而不是包含5个新计数器的数组。IE浏览器当我运行代码

counter_arr = Array.new(5, Counter.new(0)) 
counter_arr[0].tick
counter_arr.each do |c|
    puts(c.starting_value)
end
Run Code Online (Sandbox Code Playgroud)

我输出

1
1
1
1
1
Run Code Online (Sandbox Code Playgroud)

代替

1
0
0
0
0
Run Code Online (Sandbox Code Playgroud)

我想知道,用对象的多个新实例初始化数组的“红宝石式”方法是什么?

ruby

1
推荐指数
1
解决办法
81
查看次数