apicurio-studio
apicurio-studio copied to clipboard
Multi-byte input in multi-line input form does not behave properly.
In the API edit screen, copying and pasting the following characters into a form and then entering and deleting single byte characters after the following characters causes strange behavior. A strange phenomenon occurs in the markdown input and source editing screens. Is it possible to fix this?
It is hard to explain in words, but it seems that the middle of multi-byte characters are deleted, and single-byte characters that should have been deleted are still displayed.
ああ⇒ああ⇒ああaa
I think I am having a problem with the multi-line input form.
The following is the form just after copying and pasting. Normally, after pasting, the input position on the keyboard is supposed to be right after the pasted character, but since the input position is at the end of the multibyte character, it is behaving strangely at this point.
I don't seem to have the same problem with the single line input form.
This might be a bug in the Ace editor itself...I'm not sure. :(
I have seen the same phenomenon. But ,I can't put it into words very clearly, but I somehow feel that Apicurio's symptoms are more strange.
https://ace.c9.io/#nav=embedding
I've posted an Issue to the Ace Editor. https://github.com/ajaxorg/ace/issues/4512
It's a little strange, but I think it's less of a problem with the current latest version of AceEditor; upgrading the version of Ace Editor in Apicurio studio might help.
The problem there is that we're pulling in the Ace editor via brace
which appears to no longer be updated with the latest Ace editor. We'll probably need a bit more work to upgrade Ace than just tweaking the version # in package.json
sadly.
@EricWittmann I think ace-build is the original, but is there a reason why you use brace?
@EricWittmann I found out that there is a problem with the isFullWidth method of the brace package, which has not been updated for several years.
I found that I can work around the problem by applying a patch like this. https://gist.github.com/sinkuu/021ca0d9f6878dc6165ccf6d784075c4
I don't recall whether ace-build didn't work or I just didn't know about it. brace
is the browserify compatible version. Not sure whether ace-builds is also compatible with browserify. We're very outdated on a lot of our UI stuff. We really need to upgrade to React, Patternfly 4, etc. But that's a ton of work.
Interesting patch! I wonder if we could apply that patch during the build in some way.
@EricWittmann After checking, I realized that this patch was wrong, and I'm working on fixing it. I'm working on a fix for the patch and will send you a PR.
We have been informed that there is a problem in Thai, so it seems that we need to include this support for each language when considering other language versions. For Japanese, the problem will be solved by a patch that we are preparing. https://github.com/ajaxorg/ace/issues/4512