我有一个简单的程序,请说如下:
#include <stdio.h>
int main()
{
char buf[100];
while (fgets(buf, sizeof(buf), stdin) != NULL) {
printf("You typed: %s", buf);
}
}
Run Code Online (Sandbox Code Playgroud)
我用Emscripten编译了它:
emcc -o hello.html hello.cpp
Run Code Online (Sandbox Code Playgroud)
这给了我一个非常基本的Emscripten生成的网页,其中包含一个简单的程序输出窗口.但是,该fgets()调用会导致浏览器弹出窗口,大概来自prompt().我可以输入内容,结果最终会显示在输出窗口中.这不是一个理想的互动体验.
我想要的是更传统的"控制台"界面,用户可以在终端窗口中交互式输入以向交互式程序提供输入.
我怀疑解决方案可能存在于JQueryTerminal,Hyper或Xterm.js之类的内容中,但我目前还不清楚如何将其中任何一个实际连接到Emscripten编译的程序.
如何为我的Emscripten代码提供"控制台"界面?
我正在尝试在 jQuery 终端的较少扩展中实现触摸滚动。它的工作方式类似于 less unix 命令。
我有这个代码:
self.touch_scroll(function(event) {
// how much difference changed since last touch move
var delta = event.current.clientY - event.previous.clientY;
var ret;
var interpreter = interpreters.top();
if (is_function(interpreter.touchscroll)) {
ret = interpreter.touchscroll(event, delta, self);
} else if (is_function(settings.touchscroll)) {
ret = settings.touchscroll(event, delta, self);
}
if (ret === true) {
return;
}
return false;
});
// make_callback_plugin is helper that use $.Callbacks and make sure that there is only
// one handler on the element
$.fn.touch_scroll …Run Code Online (Sandbox Code Playgroud) TL; DR
我有替换文本,字符串和光标位置(数字)的函数,我需要获取使用replace函数创建的新字符串的更正位置(数字),如果字符串更改的长度:
input and cursor position: foo ba|r text
replacement: foo -> baz_text, bar -> quux_text
result: baz_text qu|ux_text text
input and cursor position: foo bar| text
replacement: foo -> baz_text, bar -> quux_text
result: baz_text quux_text| text
input and cursor position: foo bar| text
replacement: foo -> f, bar -> b
result: f b| text
input and cursor position: foo b|ar text
replacement: foo -> f, bar -> b
result: f b| text
Run Code Online (Sandbox Code Playgroud)
问题是我可以在原始文本上使用子字符串,但是替换将不匹配整个单词,因此需要对整个文本进行,但是子字符串将不匹配替换.
我也很好用解决方案,当原始光标位于替换单词的中间时,光标始终位于单词的末尾.
现在我的实现,在jQuery终端我有一个格式化程序函数数组:
$.terminal.defaults.formatters
Run Code Online (Sandbox Code Playgroud)
他们接受一个字符串,它应该返回新的字符串它工作正常,除了这种情况: …
我一直在尝试通过webpack加载一个jquery插件.此插件打包为npm模块,其依赖项仅包含jquery.我认为webpack加载了jquery的实例,而不是使用我提供的全局提供的ProvidePlugin.我尝试了另一个stackoverflow帖子中提供的所有解决方案(在webpack中管理jQuery插件依赖项),但他们没有成功; 结果总是一样的:"terminal()不是函数".如果我手动修改node_modules文件夹中的包,删除package.json中的jquery依赖项,并在node_modules插件文件夹中下载的依赖项webpack成功地将该插件与jquery的全局实例绑定.我知道,我可以简单地创建该包的一个分支并使用私有的npm存储库,但我想使用官方包.
这是我的webpack配置:
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var CleanWebpackPlugin = require('clean-webpack-plugin');
var CopyWebpackPlugin = require('copy-webpack-plugin');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var moment = require('moment');
var path = require('path');
var environment = process.env.APP_ENVIRONMENT || 'dev';
module.exports = {
entry: {
'app': './src/main.ts',
'polyfills': './src/polyfills.ts',
'vendor': './src/vendor.ts'
},
/*devtool: 'source-map',*/
output: {
path: './dist',
filename: '[name].browser.' + moment().format('DDMMYYYYHHmm') + '.js'
},
module: {
loaders: [
{ test: /\.component.ts$/, loader: 'ts!angular2-template' },
{ test: /\.ts$/, exclude: /\.component.ts$/, loader: …Run Code Online (Sandbox Code Playgroud)我正在尝试为 jquery 终端添加颜色,就像 linux 中的 bash 终端一样。
我尝试过相同的颜色代码排列
\033]01;31\] # pink
\033]00m\] # white
\033]01;36\] # bold green
\033]02;36\] # green
\033]01;34\] # blue
\033]01;33\] # bold yellow
Run Code Online (Sandbox Code Playgroud)
并且没有颜色选项。
javascript ×3
jquery ×2
android ×1
emscripten ×1
string ×1
touch-event ×1
webpack ×1
xtermjs ×1