Submit Search
Upload
Scintillating
•
0 likes
•
622 views
E
ESUG
Follow
Scintillating! A Modernized Text Editor for VA Smalltalk
Read less
Read more
Technology
Report
Share
Report
Share
1 of 27
Download now
Download to read offline
Recommended
Domain Driven Design Through Onion Architecture
Domain Driven Design Through Onion Architecture
BoldRadius Solutions
Funky serverless features at aws
Funky serverless features at aws
Doug Winter
Building the Eventbrite API Ecosystem
Building the Eventbrite API Ecosystem
Mitch Colleran
Adapter Poxy Pattern
Adapter Poxy Pattern
Philip Zhong
Starting Mobile Development
Starting Mobile Development
Pranav Ainavolu
Building custom skills with Amazon Alexa
Building custom skills with Amazon Alexa
Brian Perera
Multi-Factor Auth in Alexa Skills - Faisal Valli
Multi-Factor Auth in Alexa Skills - Faisal Valli
Oscar Merry
Onion Architecture
Onion Architecture
matthidinger
Recommended
Domain Driven Design Through Onion Architecture
Domain Driven Design Through Onion Architecture
BoldRadius Solutions
Funky serverless features at aws
Funky serverless features at aws
Doug Winter
Building the Eventbrite API Ecosystem
Building the Eventbrite API Ecosystem
Mitch Colleran
Adapter Poxy Pattern
Adapter Poxy Pattern
Philip Zhong
Starting Mobile Development
Starting Mobile Development
Pranav Ainavolu
Building custom skills with Amazon Alexa
Building custom skills with Amazon Alexa
Brian Perera
Multi-Factor Auth in Alexa Skills - Faisal Valli
Multi-Factor Auth in Alexa Skills - Faisal Valli
Oscar Merry
Onion Architecture
Onion Architecture
matthidinger
VA Smalltalk Update ESUG2014
VA Smalltalk Update ESUG2014
ESUG
VA Smalltalk Update
VA Smalltalk Update
ESUG
Continuous Integration
Continuous Integration
XPDays
2.0 Client Libraries & Using the Java Client by Noah Crowley, Developer Advoc...
2.0 Client Libraries & Using the Java Client by Noah Crowley, Developer Advoc...
InfluxData
Using the Java Client Library by Noah Crowley, DevRel | InfluxData
Using the Java Client Library by Noah Crowley, DevRel | InfluxData
InfluxData
VA Smalltalk Update
VA Smalltalk Update
ESUG
InfluxDB 2.0 Client Libraries by Noah Crowley
InfluxDB 2.0 Client Libraries by Noah Crowley
InfluxData
Babel.pptx
Babel.pptx
Parham Abolghasemi
NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET
Dmytro Mindra
Arbortext and APP for Developers - APPWorld 2011
Arbortext and APP for Developers - APPWorld 2011
Gareth Oakes
Innovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and Framework
Sandeep Adwankar
Microservices in Go with Go kit
Microservices in Go with Go kit
Shiju Varghese
Shindig Apachecon Asia 09
Shindig Apachecon Asia 09
Nuwan Bandara
UCSY CS Club Week2
UCSY CS Club Week2
Ye Linn Wai
Code Inspection
Code Inspection
Fáber D. Giraldo
Adminstering biztalkusingchatbot
Adminstering biztalkusingchatbot
BizTalk360
Benchmark Maturity of your SaaS Solution
Benchmark Maturity of your SaaS Solution
Techcello
Collision 2018: CodeStar for CICD Pipelines
Collision 2018: CodeStar for CICD Pipelines
Amazon Web Services
Overview of SuiteHelp 3.1 for DITA
Overview of SuiteHelp 3.1 for DITA
Suite Solutions
Docfacto release 2.4
Docfacto release 2.4
Darren Hudson
Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
Technical documentation support in Pharo
Technical documentation support in Pharo
ESUG
More Related Content
Similar to Scintillating
VA Smalltalk Update ESUG2014
VA Smalltalk Update ESUG2014
ESUG
VA Smalltalk Update
VA Smalltalk Update
ESUG
Continuous Integration
Continuous Integration
XPDays
2.0 Client Libraries & Using the Java Client by Noah Crowley, Developer Advoc...
2.0 Client Libraries & Using the Java Client by Noah Crowley, Developer Advoc...
InfluxData
Using the Java Client Library by Noah Crowley, DevRel | InfluxData
Using the Java Client Library by Noah Crowley, DevRel | InfluxData
InfluxData
VA Smalltalk Update
VA Smalltalk Update
ESUG
InfluxDB 2.0 Client Libraries by Noah Crowley
InfluxDB 2.0 Client Libraries by Noah Crowley
InfluxData
Babel.pptx
Babel.pptx
Parham Abolghasemi
NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET
Dmytro Mindra
Arbortext and APP for Developers - APPWorld 2011
Arbortext and APP for Developers - APPWorld 2011
Gareth Oakes
Innovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and Framework
Sandeep Adwankar
Microservices in Go with Go kit
Microservices in Go with Go kit
Shiju Varghese
Shindig Apachecon Asia 09
Shindig Apachecon Asia 09
Nuwan Bandara
UCSY CS Club Week2
UCSY CS Club Week2
Ye Linn Wai
Code Inspection
Code Inspection
Fáber D. Giraldo
Adminstering biztalkusingchatbot
Adminstering biztalkusingchatbot
BizTalk360
Benchmark Maturity of your SaaS Solution
Benchmark Maturity of your SaaS Solution
Techcello
Collision 2018: CodeStar for CICD Pipelines
Collision 2018: CodeStar for CICD Pipelines
Amazon Web Services
Overview of SuiteHelp 3.1 for DITA
Overview of SuiteHelp 3.1 for DITA
Suite Solutions
Docfacto release 2.4
Docfacto release 2.4
Darren Hudson
Similar to Scintillating
(20)
VA Smalltalk Update ESUG2014
VA Smalltalk Update ESUG2014
VA Smalltalk Update
VA Smalltalk Update
Continuous Integration
Continuous Integration
2.0 Client Libraries & Using the Java Client by Noah Crowley, Developer Advoc...
2.0 Client Libraries & Using the Java Client by Noah Crowley, Developer Advoc...
Using the Java Client Library by Noah Crowley, DevRel | InfluxData
Using the Java Client Library by Noah Crowley, DevRel | InfluxData
VA Smalltalk Update
VA Smalltalk Update
InfluxDB 2.0 Client Libraries by Noah Crowley
InfluxDB 2.0 Client Libraries by Noah Crowley
Babel.pptx
Babel.pptx
NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET
Arbortext and APP for Developers - APPWorld 2011
Arbortext and APP for Developers - APPWorld 2011
Innovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and Framework
Microservices in Go with Go kit
Microservices in Go with Go kit
Shindig Apachecon Asia 09
Shindig Apachecon Asia 09
UCSY CS Club Week2
UCSY CS Club Week2
Code Inspection
Code Inspection
Adminstering biztalkusingchatbot
Adminstering biztalkusingchatbot
Benchmark Maturity of your SaaS Solution
Benchmark Maturity of your SaaS Solution
Collision 2018: CodeStar for CICD Pipelines
Collision 2018: CodeStar for CICD Pipelines
Overview of SuiteHelp 3.1 for DITA
Overview of SuiteHelp 3.1 for DITA
Docfacto release 2.4
Docfacto release 2.4
More from ESUG
Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
Technical documentation support in Pharo
Technical documentation support in Pharo
ESUG
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
ESUG
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
Garbage Collector Tuning
Garbage Collector Tuning
ESUG
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
thisContext in the Debugger
thisContext in the Debugger
ESUG
Websockets for Fencing Score
Websockets for Fencing Score
ESUG
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ESUG
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
ESUG
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
More from ESUG
(20)
Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
Technical documentation support in Pharo
Technical documentation support in Pharo
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
Garbage Collector Tuning
Garbage Collector Tuning
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
thisContext in the Debugger
thisContext in the Debugger
Websockets for Fencing Score
Websockets for Fencing Score
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
Recently uploaded
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
lior mazor
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
hans926745
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Product Anonymous
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Neo4j
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Evaluating the top large language models.pdf
Evaluating the top large language models.pdf
ChristopherTHyatt
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
The Digital Insurer
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
sammart93
Recently uploaded
(20)
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Evaluating the top large language models.pdf
Evaluating the top large language models.pdf
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Scintillating
1.
Copyright © 2013
Instantiations, Inc. Scintillating! A Modernized Text Editor for VA Smalltalk Seth Berman Software Engineer Instantiations, Inc. Scintillating! A Modernized Text Editor for VA Smalltalk Seth Berman Software Engineer Instantiations, Inc. Scintillating! A Modernized Text Editor for VA Smalltalk Seth Berman Software Engineer Instantiations, Inc.
2.
Copyright © 2013
Instantiations, Inc. Requirements • Provide a modern text editor • Additional visual cues and styling • Take advantage of the latest technologies • Minimize change to our existing system • Maintain full API compatibility with existing editor • Structural compatibility with our widget frameworks • Must be inline with our cross-platform roadmap • GTK • New capability must be made accessible to our customers
3.
Copyright © 2013
Instantiations, Inc. Scintilla • Free library providing functionality to help build text editors • Provides numerous features specific to source code editing • Initial release in 1999 • Active community • Used by Code::Blocks, Notepad++, TortoiseSVN • Cross-Platform support
4.
Copyright © 2013
Instantiations, Inc. Scintilla Integration in VAST • Integrated into our Common Widgets Framework • New CwScintillaEditor widget integrated • Offers full API support for Scintilla 3.3.3 (the latest) • Compatibility methods implemented to provide 100% API capability with our existing legacy editor components
5.
Copyright © 2013
Instantiations, Inc. Direct2D/DirectWrite • Microsoft’s technology to provide higher quality font rendering • Hardware-Accelerated Rendering • Offloads many aspects of rendering to the GPUs • Windows 7 and above • How noticeable a difference? Depends on • Font type and style • Monitor type and size • Your eyes and/or attention to detail
6.
Copyright © 2013
Instantiations, Inc. Text Editor Basics • Auto-Indent • Keyboard Shortcuts • <Tab> to indent, <Shift+Tab> to unindent • <Alt+Up/Down> to move blocks of selected text one line at a time • DragNDrop to relocate blocks of selected text • Margin Area
7.
Copyright © 2013
Instantiations, Inc. Multiple Undo/Redo • Finally! • No hard limit (only memory) • Supports coalescing • Combine contiguous insertions and deletions into single undo operations • APIs for user-defined coalescing
8.
Copyright © 2013
Instantiations, Inc. Code Completion • Scintilla offers a code completion popup and API • We hooked it up to our code completion engine • Users have the option to select which popup they prefer • Basic (Minimal styling capability) • Extended (Maximum styling capability) • Scintilla (Somewhere in the middle)
9.
Copyright © 2013
Instantiations, Inc. Syntax Color Highlighting • Scintilla Lexer defines how a specified range of text is to be colored • Has lexer support for 80+ languages • Smalltalk is one of them, but it was too simplistic • Provides hooks to allow us to write our own custom lexer in Smalltalk (Container-Defined Styling) • Container-Defined Styling • Scintilla specifies what needs to be styled via events • VAST’s custom styler defines how the character range is to be styled
10.
Copyright © 2013
Instantiations, Inc. VAST Custom Styler • Comes in 2 flavors • Method styler to style text in browsers and debuggers • Optimized to style methods • Snippet styler to style text in inspectors and workspaces • Optimized to style snippets of code • Adds some fuzzy logic rules • Now we can offer color in our inspectors and workspaces • Styler uses a custom token scanner instead of parse trees • Enables real-time coloring • Much more flexible then our previous parse-tree implementation
11.
Copyright © 2013
Instantiations, Inc. Bracket Highlighting • Stylization used to indicate matching characters for ()[]{} • Separate style used to highlight unmatched characters
12.
Copyright © 2013
Instantiations, Inc. Bracket Highlighting Cont… • Bracket Highlighting is configurable
13.
Copyright © 2013
Instantiations, Inc. Smart Highlighting • Adding stylization to a selected word and any matching word in the source • Useful for seeing local variable usage • Adds extra decoration to highlighting browsers • Added logic to handle block argument highlighting • Stylization applied behind text so syntax color highlighting shows through
14.
Copyright © 2013
Instantiations, Inc. Smart Highlighting Cont… • Where is the argument, anInteger, used?
15.
Copyright © 2013
Instantiations, Inc. Smart Highlighting Cont… • Identify where variables are declared with a glance
16.
Copyright © 2013
Instantiations, Inc. Smart Highlighting Cont… • Block-args included…
17.
Copyright © 2013
Instantiations, Inc. Smart Highlighting Cont… • Smart Highlighting is configurable
18.
Copyright © 2013
Instantiations, Inc. Line Numbers • Available in Browser/Debuggers/Workspaces/Inspectors • Line Number margins are dynamically sized • Configurable across different window types
19.
Copyright © 2013
Instantiations, Inc. Breakpoint Management • Persistent Breakpoint margin • New Breakpoint icons • Multiple Breakpoints / Line support • Stylizes Breakpoint regions
20.
Copyright © 2013
Instantiations, Inc. Debugger Call Tips • Hover mouse over variables and globals displays a calltip showing it’s value • Clicking a calltip will bring up an inspector • Long calltips are formatted to single-line
21.
Copyright © 2013
Instantiations, Inc. Debugger Call Tips Cont… • Call Tips are configurable
22.
Copyright © 2013
Instantiations, Inc. Error/Warning/Info Indicators • Stylized Squiggle lines underneath text to indicate • Fatal Errors • Errors • Warnings • Info • Calltips provide information about the indicator • Incremental compiler runs in the background to identify issues in real-time • Collects information from parse trees and the styler
23.
Copyright © 2013
Instantiations, Inc. Error/Warning/Info Indicators Cont… • Instantly identify misspelled variables
24.
Copyright © 2013
Instantiations, Inc. Error/Warning/Info Indicators Cont… • Identify methods not implemented
25.
Copyright © 2013
Instantiations, Inc. Error/Warning/Info Indicators Cont… • Some more examples…
26.
Copyright © 2013
Instantiations, Inc. Error/Warning/Info Indicators Cont… • Indicators are configurable
27.
Copyright © 2013
Instantiations, Inc. Questions?
Download now