Sublime Text 2 is a text editor for OS X, Linux and Windows, currently in beta.

+2

Catch and deny key presses before they get into the view

Oktay Acikalin fa 14 anys actualitzat fa 14 anys 2
How can I catch key presses and deny them before they get into the view without setting up key bindings? I want to catch all user input and then decide what to write into the view.
+2

Change newline_at_eof installation preference to true

MarkDBlackwell fa 11 anys 0

It is a general, widely known practical observation that (at least some) people will leave (at least some of) their software preferences unchanged after installation.

Upon installation, the preference whether newlines are ensured at EOF on save is false.

This installation default is wreaking a small degree of havoc with programmers using versioning systems including git.

The reasonable and usual practice of software in Unix and elsewhere is to expect, and to maintain, that all lines end with a newline. This includes the final line. For more information, here are two links:

http://stackoverflow.com/questions/729692/why-should-files-end-with-a-newline

http://slashdot.org/comments.pl?sid=165492&cid=13808398

To be more precise, after installation, in Default/Preferences.sublime-settings these statements occur:

  // Set to true to ensure the last line of the file ends in a newline
  // character when saving
  "ensure_newline_at_eof_on_save": false,

This should be changed instead so after installation automatically the statements are:

  // Set to false to ensure the last line of the file does not end in a newline
  // character when saving
  "ensure_newline_at_eof_on_save": true,

Further, the editor must not display a new empty line after saving as it does now when this preference is set to true. This even though there is a final newline.

The editor may be treating newlines erroneously as line separators and not correctly as line terminators. This possibility is described in the links above.

+2

package control plugin broken in Sublime 3 on OSX

Sean Carolan fa 11 anys en Plugin announcements 0
When I try to install a plugin I get this:

startup, version: 3059 osx x64 channel: stable
executable: /Applications/Sublime Text.app/Contents/MacOS/Sublime Text
working dir: /
packages path: /Users/seancarolan/Library/Application Support/Sublime Text 3/Packages
state path: /Users/seancarolan/Library/Application Support/Sublime Text 3/Local
hardware concurrency: 8
zip path: /Applications/Sublime Text.app/Contents/MacOS/Packages
zip path: /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages
found 5 files for base name Default.sublime-keymap
found 1 files for base name Default.sublime-mousemap
found 1 files for base name Main.sublime-menu
loading bindings
loading pointer bindings
found 1 files for base name Default.sublime-theme
theme loaded
app ready
wrote startup cache, added files: 1 orphaned files: 3 total files: 151 cache hits: 150
pre session restore time: 0.19615
using gpu buffer for window
using gamma: 1 (err: 0)
first paint time: 0.304532
startup time: 0.325608
found 1 files for base name Default.sublime-theme
theme loaded
launching: /Applications/Sublime Text.app/Contents/MacOS/plugin_host
reloading plugin Default.block
reloading plugin Default.comment
reloading plugin Default.copy_path
reloading plugin Default.delete_word
reloading plugin Default.detect_indentation
reloading plugin Default.duplicate_line
reloading plugin Default.echo
reloading plugin Default.exec
reloading plugin Default.fold
reloading plugin Default.font
reloading plugin Default.goto_line
reloading plugin Default.history_list
reloading plugin Default.indentation
reloading plugin Default.kill_ring
reloading plugin Default.mark
reloading plugin Default.new_templates
reloading plugin Default.open_file_settings
reloading plugin Default.open_in_browser
reloading plugin Default.pane
reloading plugin Default.paragraph
reloading plugin Default.paste_from_history
reloading plugin Default.save_on_focus_lost
reloading plugin Default.scroll
reloading plugin Default.set_unsaved_view_name
reloading plugin Default.side_bar
reloading plugin Default.sort
reloading plugin Default.swap_line
reloading plugin Default.switch_file
reloading plugin Default.symbol
reloading plugin Default.transform
reloading plugin Default.transpose
reloading plugin Default.trim_trailing_white_space
reloading plugin CSS.css_completions
reloading plugin Diff.diff
reloading plugin HTML.encode_html_entities
reloading plugin HTML.html_completions
reloading plugin Vintage.vintage
reloading plugin Vintage.vintage_commands
reloading plugin Vintage.vintage_motions
plugins loaded
loaded 837 snippets
>>> import urllib.request,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
132375
reloading plugin Package Control.Package Control
found 2 files for base name Main.sublime-menu
Package Control: Skipping automatic upgrade, last run at 2014-02-14 10:48:26, next run at 2014-02-14 11:48:26 or after
Package Control: Error parsing JSON from channel https://sublime.wbond.net/browse.
Exception in thread Thread-7:
Traceback (most recent call last):
File "X/threading.py", line 639, in _bootstrap_inner
File "package_control.downloaders.background_downloader in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 61, in run
File "package_control.providers.repository_provider in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 77, in prefetch
File "package_control.providers.repository_provider in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 77, in <listcomp>
File "package_control.providers.repository_provider in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 219, in get_packages
File "package_control.providers.repository_provider in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 111, in fetch
File "package_control.providers.repository_provider in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 153, in fetch_location
File "package_control.download_manager in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 209, in fetch
File "package_control.downloaders.urllib_downloader in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 202, in download
Package Control.package_control.downloaders.downloader_exception.DownloaderException: Error downloading repository. HTTP exception InvalidURL (nonnumeric port: 'pderichs') downloading http://github.com:pderichs/sublime_rubocop.git.
Exception in thread Thread-6:
Traceback (most recent call last):
File "X/json/decoder.py", line 368, in raw_decode
File "X/json/scanner.py", line 63, in _scan_once
StopIteration
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "package_control.providers.repository_provider in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 168, in fetch_location
File "X/json/__init__.py", line 309, in loads
File "X/json/decoder.py", line 352, in decode
File "X/json/decoder.py", line 370, in raw_decode
ValueError: No JSON object could be decoded
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "X/threading.py", line 639, in _bootstrap_inner
File "package_control.downloaders.background_downloader in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 61, in run
File "package_control.providers.repository_provider in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 77, in prefetch
File "package_control.providers.repository_provider in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 77, in <listcomp>
File "package_control.providers.repository_provider in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 219, in get_packages
File "package_control.providers.repository_provider in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 111, in fetch
File "package_control.providers.repository_provider in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 170, in fetch_location
Package Control.package_control.providers.provider_exception.ProviderException: Error parsing JSON from repository https://sublime.wbond.net/.
Exception in thread Thread-3:
Traceback (most recent call last):
File "X/threading.py", line 639, in _bootstrap_inner
File "package_control.commands.install_package_command in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 43, in run
File "package_control.package_installer in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 54, in make_package_list
File "package_control.package_manager in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 260, in list_available_packages
File "package_control.downloaders.background_downloader in /Users/seancarolan/Library/Application Support/Sublime Text 3/Installed Packages/Package Control.sublime-package", line 52, in get_provider
KeyError: 'https://sublime.wbond.net/'
+2

Improve selected item highlight from the filtered list (the one used by "Goto Anything..." / CTRL-P)

Carlos K. fa 12 anys 0
in some situations, with a low number of files in the filtered list (2 or 3) it's hard to tell apart the item that is currently selected from the other ones listed. Could we add a bit more of highlight love to that selection? Maybe a thin border around the row or something like that?

For instance, in the following image can you easily tell which item is selected?


+2

"Close All Files" in the File menu should close all saved files first.

Ronald Jett fa 11 anys 0

Alternatively, you could implement a Close All Saved Files option. 

+2

Project File Definitions

AJ Michels fa 12 anys 0

For project settings it would be nice to be able to define "files" as well as "folders".  Sometime there are files that might exist outside of a directory.  Rather than including an entire folder only to exclude all but one or two files it would be nice to be able to just include specific files.  This could take many of the same parameters as the folders, name, path, etc.  Of course the exclude patterns wouldn't make sense to include.


Example:

{
    "files":
        [
            {
                "path": "/path/to/my/file.txt"
            },
            {
                "path": "/path/to/my/other/file.txt"
            }
        ]
}


PS. Great work.  This is an awesome project.  I am hoping I can get our whole development team using it.

+2

Prose with Ease

Hamish fa 11 anys 0
I'm a writer not a coder but Scrivener on Linux (still in beta) is not yet able to handle the number of files and the sizes that I'm working with.  Sublime Text can, though it lacks a few of the basic features that would make it just as useful.  I'm not talking about the text formatting, which really gets in the way anyway and can be done in a word processor/LaTex later.  But being able to compile and export files as EPUB / PDF / concatenated txt, also being able to arrange the different txt files into a tree structure and also being able to edit them in a continuous draft.  Sublime Text is great as it opens instantly, I can work with thousands of fragments at once, but there does not seem to be anyway of ordering these.  Also it is hard to find specific settings and resources, tutorials solely for the prose writer....make all this a bit easier, or even have another version without any of the coding tools, and you'll have a whole new market....
+2

Rainbow Mode

AbeEstrada fa 13 anys actualitzat fa 13 anys 0
Would be nice to have this functionality. I tried to create a syntax highlight but it seems impossible to change the background on the fly.

Original
+2

Separation of Layout and Groups

Andrew Ho fa 13 anys actualitzat fa 13 anys 0
The idea is to separate the Layout/Group into two completely different concepts/entities.

Right now, the Layout determines the Groups (e.g. 2-column Layout automatically creates 2 Groups, http://i42.tinypic.com/30rnxi8.jp). Rather than doing this, my idea is to have the ability to create Groups that each have its own individual Layout that can be changed. Doing this implies that only one Group and it's pages are shown in the display window at any one time.

To help visualize, taking a look at the same screen shot above, all the tabs we see in both the left and right columns would be within the same Group (let's say Group 1). Say there is also a Group 2 with the files footer.phtml and footer.css, that group and its files would NOT be visible in the window, except in the Side Bar (or maybe somewhere else on the screen if the Side Bar is hidden). Switching to Group 2 (either by clicking the Group on the Side Bar or hitting ctrl+2) would then switch to viewing only the files within Group 2 using whatever Layout was originally selected for that Group. Because each Group can have it's own Layout, Group 1 could have a 2-column layout, and Group 2 could have 2-row layout.

Using myself as an example on how I would use this feature; I personally do a lot of web programming, so often I find myself editing 2-3 different files (phtml, css, js) to make changes to a single page. I am also often editing more than just one page at a time, so as I edit more and more pages, the tab count quickly gets out of hand. With this proposed idea, I could easily group each of my phtml/css/js files into Groups for each page I am editing, reducing tab clutter since the display window only displays the files in the current Group in focus. I could also change the layout for each Group independently, though I personally would most likely just leave each Group in single-page layout since I enjoy having lots of screen real-estate.

This idea provides significantly more flexibility than the current Layout/Group system for organizing one's working environment.
+2

Different font colors for matched pairs of parens

Brett Menzies fa 12 anys 0
Make matching pairs of parenthesis different colors depending on how deep they are, the outside pair red, the next pair orange, yellow and so on. I think it would make long lines of math (especially trig) much easier to read, aswell as long if statement conditions that need specified orders etc.