Book Image

Mastering Sublime Text

By : Dan Peleg
Book Image

Mastering Sublime Text

By: Dan Peleg

Overview of this book

Sublime is the leading platform for developing websites, applications, and software. Sublime Text is a sophisticated, cross-platform text and source code editor. It supports a number of different programming languages and is extremely efficient and feature rich. With Sublime Text, programmers can develop their web applications faster and with more efficiency. This book will put you at the frontier of modern software development. It will teach you how to leverage Sublime for anything from mobile games to missile protection. Above all, this book will help you harness the power of other Sublime users and always stay on top. This book will show you how to get started, from basic installation through lightning fast code navigation and up to the development of your own plugins. It takes you from the early stages of navigating through the platform and moves on by teaching you how to fully customize your platform, test, debug, and eventually create and share your own plugins to help and lead this community forward. The book will then teach you how to efficiently edit text, primarily by using the keyboard. You will learn how to interact with the Sublime Text community using the mailing lists and IRC.
Table of Contents (15 chapters)
Mastering Sublime Text
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Developing the plugin


Now that we have a plugin with a basic command that shows up in the command palette, we can start developing our plugin; we'll start with hiding the command when it's unusable. We'll do it by overriding the is_visible function and checking that the current file extension is .rb and the first line contains a ActiveRecord::Base inheritance. Let's import the python os lib by adding import os below the import sublime line. Add the following to our command:

def is_visible(self):
   view = self.window.active_view()
   file_name, file_extension = os.path.splitext(view.file_name())
   return file_extension == ".rb" and "ActiveRecord::Base" in view.substr(view.line(0))

When the command palette is being opened, it will run all the is_visible functions of all the exposed commands to check whether or not they should be shown. We are checking whether or not the current view (file) extension is set as .rb and the first line of the file contains ActiveRecord::Base and only if both conditions...