我正在使用xtext为特定语言生成编辑器.当我使用编辑器作为我的新语言时,它具有所有可爱的xtext功能,如代码完成和着色等.我希望能够做的是在我的编辑器中可视化文本的结构.
我知道xtext有一个内部AST和一个解析树(我知道他们称之为"节点模型") - 有没有可视化这棵树的方法?
给定文件
#include <stdio.h>
int main() {
printf("hello world\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我可以使用命令
clang -emit-llvm hello.c -c -o hello.bc
llc hello.bc -march=mipsel -relocation-model=static -o hello.s
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我尝试在可靠的SPIM模拟器中运行MIPS时,我发现SPIM对象几乎每一行都会产生一个看起来像MIPS代码的好处(放在下面,以避免分解文本).不仅是'.Section .mdebug.abi32'行,而且还有'.cfi*'形式的任何一行 - 甚至更令人困惑(因为它看起来像MIPS给我......)行'lui $ 2,%hi( __gnu_local_gp)"被反对.
我正在寻找有关SPIM和LLVM应对的MIPS的不同风格的一些信息,或者有人提供我可以运行的MIPS模拟器的示例,该模拟器接受LLVM正在生成的MIPS代码.
.Section .mdebug.abi32
.previous
.file "hello.bc"
.text
.globl main
.align 2
.type main,@function
.set nomips16 # @main
.ent main
main:
.cfi_startproc
.frame $sp,32,$ra
.mask 0x80000000,-4
.fmask 0x00000000,0
.set noreorder
.set nomacro
# BB#0: # %entry
addiu $sp, $sp, -32
$tmp2:
.cfi_def_cfa_offset 32
sw $ra, 28($sp) # 4-byte …Run Code Online (Sandbox Code Playgroud) 我有一个makefile(由第三方提供),它给出了以下错误
Makefile:108: *** missing separator. Stop.
Run Code Online (Sandbox Code Playgroud)
有问题的行是以下if语句....任何想法?我尝试过用空格替换各种标签,而且根本没有太远...
if have_sdl
libiulib_a_SOURCES += $(srcdir)/utils/dgraphics.cc
libiulib_a_SOURCES += $(srcdir)/utils/SDL_lines.cc
include_HEADERS += $(srcdir)/utils/SDL_lines.h
else
libiulib_a_SOURCES += $(srcdir)/utils/dgraphics_nosdl.cc
endif
Run Code Online (Sandbox Code Playgroud) 我有一小段代码用于跟踪时间 - 很简单,它每隔四分钟拍摄一次我的桌面照片,以便稍后我可以回过头来看看我白天做的事情 - 它很棒,除非我连接到外接显示器 - 这个代码只需要我的笔记本电脑屏幕的屏幕截图,而不是我正在使用的更大的外部显示器 - 任何想法如何更改代码?我正在运行OSX,以防相关......
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
class ScreenCapture {
public static void main(String args[]) throws
AWTException, IOException {
// capture the whole screen
int i=1000;
while(true){
i++;
BufferedImage screencapture = new Robot().createScreenCapture(
new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()) );
// Save as JPEG
File file = new File("screencapture"+i+".jpg");
ImageIO.write(screencapture, "jpg", file);
try{
Thread.sleep(60*4*1000);
}
catch(Exception e){
e.printStackTrace();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
根据给出的解决方案,我做了一些改进,感兴趣的代码在https://codereview.stackexchange.com/questions/10783/java-screengrab进行代码审查.
我觉得这是一个记录不足的功能,但我承认我正在浏览它的可能性要大得多。
我有一个 charjs 对象:
<body>
<div id="container" style="width: 75%;">
<canvas id="canvas"></canvas>
</div>
<script>
weekdays=["Monday", "Tuesday", "Wednesday", "Thurday", "Friday", "Saturday", "Sunday", "Monday"]
var d=new Date()
var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var randomScalingFactor = function() {
return (Math.random() > 0.5 ? 1.0 : 0) * Math.round(Math.random() * 100);
};
var barChartData = {
labels: [weekdays[d.getDay()], weekdays[d.getDay()-6], weekdays[d.getDay()-5], weekdays[d.getDay()-4], weekdays[d.getDay()-3], weekdays[d.getDay()-2],weekdays[d.getDay()-1] ],
datasets: [{
label: 'Logged Time',
backgroundColor: "rgba(220,220,220,0.5)",
data: sessions
}
] …Run Code Online (Sandbox Code Playgroud) 编辑重述问题和我需要的地方:
我现在把问题简化为一个非常小的例子:我有一个带菜单的eclipse插件.它看起来像这样:

我希望该菜单仅在查看特定文件扩展名的文件时出现(假设本例中为.txt).
使用Greg的答案我有以下plugin.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="menu:org.eclipse.ui.main.menu?after=additions">
<menu
id="ARTful.menus.sampleMenu"
label="Hide Me"
mnemonic="M">
<command
commandId="ArtEditor.command.format"
id="ARTful.menus.sampleCommand"
mnemonic="S"
tooltip="Hello!">
</command>
<visibleWhen
checkEnabled="false">
<with variable="selection">
<iterate
ifEmpty="false">
<adapt type="org.eclipse.core.resources.IResource">
<test property="org.eclipse.core.resources.extension" value="txt" />
</adapt>
</iterate>
</with>
</visibleWhen>
</menu>
</menuContribution>
</extension>
</plugin>
Run Code Online (Sandbox Code Playgroud)
使用此设置:

但遗憾的是,这会隐藏任何和所有文件扩展名的菜单.我究竟做错了什么?
原始问题如下
我已经尝试了在visibleWhen中找到的解决方案,以便命令出现在上下文菜单和其他几个地方.
我有一个带菜单的eclipse插件.它看起来像这样:

我希望该菜单仅在查看特定文件扩展名的文件时显示(它被称为'source',因此如果查看带有插件安装的说java文件,则会突然出现两个'源'菜单,这简直无益).
我正在使用'visibleWhen'结构.
我试过测试扩展属性:

(导致这个plugin.xml片段)
<menuContribution
locationURI="menu:org.eclipse.ui.main.menu?after=additions">
<menu
id="ARTful.menus.sampleMenu"
label="Source"
mnemonic="M">
<command
commandId="ArtEditor.command.format"
id="ARTful.menus.sampleCommand"
mnemonic="S"
tooltip="Format">
</command>
<command
commandId="ArtEditor.command.latex"
style="push"
tooltip="LaTex Output">
</command>
<command
commandId="ArtEditor.command.format.alpha"
style="push">
</command> …Run Code Online (Sandbox Code Playgroud) 我在这个网站上有以下代码(它是 Github Pages,所以你可以在这里看到存储库):
@media only screen and (max-width: 600px) {
img {width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
a.box {
width: 100%;
padding:14px 15px;
font-size: 0.75em;
}
}
Run Code Online (Sandbox Code Playgroud)
在我的手机(iPhone 7 Plus)上,屏幕宽度似乎没有触发:
iPhone 7/8/9 Plus 的 Firefox 响应式设计模式也没有:
但是如果我将 Firefox 窗口放大一格:
突然就起作用了!
另外 - 如果我将响应式浏览器窗口设置为与 iphone 6/7/8 完全相同的大小 - 那么它就可以正常工作。这表明这不是大小 - 这是关于 iphone 用户代理字符串的事情?或许?
这是怎么回事以及如何解决?
我正在掌握 EMF,我想检查一下我头脑中的概念是否准确。
据我了解,可以在 Eclipse 中创建 EMF 模型,然后使用它来生成 Java 代码。
我进一步了解模型可以序列化到磁盘然后再返回,但我不明白它的用途。
当然模型文件本身可以保存吗?序列化有明显的用例吗?
我强烈怀疑这个问题不适合Q&A格式,但我很难找到正确的单词 - 随意重复这个问题.
所以我正在查看维基百科的Java虚拟机列表,我发现自己在想,因为Java是一种可移植的语言,为什么有人会选择一个JVM而不是另一个?这是表演吗?有些更安全吗?
我有以下Perl脚本.人们可以(现在不是因为我把它拿下来)ping一个像这样的URL
http://www.joereddington.com/testsound/getsound.pl?text=hello%20mum
Run Code Online (Sandbox Code Playgroud)
然后找到该文件
http://www.joereddington.com/testsound/hope.wav
Run Code Online (Sandbox Code Playgroud)
是一个电脑声音的录音说"你好妈妈".
#!/usr/bin/perl
use strict;
use warnings;
use CGI qw(:standard -debug);
my $text = param('text');
$text =~ s/[^0-9a-zA-Z\s]//g;
print "Content-type: text/html\n\n";
system("/home8/projedf4/tts/espeak-1.48.04-source/src/speak \"$text\" -w hope.wav");
Run Code Online (Sandbox Code Playgroud)
让用户可能利用注入攻击等等,我有点紧张.我相信我已经做好了这条线
$text =~ s/[^0-9a-zA-Z\s]//g;
Run Code Online (Sandbox Code Playgroud)
因为我只是简单地从字符串中提取所有可能造成损害的东西.
但这够了吗?我甚至可以走得那么远
$text =~ s/[^0-9a-zA-Z\s\.,]//g;
Run Code Online (Sandbox Code Playgroud)