Insert s at pos.

assert "helloworld".insert_at(" ", 5)   == "hello world"
var b = new Buffer
b.append("Hello世界")
b = b.insert_at(" beautiful ", 5)
assert b == "Hello beautiful 世界"

Property definitions

core $ Text :: insert_at
	# Insert `s` at `pos`.
	#
	# ~~~
	# assert "helloworld".insert_at(" ", 5)	== "hello world"
	# var b = new Buffer
	# b.append("Hello世界")
	# b = b.insert_at(" beautiful ", 5)
	# assert b == "Hello beautiful 世界"
	# ~~~
	fun insert_at(s: String, pos: Int): SELFTYPE is abstract
lib/core/text/abstract_text.nit:1284,2--1293,57

core $ Buffer :: insert_at
	redef fun insert_at(s, pos) do
		var obuf = new Buffer.with_cap(byte_length + s.byte_length)
		obuf.append_substring(self, 0, pos)
		obuf.append s
		obuf.append_substring(self, pos, length - pos)
		return obuf
	end
lib/core/text/abstract_text.nit:1729,2--1735,4

core $ Concat :: insert_at
	redef fun insert_at(s, pos) do
		var lft = _left
		if pos > lft.length then
			return lft + _right.insert_at(s, pos - lft.length)
		end
		return lft.insert_at(s, pos) + _right
	end
lib/core/text/ropes.nit:201,2--207,4

core :: ropes $ FlatString :: insert_at
	redef fun insert_at(s, pos) do
		var l = substring(0, pos)
		var r = substring_from(pos)
		return l + s + r
	end
lib/core/text/ropes.nit:286,2--290,4