在Eclipse中如何让很长的代码分行显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Eclipse中如何让很长的代码分行显示相关的知识,希望对你有一定的参考价值。

比如把
Toast.makeText(DataPickerActivity.this, "闹钟将在"+ (hourSet - hourNow) +"小时" + (muniteSet - minuteNow) + "分钟后启动", Toast.LENGTH_LONG).show();
显示成
Toast.makeText(DataPickerActivity.this
, "闹钟将在"+ (hourSet - hourNow) +"小时" + (muniteSet - minuteNow) + "分钟后启动"
, Toast.LENGTH_LONG).show();

参考技术A Ctrl+Shift+F 或者右键->source->format本回答被提问者采纳 参考技术B ctrl+F

如何在 Cypress 中输入一个很长的字符串来测试输入框?

【中文标题】如何在 Cypress 中输入一个很长的字符串来测试输入框?【英文标题】:How to type a very long string for testing an input box in Cypress? 【发布时间】:2021-09-12 08:51:27 【问题描述】:

我想测试 RichTextEditor 的字符限制的验证,即 2000 个字符,但是用 .type() 输入 2000+ 个字符需要很长时间。

有没有办法加快速度?我尝试使用 Ctrl+c 和 Ctrl+v 修饰符,但它没有在输入框中复制粘贴文本。

【问题讨论】:

.type() 有一个接受对象的配置参数。可配置选项之一是delay,它控制按键之间的间隔。默认值为10,因此将其设置为01 可能会加快速度。 【参考方案1】:

减少延迟 delay: 0 的问题在于,它可以限制字符流,以防某些事件处理程序或验证无法处理最高速率。

另外,如果我使用最简单的输入进行测试,则没有附加 javascript

<input maxlength="2000">

测试需要 37 秒,默认延迟为 10 毫秒,但仍然是 24 秒,延迟为 0。

我建议通过 val() 方法设置 2000 个字符并输入最后一个

cy.get('input')
  .invoke('val', stringGen(2000))  // set 2000 chars
  .type('!')                       // add another
  .invoke('val')                   // read the value
  .should('have.length', 2000)     // confirm the last did not go in

这会在 0.6 秒

内运行

如果您有一些 javascript 事件处理程序,则需要在设置初始 2000 个字符后触发它们

.trigger('change')

.trigger('input')

富文本编辑器

使用&lt;div&gt; 保存文本的富文本编辑器可以使用text() 方法而不是val() 方法预加载。

您还需要识别接收文本的 div。

例如,react-quill 在其主 div 上使用 ql-editor 类。

cy.get('div.ql-editor')
  .invoke('text', stringGen(2000))  // set 2000 chars
  .type('!')                        // add another
  .invoke('text')                   // read the value
  .should('have.length', 2000)      // confirm the last did not go in

react-quill 的时间安排

delay: 10 (默认)32 秒 delay: 0 18 秒 预加载文本 1.5 秒

【讨论】:

实际上,我使用的是自定义 RichTextEditor,它不会在 DOM 上呈现输入,它会呈现 div,所以在 div 上,如果我尝试调用 'val' 它不起作用 &lt;div&gt;s 使用文本节点来保存文本,因此调用的jQuery方法不是val,而是text【参考方案2】:

您可以将选项传递给类型函数type(text, options)

有关可用选项,您可以查看docs

在您的情况下,您可以尝试覆盖 delay 选项以删除输入持续时间。

inputField.type('a'.repeat(2000),  delay: 0)

【讨论】:

【参考方案3】:

如果您将这段代码放到cypress/support/index.js 文件中,它应该会消除击键之间的延迟。

Cypress.Keyboard.defaults(
  keystrokeDelay: 0,
)

【讨论】:

Cypress.Keyboard.defaults 不是函数 - 抛出此错误【参考方案4】:

我使用以下代码 (from this post) 快速复制粘贴到文本区域中的一百个电子邮件地址:

it('pastes text to textarea', () => 
  const textToPaste = 'this is not a valid email'
  cy.visit('index.html')
  cy.get("[type='email']").invoke('val', textToPaste).trigger('blur')
)

基于invoke() cypress method

【讨论】:

以上是关于在Eclipse中如何让很长的代码分行显示的主要内容,如果未能解决你的问题,请参考以下文章

如何自定义 Eclipse 的文本编辑器代码格式

eclipse主窗口左右滚动条

iOS - 在横向显示一个很长的垂直堆栈视图

如何在MYSQL数据库中保存很长的整数数据

如何在 Oracle 中读取很长的 BLOB 列?

在很长的 ListView 中记住滚动位置