CN102289369B - 用于插入关闭代码构造的方法和系统 - Google Patents

用于插入关闭代码构造的方法和系统 Download PDF

Info

Publication number
CN102289369B
CN102289369B CN201110170733.6A CN201110170733A CN102289369B CN 102289369 B CN102289369 B CN 102289369B CN 201110170733 A CN201110170733 A CN 201110170733A CN 102289369 B CN102289369 B CN 102289369B
Authority
CN
China
Prior art keywords
code
closing
constructs
action
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110170733.6A
Other languages
English (en)
Other versions
CN102289369A (zh
Inventor
D·坎贝尔
D·J·帕克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN102289369A publication Critical patent/CN102289369A/zh
Application granted granted Critical
Publication of CN102289369B publication Critical patent/CN102289369B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及用于插入关闭代码构造的方法、系统和计算机程序产品。本发明的实施例包括交互模型,其允许用户更容易地将关闭代码构造移动到文本内的所期望的位置。例如,关闭代码构造可以被移动得就好像它们是编辑器插入记号。交互模型可以将用户限制于选择关闭代码构造的合法位置。该限制可以基于现有代码与用于开发现有代码的编程语言的句法和/或语意规则相结合的结构。

Description

用于插入关闭代码构造的方法和系统
相关申请的交叉引用
不适用。
技术领域
本申请涉及插入关闭代码构造。
背景技术
1.背景和相关技术
计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已转变了人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排和会计等)。最近,计算机系统彼此耦合并耦合到其他电子设备以形成计算机系统和其他电子设备可以在其上传输电子数据的有线和无线计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算环境上。
通常,为了生成应用,开发者以诸如例如C#、Visual Basic(“VB”)等等之类的编程语言编写源代码,并且然后将该源代码编译成可执行文件。开发者常常使用诸如例如集成开发环境(“IDE”)之类的代码编辑器来辅助编写源代码。许多代码编辑器提供使部分代码开发过程自动化的便利特性。例如,代码编辑器可以使用颜色编码来区分不同类型的编程构造。
许多代码编辑器还使用各种形式的自动完成来辅助代码输入。自动完成可以用于完成词语,匹配相应的编程构造等等。一些代码编辑器响应于检测到打开构造而自动输入关闭构造。例如,当键入打开括号‘(’时,关闭括号‘)’可以被自动插入。
尽管这样的特性在第一次键入代码时良好地工作,但是它们在代码已经被编写时变得难以使用。考虑下面以C#编写的现有代码:
int x=1+2;
如果用户将编辑器插入记号置于“1”的直接前方,并且键入打开括号‘(’,则编辑器将难以确定关闭括号‘)’的合适位置。用户的意图是含糊的。用户可能打算应用类型强制转换,优选完成关闭括号:
int x=(byte)1+2;
然而,如果用户希望将表达式包封在括号中,则自动插入关闭括号将仅仅妨碍用户。
int x=(1+1)。
简要概述
本发明涉及用于插入关闭代码构造的方法、系统和计算机程序产品。用户输入被从用户接收。用户输入用于在源代码的一部分内的指定位置处输入打开代码构造。该打开代码构造结合相应的关闭代码构造表示编程语言的指定特性。
响应于接收用于输入打开代码构造的用户输入,打开代码构造的放置在源代码的该部分内的指定位置处被可视地指示。而且响应于接收该用户输入,相应关闭代码构造的放置在源代码的该部分内的另一位置处被指示出。关闭代码构造的放置基于编程语言的其他特性。
检测:用户关于放置相应关闭构造的意图是含糊的。该含糊性基于打开构造的指定位置和编程语言的指定特性。响应于所检测的含糊性,编辑器转移到用于对关闭代码构造进行定位的交互模式。该交互模式指示:允许用户根据编程语言的另外的特性将关闭构造在源代码的该部分内的一个或多个有效位置间重定位。交互模式改变一种或多种形式的用户输入如何被编辑器解释。
一种形式的用户输入被从用户接收。该形式的输入选自一种或多种形式的对用户可用的输入。关闭代码构造根据对所接收形式的用户输入由于编辑器处于交互模式而被改变的解释被重定位。在对关闭代码构造进行重定位以后,编辑器从交互模式中转移出。
提供本发明内容是为了以简化的表单介绍将在以下具体实施方式中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中叙述,且其一部分根据本描述将是显而易见的,或可通过对本发明的实践来获知。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书变得更加显而易见,或可通过对下文中所述的本发明的实践来领会。
附图说明
为了描述可获得本发明的上述和其它优点和特征的方式,将参考附图中示出的本发明的具体实施例来对以上简要描述的本发明进行更具体的描述。可以理解,这些附图只描绘了本发明的各典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释本发明,在附图中:
图1示出了使得易于插入关闭代码构造的示例计算机架构。
图2示出了用于一起移动关闭构造和编辑器插入记号的示例性数据流。
图3示出了用于在位置间移动关闭构造的示例性数据流。
图4示出了用于在位置间移动关闭构造和可视地指示位置的示例性数据流。
图5示出用于插入关闭代码构造的示例性方法的流程图。
具体实施方式
本发明涉及用于插入关闭代码构造的方法、系统和计算机程序产品。用户输入被从用户接收。用户输入用于在源代码的一部分内的指定位置处输入打开代码构造。该打开代码构造结合相应的关闭代码构造表示编程语言的指定特性。
响应于接收用于输入打开代码构造的用户输入,打开代码构造的放置在源代码的该部分内的指定位置处被可视地指示。而且响应于接收该用户输入,相应关闭代码构造的放置在源代码的该部分内的另一位置处被指示出。关闭代码构造的放置基于编程语言的其他特性。
检测:用户关于放置相应关闭构造的意图是含糊的。该含糊性基于打开构造的指定位置和编程语言的指定特性。响应于所检测的含糊性,编辑器转移到用于对关闭代码构造进行定位的交互模式。该交互模式指示:允许用户根据编程语言的另外的特性将关闭构造在源代码的该部分内的一个或多个有效位置间重定位。交互模式改变一种或多种形式的用户输入如何被编辑器解释。
一种形式的用户输入被从用户接收。该形式的输入选自一种或多种形式的对用户可用的输入。关闭代码构造根据对所接收形式的用户输入由于编辑器处于交互模式而被改变的解释被重定位。在对关闭代码构造进行重定位以后,编辑器从交互模式中转移出。
本发明的各实施例可以包括或利用包括诸如一个或多个处理器和系统存储器的计算机硬件的专用或通用计算机,这将在以下做出进一步讨论。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理计算机可读介质和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种完全不同的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线、或硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于承载计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动转移到计算机存储介质(或者相反)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传送到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。由此,应当理解,计算机存储介质可被包括在同样(或甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解的是,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可以在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实践。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
本发明的实施例包括交互模型,其允许用户更容易地将关闭代码构造移动到文本内的所期望的位置。例如,关闭代码构造可以被移动为使得就好像它们是编辑器插入记号。交互模型可以将用户限制于选择关闭代码构造的合法位置。该限制可以基于现有代码与用于开发现有代码的编程语言的句法和/或语义规则相结合的结构。
图1示出了使得易于插入关闭代码构造的示例性计算机架构100。参考图1,计算机架构100包括用户196和编辑器101。编辑器101进一步包括用户界面102、代码分析模块103、和编辑器模式选择器104。所描绘的组件中的每一个都通过诸如例如局域网(“LAN”)、广域网(“WAN”)或甚至因特网之类的网络彼此连接(或者是网络的一部分)。因此,所描绘的组件中的每一个以及任何其他连接的计算机系统及其组件都可以创建消息相关数据并通过网络交换与消息相关数据(例如,网际协议(“IP”)数据报和利用IP数据报的其他更高层协议,诸如传输控制协议(“TCP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)等)。
一般而言,用户196提交输入到编辑器101以输入编程语言代码(例如C#、VisualBasic(“VB”)、可扩展标记语言(“XML”)等等)。到编辑器101的输入可以包括打开代码构造。用户界面102反映所输入的编程语言代码在编程语言代码被编辑时的代码视图。
代码分析模块103被配置为检测用户关于放置关闭代码构造的意图的含糊性。当检测到含糊性时,模式选择器104使编辑器101转移到用于对关闭构造进行重定位的交互模式中。该交互模式可以指示:允许用户将关闭代码构造在一个或多个有效位置间重定位。所述一个或多个有效位置可以基于编程语言的特性(例如句法和/或语义规则)来选择。所述一个或多个有效位置可以在用户界面102处被可视地指示。
当编辑器101处于交互模式时,编辑器101可以改变一种或多种形式的用户输入如何被解释。例如,选择箭头按键的用户输入可以致使关闭代码构造的位置(可能沿着编辑器插入记号)移动到下一有效位置(而不是编辑器插入记号移动单个空格)。当关闭代码构造被移动到所期望的有效位置时,用户可以输入另外的输入来选择所期望的有效位置。作为响应,关闭代码构造在所期望的有效位置处被可视地指示。在对关闭代码构造进行(重)定位以后,模式选择器104将编辑器101从交互模式中转移出。
图5示出用于插入关闭代码构造的示例性方法500的流程图。方法500将参考计算机架构100的组件和数据来描述。
方法500包括从用户接收用户输入的动作,该用户输入用于在源代码的一部分内的指定位置处输入打开代码构造,该打开代码构造结合相应的关闭代码构造表示编程语言的指定特性(动作501);例如,用户196可以通过用户界面102与(源代码116的)代码视图111交互。用户196可以提交到编辑器101的构造输入112。用户界面102可以接收构造输入112。构造输入112可以是用于在源代码116内的指定位置处输入打开代码构造114的输入。打开代码构造114结合关闭代码构造115表示用于开发源代码116的编程语言的聚集特性。
方法500包括:响应于接收用于输入打开代码构造的用户输入而在源代码的该部分内的指定位置处可视地指示打开代码构造的放置的动作(502);以及基于编程语言的其他特性在源代码的该部分内的另一位置处可视地指示相应关闭代码构造的放置的动作(动作503)。例如,用户界面102可以输出(源代码116的)代码视图119。代码视图119可视地指示打开代码构造114和关闭代码构造115在源代码116内的放置。关闭代码构造115的放置可以基于用于开发源代码116的编程语言的诸如例如其他句法和/或语义规则的其他特性。
方法500包括基于打开构造的指定位置和编程语言的指定特性来检测用户关于放置相应关闭构造的意图为含糊的动作(动作504)。例如,代码分析模块103可以分析源代码116并且检测含糊性117。含糊性117表示用户196关于放置关闭构造115的意图是含糊的。也就是说,编辑器101不知道关闭构造115是应该放置在‘F’之后、第一个‘o’之后、第二个‘o’之后、还是甚至放置在源代码116中的其他一些位置处。代码分析模块103可以将含糊性117发送给模式选择器104。
响应于所检测到的含糊性,方法500包括处理器将编辑器转移到用于对关闭代码构造进行定位的交互模式的动作,该交互模式指示:允许用户根据编程语言的另外的特性将关闭构造在源代码的该部分内的一个或多个有效位置间重定位,该交互模式改变一种或多种形式的用户输入如何被编辑器解释(动作505)。例如,模式选择器104可以从代码分析模块103接收含糊性117。响应于含糊性117,模式选择器可以发送模式转移113以将编辑器101转移到用于放置关闭代码构造的构造放置模式。在构造放置模式中,允许用户196根据用于开发源代码116的编程语言的诸如例如另外的句法和/或语义规则的另外的特性来对关闭代码构造115进行重定位。
视觉指示符(例如围绕关闭代码构造的虚线框)可以在代码视图内被呈现以指示编码器101何时处于构造放置模式。
方法500包括从用户接收某种形式的用户输入的动作,该形式的用户输入选自一种或多种形式的用户输入(动作506)。例如,响应于代码视图119,用户196可以从键盘输入位置输入118。位置输入118可以是用于对关闭代码构造115进行重定位的输入(例如三次右箭头按键)。可替代地,也可以输入和接收基于鼠标的和其他类型的用户输入。
方法500包括根据对所接收形式的用户输入由于编辑器处于交互模式而被改变的解释对关闭代码构造进行重定位的动作(动作507)。例如,当处于构造放置模式时,编辑器101可以将基于键盘的移动输入解释成移动关闭代码构造115(而不是解释成例如移动编辑器插入记号)。因此,响应于接收位置输入118,编辑器101可以将关闭代码构造115重定位在源代码116内的关闭构造位置122处或者第二个‘o’之后(例如从其以前位置起向右三个空格处)。用户界面102可以在关闭代码构造115被移动以后输出(源代码116的)代码视图123。如代码视图123中所描绘的那样,关闭代码构造115现在被定位在第二个‘o’之后。关闭代码构造也可以响应于基于鼠标和其他类型的用户输入被重定位。
方法500包括在对关闭代码构造进行重定位以后将编辑器从交互模式中转移出的动作(动作508)。例如,当关闭代码构造115处于所期望的位置时,用户196可以输入附加的用户输入来指示位置关闭代码构造115的位置是正确的。响应于该附加的用户输入,编辑器101可以从构造放置模式中转移出。
在一些实施例中,改变对用户输入的解释可以包括:将关闭代码构造“附着”于编辑器插入记号。因此,响应于用户输入,关闭代码构造与编辑器插入记号一起移动。图2示出了用于一起移动关闭构造和编辑器插入记号的示例性数据流200。
编辑器可以呈现代码视图201(例如当处于正常编辑器模式时)。添加打开构造的用户输入的输入被接收。作为响应,编辑器转移到构造放置模式并且呈现代码视图202。代码视图202包括打开构造221、编辑器插入记号211和关闭构造222。代码视图202在用户对关闭代码构造的位置的意图方面是含糊的。存在任意数目的句法正确的可以将关闭构造222定位于其的位置。
例如,用户可能希望插入类型强制转换。因此,用户可以开始在打开构造221与关闭构造222之间键入。可替代地,用户可能希望将“Foo”包封在括号内。
模式指示符231指示编辑器处于构造放置模式(或改变对用户输入的解释的其他模式)。当处于构造放置模式时,编辑器改变对用户输入的解释以应用于编辑器插入标记211和关闭代码构造222二者。也就是说,关闭构造222“附着”于编辑器插入记号211。因此,用于移动编辑器插入记号211的用户输入导致编辑器插入记号211和关闭代码构造222二者一起根据用户输入移动。
随后,指示选中右箭头按键的用户输入被接收。作为响应,编辑器呈现代码视图203。如所描绘的那样,编辑器插入记号211和关闭代码构造222二者都向右移动一个空格(移动到‘F’右边的位置)。随后,指示选中两次右箭头按键的用户输入的输入被接收。作为响应,编辑器呈现代码视图204。如所描绘的那样,编辑器插入记号211和关闭代码构造222二者都向右再移动两个空格(移动到第二个‘o’右边的位置)。随后,选择关闭代码构造222的位置为正确的用户输入被接收。作为响应,编辑器转移回到正常模式并且呈现代码视图206。
在一些实施例中,改变对用户输入的解释可以包括:在允许位置间移动关闭代码构造。这降低了将关闭代码构造放置在违反编程语言的句法和/或语义规则的位置处的可能性。图3示出了用于在位置间移动关闭构造的示例性数据流300。
编辑器可以呈现代码视图301(例如当处于正常编辑器模式时)。添加打开构造的用户输入的输入被接收。作为响应,编辑器转移到构造放置模式并且呈现代码视图302。代码视图302包括打开构造321、编辑器插入记号311和关闭构造322。代码视图在关闭构造322的正确位置方面是含糊。用户可能期望在打开构造321与关闭构造322之间键入。可替代地,用户可能期望移动关闭代码构造322以涵盖代码视图302的其他部分。
当处于构造放置模式时,编辑器改变对用户输入的解释以将关闭代码构造322的移动限制于语义合法的位置。因此,向上和向下移动的单键用户输入(例如单次选中箭头按键)可能致使关闭代码构造322向上或向下移动多行代码。
随后,指示选中向下箭头按键的用户输入被接收。作为响应,编辑器呈现代码视图303。如所描绘的那样,关闭代码构造322被移动到“Foo()”行以下。随后,指示选中向下箭头按键的用户输入再次被接收。作为响应,编辑器呈现代码视图304。如所描绘的那样,关闭代码构造322被移动到“Loop”行以下。基于编程语言的语义,不允许将关闭代码构造322移动到其他中间位置。例如,将关闭代码构造322定位在“Dim x=0”之后将从范围中除去变量‘x’,但是变量‘x’被用在“Do While x=0”表达式中。
在其他实施例中,改变对用户输入的解释可以包括:可视地指示所允许的位置。这允许用户在移动关闭代码构造以前知道关闭代码构造的(例如语义上的)合法位置。图4示出了用于在位置间移动关闭构造和可视地指示位置的示例性数据流400。
编辑器可以呈现代码视图401。如所描绘的那样,代码视图401包括打开构造421、编辑器插入记号411和关闭构造422。交互模式指示符431向用户指示:编辑器处于构造放置模式。合法位置442指示关闭构造422的下一(例如语义上的)合法位置。关闭构造位置控件433可以被选中(例如用鼠标)以将关闭构造422移动到和合法位置442。
随后,选中构造位置控件433的用户输入被接收。作为响应,编辑器呈现代码视图402。如所描绘的那样,关闭代码构造被重定位在合法位置442。合法位置441和443指示关闭构造422的下一(例如语义上合法的)位置。关闭构造位置控件432可以被选中(例如用鼠标)以将关闭构造422移动回合法位置441。关闭构造位置控件433可以被选中(例如用鼠标)以将关闭构造422移动到合法位置443。
因此,用户可以在知道下一合法位置的情况下在代码视图内移动关闭代码构造422。
本发明可被具体化为其他具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变被权利要求书的范围所涵盖。

Claims (15)

1.一种在包括一个或多个处理器和系统存储器的计算机系统处的用于在编辑源代码的一部分时提供自动辅助来解决关闭代码构造的放置的方法,该计算机系统还包括用于编辑编程语言的源代码的编辑器,该方法包括:
从用户接收用户输入的动作,该用户输入用于在源代码的该部分内的指定位置处输入打开代码构造,该打开代码构造结合相应的关闭代码构造表示编程语言的指定特性;
响应于接收用于输入打开代码构造的用户输入:
在源代码的该部分内的指定位置处可视地指示打开代码构造的放置的动作;
基于编程语言的其他特性在源代码的该部分内的另一位置处可视地指示相应关闭代码构造的放置的动作;
基于打开代码构造的指定位置和编程语言的指定特性来检测用户关于放置相应关闭代码构造的意图为含糊性的动作;
响应于所检测到的含糊性所述处理器将编辑器转移到用于对关闭代码构造进行定位的交互模式的动作,该交互模式指示:允许用户根据编程语言的另外的特性将关闭代码构造在源代码的该部分内的一个或多个有效位置间重定位,该交互模式改变一种或多种形式的用户输入如何被编辑器解释;
从用户接收一定形式的用户输入的动作,该形式的用户输入选自一种或多种形式的用户输入;
根据对所接收形式的用户输入由于编辑器处于交互模式而被改变的解释对关闭代码构造进行重定位的动作;以及
在对关闭代码构造进行重定位以后将编辑器从交互模式中转移出的动作。
2.如权利要求1所述的方法,其特征在于,进一步包括响应于检测到含糊性突出关闭代码构造以指示允许用户在所述一个或多个有效位置间移动关闭代码构造的动作。
3.如权利要求1所述的方法,其特征在于,将编辑器转移到用于对关闭代码构造进行定位的交互模式的动作包括转移到允许基于编程语言的句法规则对关闭代码构造进行重定位的交互模式的动作。
4.如权利要求1所述的方法,其特征在于,将编辑器转移到用于对关闭代码构造进行定位的交互模式的动作包括转移到允许基于编程语言的语义规则对关闭代码构造进行重定位的交互模式的动作。
5.如权利要求1所述的方法,其特征在于,将编辑器转移到用于对关闭代码构造进行定位的交互模式的动作包括将关闭代码构造链接到编辑器的光标使得关闭代码构造附着于光标并且响应于用户输入而与光标一起移动的动作。
6.如权利要求5所述的方法,其特征在于,接收一定形式的用户输入的动作包括接收键盘驱动的光标移动的动作;以及
其特征在于,对关闭代码构造进行重定位的动作包括响应于键盘驱动的光标移动将关闭代码构造与光标一起移动的动作。
7.如权利要求6所述的方法,其特征在于,键盘驱动的光标移动包括箭头按键光标移动。
8.如权利要求1所述的方法,其特征在于,将编辑器转移到用于对关闭代码构造进行定位的交互模式的动作包括在编辑器内可视地指示一个或多个有效位置的动作。
9.如权利要求1所述的方法,其特征在于,将编辑器转移到用于对关闭代码构造进行定位的交互模式的动作包括用一个或多个用于在所述一个或多个有效位置间移动关闭代码构造的用户界面控件来对关闭代码构造进行可视地增量的动作。
10.如权利要求9所述的方法,其特征在于,接收一定形式的用户输入的动作包括接收从一个或多个用户界面控件中选中用户界面控件的鼠标驱动的输入的动作;以及
对关闭代码构造进行重定位的动作包括响应于鼠标驱动的输入将关闭代码构造直接移动到来自所述一个或多个有效位置的有效位置的动作。
11.如权利要求10所述的方法,其特征在于,将关闭代码构造直接移动到有效位置的动作包括跳过源代码的该部分内的一行或多行文本以将关闭代码构造从另一位置直接移动到有效位置的动作。
12.一种供在计算机系统处使用的用于在编辑源代码的一部分时提供自动辅助来解决关闭代码构造的放置的系统,该计算机系统包括用于编辑编程语言的源代码的编辑器,该系统包括:
用于从用户接收用户输入的装置,该用户输入用于在源代码的该部分内的指定位置处输入打开代码构造,该打开代码构造结合相应的关闭代码构造表示编程语言的指定特性;
用于响应于接收用于输入打开代码构造的用户输入进行以下操作的装置:
在源代码的该部分内的指定位置处可视地指示打开代码构造的放置;
基于编程语言的其他特性在源代码的该部分内的另一位置处可视地指示相应关闭代码构造的放置;
基于打开代码构造的指定位置和编程语言的指定特性来检测用户关于放置相应关闭代码构造的意图为含糊性;
用于响应于所检测到的含糊性将编辑器转移到用于对关闭代码构造进行定位的交互模式的装置,该交互模式指示:允许用户根据编程语言的另外的特性将关闭代码构造在源代码的该部分内的一个或多个有效位置间重定位,该交互模式改变一种或多种形式的用户输入如何被编辑器解释;
用于从用户接收一定形式的用户输入的装置,该形式的用户输入选自一种或多种形式的用户输入;
用于根据对所接收形式的用户输入由于编辑器处于交互模式而被改变的解释对关闭代码构造进行重定位的装置;以及
用于在对关闭代码构造进行重定位以后将编辑器从交互模式中转移出的装置。
13.如权利要求12所述的系统,进一步包括用于响应于检测到含糊性而突出关闭代码构造以指示允许用户在所述一个或多个有效位置间移动关闭代码构造的装置。
14.如权利要求12所述的系统,其特征在于,使编辑器转移到用于对关闭代码构造进行定位的交互模式包括转移到允许基于编程语言的句法规则对关闭代码构造进行重定位的交互模式。
15.一种计算机系统,包括:
一个或多个处理器;
系统存储器;以及
上面存储有表示编辑器的可执行指令的一个或多个计算机可读介质,该编辑器包括用户界面、代码分析模块、和模式选择器,其中该编辑器被配置为:
从用户接收用户输入,该用户输入用于在源代码的一部分内的指定位置处输入打开代码构造,该打开代码构造结合相应的关闭代码构造表示编程语言的指定特性;
响应于接收用于输入打开代码构造的用户输入:
在源代码的该部分内的指定位置处可视地指示打开代码构造的放置;
基于编程语言的其他特性在源代码的该部分内的另一位置处可视地指示相应关闭代码构造的放置;
基于打开代码构造的指定位置和编程语言的指定特性来检测用户关于放置相应关闭代码构造的意图为含糊性的动作;
响应于所检测到的含糊性将编辑器转移到用于对关闭代码构造进行定位的交互模式,该交互模式指示:允许用户根据编程语言的另外的特性将关闭代码构造在源代码的该部分内的一个或多个有效位置间重定位,该交互模式改变一种或多种形式的用户输入如何被编辑器解释;
从用户接收一定形式的用户输入的动作,该形式的用户输入选自一种或多种形式的用户输入;
根据对所接收形式的用户输入由于编辑器处于交互模式而被改变的解释对关闭代码构造进行重定位;以及
在对关闭代码构造进行重定位以后将编辑器从交互模式中转移出。
CN201110170733.6A 2010-06-15 2011-06-14 用于插入关闭代码构造的方法和系统 Active CN102289369B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/815,838 2010-06-15
US12/815,838 US8327326B2 (en) 2010-06-15 2010-06-15 Inserting closing code constructs

Publications (2)

Publication Number Publication Date
CN102289369A CN102289369A (zh) 2011-12-21
CN102289369B true CN102289369B (zh) 2017-03-01

Family

ID=45097310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110170733.6A Active CN102289369B (zh) 2010-06-15 2011-06-14 用于插入关闭代码构造的方法和系统

Country Status (2)

Country Link
US (1) US8327326B2 (zh)
CN (1) CN102289369B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10345921B2 (en) * 2016-09-08 2019-07-09 Pro-Boards, Llc Multi-mode keyboard

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101203849A (zh) * 2005-04-21 2008-06-18 谷歌股份有限公司 用户输入的预测转换
US7562344B1 (en) * 2008-04-29 2009-07-14 International Business Machines Corporation Method, system, and computer program product for providing real-time developer feedback in an integrated development environment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127704B2 (en) 2000-06-02 2006-10-24 Sun Microsystems, Inc. Interactive software engineering tool with support for embedded lexical contexts
US8032860B2 (en) 2003-02-26 2011-10-04 Oracle International Corporation Methods for type-independent source code editing
US8307334B2 (en) 2007-09-17 2012-11-06 International Business Machines Corporation Method for assisting a user in the process of creating software code
US20090109067A1 (en) * 2007-10-29 2009-04-30 Sony Ericsson Mobile Communications Ab Method, apparatus, and computer program for text input
US8010465B2 (en) * 2008-02-26 2011-08-30 Microsoft Corporation Predicting candidates using input scopes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101203849A (zh) * 2005-04-21 2008-06-18 谷歌股份有限公司 用户输入的预测转换
US7562344B1 (en) * 2008-04-29 2009-07-14 International Business Machines Corporation Method, system, and computer program product for providing real-time developer feedback in an integrated development environment

Also Published As

Publication number Publication date
US20110307861A1 (en) 2011-12-15
US8327326B2 (en) 2012-12-04
CN102289369A (zh) 2011-12-21

Similar Documents

Publication Publication Date Title
Garavel Open/Cæsar: An open software architecture for verification, simulation, and testing
CN108885545A (zh) 用于实时数据流编程语言的工具和方法
US8522196B1 (en) Traceability in a modeling environment
CN109783081A (zh) 一种应用程序的开发方法、装置及集成开发工具
Fox Extending the R Commander by “plug-in” packages
US8006225B1 (en) Method and system for automatic generation of instruction-set documentation from an abstract processor model described using a hierarchical architectural description language
Karam et al. A cataloging framework for software development methods
US20150331783A1 (en) Debugging data format conversion
Minas Generating meta-model-based freehand editors
CN102289369B (zh) 用于插入关闭代码构造的方法和系统
CN104081347A (zh) 运算次序的图形表示
Sabetzadeh et al. Global consistency checking of distributed models with TReMer+
Autexier et al. VSE: Formal methods meet industrial needs
Fredlund Implementing ws-cdl
Gargantini et al. Integrating formal methods with model-driven engineering
Ibbett HASE DLX simulation model
Paris et al. Environments for the construction and use of task models
KR20000018458A (ko) 웹에 기반을 둔 시스템에서의 프로그램 개발 환경 제공 방법
Montero et al. A Framework for the Analysis and Comparison of Hypermedia Design Methods.
Barker et al. The making of eXCes-a software engineering perspective
Büssow Model checking combined Z and Statechart specifications
Araki et al. Rapid prototyping with HW/SW codesign tool
Bajracharya Enhanced OpenModelica Python Interface
Xiao et al. Combinational testing of PLC programs based on the denotational semantics of instructions
Wolff et al. Model-driven user interface development with the eclipse modeling project

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150728

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150728

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant