ruby 修复了SublimeRepl以使其与jruby一起使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 修复了SublimeRepl以使其与jruby一起使用相关的知识,希望对你有一定的参考价值。

require 'rubygems'
gem 'pry'
require 'pry'
require 'socket'
require 'thread'
require 'json'

include Socket::Constants

class PryInput
    def readline(prompt)
        $stdout.print prompt
        $stdout.flush
        $stdin.readline
    end
end

class PryOutput
    def puts(data="")
        $stdout.puts(data.gsub('`', "'"))
        $stdout.flush
    end
end

Pry.config.input = PryInput.new()
Pry.config.output = PryOutput.new()
Pry.config.color = false
Pry.config.editor = ARGV[0]
Pry.config.auto_indent = false
Pry.config.correct_indent = false

port = ENV["SUBLIMEREPL_AC_PORT"].to_i


socket = TCPSocket.new('127.0.0.1', port)

completer = Pry::InputCompleter.build_completion_proc(binding)

def read_netstring(s)
    size = 0
    while true
        ch = s.recvfrom(1)[0]
        if ch == ':'
            break
        end
        size = size * 10 + ch.to_i
    end
    msg = ""
    while size > 0
        msg += s.recvfrom(size)[0]
        size -= msg.length
    end
    #ch = s.recvfrom(1)[0]
    return msg
end

# Thread.abort_on_exception = true
t1 = Thread.new do
    while true
        data = read_netstring(socket)
        req = JSON.parse(data)
        line = req["line"]
        completions = completer.call(req["line"])
        response = [line, completions]
        response_msg = JSON.dump(response)
        payload = response_msg.length.to_s + ":" + response_msg + ","
        socket.write(payload)
    end
end


Pry.start # self

以上是关于ruby 修复了SublimeRepl以使其与jruby一起使用的主要内容,如果未能解决你的问题,请参考以下文章

使用 CSS 包含自定义字体以使其与最大浏览器兼容的最佳方法是啥?

如何使用 Spring Security 实现登录页面以使其与 Spring Web 流一起使用?

如何重新采样 DataFrame 以使其与另一个 DataFrame 正确对齐?

设置啥 CursorAdapter(Context context, Cursor c, int flags) 以使其与 CursorLoader 一起工作?

xmpp-connection (spring integration) 的正确参数是啥,以使其与 google gcm 一起使用?

如何安装 Finder Sync Extension 以使其与 Finder 持久集成?