小编Chr*_*ipp的帖子

Visual Studio Code Intellisense不适用于Javascript

我在Windows和Mac上使用Visual Studio Code(VSC)0.10.11.出于这个问题的目的,我有一个小的JavaScript代码段:

'use strict';

const os = require('os');
console.log(os.homedir());
Run Code Online (Sandbox Code Playgroud)

我在Visual Studio Code(博客条目Pluralsight Visual Studio代码JavaScript智能感知 - 对于那些拥有帐户的人)上关注了John Papa ,因此我希望VSC在打字时提供Intellisense和Quick fix选项.

在VSC上面的片段中识别consolelog()(我使用胡佛,但它与Intellisense相同):

安慰 日志

但不是oshomedir():

口 主目录

但所有4种类型都可用typings/main/ambient/node/index.d.ts.我知道不同之处require在于os,但在John Papa的视频课程中,VSC还为所需的模块提供了IntelliSense.不同之处在于John Papa tsd在我使用时使用typings.

所以我的问题是

  • 如何为所有已知类型启用Intellisense?
  • 我有什么办法,VSC为我提供快速修复(绿色线条模块下缺少打字)?

javascript node.js visual-studio-code

24
推荐指数
2
解决办法
3万
查看次数

Phonegap/Cordova国际化支持

我正在使用Phonegap开发移动应用程序,我需要国际化 - 显示不同语言的html页面.我现在明白这不是Phonegap问题 - 我必须将Web应用程序国际化.

  • 是否有任何框架支持国际化(例如jQuery Mobile)?
  • 是否可以使用模板方法,例如使用属性文件和模板并在构建过程中生成HTML?`
  • 如果我使用Bourbon的方法(参见答案),我如何切换每个选项设置的语言?

亲切的问候,基督徒

--- 编辑 -

Phonegap自2.2.0以来有一个很好的Globalization插件.它涵盖了很多i18n功能.查看文档http://docs.phonegap.com/en/edge/cordova_globalization_globalization.md.html#Globalization

cordova

23
推荐指数
4
解决办法
2万
查看次数

Android(分布式应用程序)主键策略

我将实现具有多个移动客户端和基于Web的服务器应用程序的分布式应用程序.因此,允许每个客户端和服务器生成表条目.因此,我需要所有参与者的唯一主键,我希望能够离线生成密钥.

生成在分布式环境中使用的主键的最佳方法是什么?对于类似的问题,请参阅使用SQLite和Azure SQL数据库作为中央存储的在线/离线多客户端移动应用程序的最佳主键策略是什么?

我知道UUID密钥生成对于这种情况来说是一个很好的方法,但是我想坚持使用名称为_id的密钥并按照Android平台的建议输入.

我不希望具有设备(也是服务器是设备)id和本地ID 的复合 ID.这种方法无论如何都不会很好,因为服务器应该能够为某个客户端生成条目.在这种情况下,我还必须在服务器上使用设备ID.

因此,我目前最喜欢的是使用数据类型long构建我的密钥(我之前在另一个项目中执行了此操作).我想我将使用高/低方法(例如参见这里的Hi/Lo算法是什么?)并且有一个键包括:

  • 从服务器生成的客户端ID(例如~28位)
  • 在客户端递增的低值(例如~4位),永不持久
  • 在客户端递增的高值(例如~32位)仅在客户端上保留

必须在首次启动移动应用程序时从服务器获取客户端ID.所以第一次启动需要网络连接.这可能是这种方法的缺点.在设备上拥有客户端ID时,我可以在没有网络连接的情况下生成密钥.

通常,高id是数据库的唯一值.当用户卸载应用程序并再次安装它时,我必须将他视为新客户端,并且必须给他一个新的客户端ID.否则我将不得不在服务器上保存当前的高ID,以便能够在丢失或重新安装时恢复它 - 不值得努力.

在Android上获取高ID的最佳方法是什么?自动增量键不是解决方案.我需要类似发电机功能的东西.它必须在自己的事务中执行(而不是"用户"事务).有没有人在Android上体验过这种方法,有人能指出我正确的方向吗?(我只找到了这个答案).

您在多客户端应用程序(在线和离线)中使用了哪些关键策略?

sqlite android database-design

14
推荐指数
1
解决办法
1934
查看次数

如何在IntelliJ IDEA 13/14中使用现有的Gradle项目

我正在使用Gradle和IntelliJ IDEA.通常我apply plugin: 'idea'用来生成IDEA项目文件.使用IDEA 12,我习惯使用JetGradle工具视图.

现在我更新到IDEA 13并且JetGradle工具视图消失了.当我使用旧的运行配置时gradle:run,IDEA告诉我:

Error running gradle:run:
Module 'X' is not backed by gradle.
Run Code Online (Sandbox Code Playgroud)

如何在没有工具视图的情况下激活IDEA 13中的gradle构建?我在CédricChampeau 发现了这条推文,但仍未能解决.我是否必须将简单的gradle项目转变为多模块项目或者什么?

更新
随着File - Import Project ...我可以导入的build.gradle文件,比我可以选择View - Tool Windows - Gradle,这是以前隐藏.这是要走的路吗?

intellij-idea gradle

14
推荐指数
2
解决办法
2万
查看次数

启动位置策略

我通过GPS定期收到位置更新,问题是第一次位置更新发生的时间 - 它只是很长.当用户在建筑物内时,这个时间甚至更糟.

因此,我正在寻找一些改善启动时间的策略(目前我不使用,getLastKnownLocation但我会).我开始阅读A Deep Dive Into Location以获得一些想法,并且现在有一些想法,我想和你讨论.

首先,上面提到的博客文章会通过设备上的每个位置提供程序进行查询getLastKnownLocation,但只会在它们不旧时并且在允许的准确度内时对它们进行查询.

这是我的第一个问题:我希望基于网络的位置立即可用,所以我会请求一个新的基于网络的位置,然后我会getLastKnownLocation从GPS提供商那里获得,如果最后的GPS位置是在由基于点网络的位置和半径精度然后我将采用GPS位置,无论它多大年纪.你怎么看?

在检查了最后一个已知位置后,我将开始GPS位置跟踪,因为我每2秒只需要它10米,我会使用 lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2 * 1000, 10, this);

然而,我发现了一个模式(在幻灯片9596的演示文稿内部是Epic:Android开发的最佳实践,首先他打开粗略和精细的位置(时间和距离变化为0,0)然后,当第一个事件发生时收到后,他切换到真正需要的更新频率.那么,当间隔设置为0时,第一个gps-update会更快吗?

与此模式相反,我将保持粗略更新,直到收到第一个GPS更新.你怎么看?

希望得到一些有趣的答案!

----------------更新----------------

我做了一些调查:我打开GPS并等待修复.然后我关掉GPS并开了50公里(31英里).然后我使用了A Deep Dive Into Location中的代码来获取所有内容getLastKnownLocation.我尝试了两次,首先关闭GPS,然后打开GPS,但没有修复:

1)关闭GPS我得到
- 提供商:网络,正确位置,准确度680m
- 提供商:被动(mProvider =网络),上述位置相同,同时如上
- 提供者:gps,位置null

所以我了解到当gps关闭时你就得不到了getLastKnownLocation.

2)打开GPS后
- 提供者:网络,正确位置,准确度652m
- 提供者:被动(mProvider =网络),与上面相同的位置,同上时间
- 提供者:gps,位置,因为它是2h之前的准确性12米,时间也早2小时

在这里,我了解到旧消息不会失效,即使它们显然是错误的.

在这种情况下算法运行正常,因为我在关闭GPS时移动了.但是如果我进房子怎么办?在那种情况下,即使它过时,2小时的GPS结果也会非常好.

android location

10
推荐指数
1
解决办法
3130
查看次数

Gulp watch终止或构建整个任务链

我正在使用以下构建步骤开发一个打字稿项目:

  • 皮棉
  • 建立
  • 测试

我使用Gulp 4.0作为构建工具,并希望有一个监视任务,它应该触发测试(这意味着先前触发了lint和构建任务).目前,当发生错误(例如lint错误)时,监视任务终止.

这个问题是众所周知的并且易于解决.典型的解决方案是a)防止错误或b)修补管道行为.

a)对于gulp-tslint,我可以在他们的主页上使用这个配置:

gulp.task("invalid-noemit", () =>
    gulp.src("input.ts")
        .pipe(tslint())
        .pipe(tslint.report("prose", {
          emitError: false
        }))
);
Run Code Online (Sandbox Code Playgroud)

但是当我包含该emitError标志时,会记录lint错误并执行所有后续gulp任务(构建,测试).

b)我也可以gulp-plumber手动使用或捕获错误(参见此处),但所有这些已知解决方案的行为都是相同的,执行以下gulp任务(构建,测试).

我想要的是任务链在发生错误后停止(在lint错误之后没有构建和测试),但是watch任务应该永远不会停止.我该怎么解决这个问题?观察者任务看起来像这样:

// watcher
gulp.task('watch', gulp.series('test', function doWatch() {
    gulp.watch([
        config.paths.sourcePattern,
        config.paths.testPattern,
        'gulpfile.js'
    ], gulp.parallel('test'));
}));
Run Code Online (Sandbox Code Playgroud)

你可以在gulpfile.js 这里找到完整的.

watch typescript gulp

9
推荐指数
1
解决办法
606
查看次数

Spring Roo插件目录

是否有Spring Roo插件的公共目录?

我只知道这个论坛主题Spring Roo社区AddOns,但我知道有很多其他插件可用,无论如何我没有找到一个列出它们的页面.例如,Grails有自己的插件门户.

我所做的是搜索谷歌代码的roo插件roo插件,但我不满意.

spring-roo

8
推荐指数
1
解决办法
4645
查看次数

使用基于Java的配置进行Spring 3.2单元测试

我使用Spring 3.2与基于Java的配置,并在我的单元测试(JUnit 4.8.1)有一些问题.所以这是一个测试运行者:

 @RunWith(SpringJUnit4ClassRunner.class)
 @ContextConfiguration(classes={TestConfig.class})
 public class ManualTest
 {
     @Autowired
     ...
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:

Caused by: java.lang.IllegalStateException: CGLIB is required to process @Configuration classes. Either add CGLIB to the classpath or remove the following @Configuration bean definitions: [testConfig]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:327)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:222)
Run Code Online (Sandbox Code Playgroud)

正如Spring博客所述,Spring 3.2正在内联CGLIB 3.那么为什么我会收到此错误?

我使用Gradle 1.3作为构建管理工具,使用STS作为IDE.当调用gradle eclipsegradle拉入依赖项两次时:一次作为普通jar,一次作为库:

首先作为普通罐子: 普通罐子

而不是作为图书馆:

图书馆

在普通jar部分我仍然配置了Spring 3.1,而在库部分则有Spring 3.2.所以我删除了普通罐子,一切正常.

这是我的项目build.gradle

configurations
{
    driver
}

dependencies
{
    driver 'com.oracle:ojdbc6:11.2.0'

    compile "org.springframework:spring-jdbc:$springVersion"

    testCompile 'com.oracle:ojdbc6:11.2.0'
    testCompile "org.springframework:spring-test:$springVersion"
    testCompile "commons-dbcp:commons-dbcp:$dbcpVersion"
    testCompile "junit:junit:$junitVersion"
    testCompile "org.slf4j:slf4j-log4j12:$slf4jVersion"
}

sourceSets 
{
    main …
Run Code Online (Sandbox Code Playgroud)

java spring gradle cglib

8
推荐指数
1
解决办法
1762
查看次数

使Java库"Groovy"

我爱上了Groovy,并试图越来越多地使用它.现在我必须使用Oracle Forms Jdapi库.使用这个库时,你写了很多这样的代码:

JdapiIterator progIterator = getWorkForm().getProgramUnits();
while(progIterator.hasNext()) {
    ProgramUnit currProgUnit = (ProgramUnit) progIterator.next();
    ...
}
Run Code Online (Sandbox Code Playgroud)

和cource我想写

getWorkForm().programUnits.each {
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是,我从未在现有Java库中编写Groovy接口,需要一些帮助.我知道Groovy 2.0的扩展方法,但在这种情况下,我正在考虑在不同的命名空间中具有相同名称的类,它只委托我想保留的函数.

提供each功能的最佳方法是什么,还有适用于集合的所有其他闭包?如果你指出我正确的方向,我将不胜感激!

groovy

6
推荐指数
1
解决办法
364
查看次数

仅处理已更改的文件

什么:
使用jenkins我想定期处理来自SVN的已更改文件,并将处理的输出提交回SVN.

原因:
我们将二进制文件提交到SVN(我们正在使用Oracle Forms并提交fmb-Files).我创建了一个脚本,它将fmb导出到xml(使用Oracle的原始Fmb2XML工具),而不是将XML转换为我们也想提交的普通源.这让我们可以欣赏,查看变化,....

问题:
目前我只能检查所有内容,转换整个目录并将整个目录提交回SVN.但由于所有纯文本文件都是新生成的,因此它们在SVN中显示为已更改.我只想提交更改后的内容.

谁能帮我这个?

svn jenkins

5
推荐指数
1
解决办法
5827
查看次数