├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── Open Selection in GitHub.workflow └── Contents │ ├── Info.plist │ ├── QuickLook │ └── Preview.png │ └── document.wflow └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Creating a service 2 | 3 | The services in this project are Automator workflows that run AppleScript code. To create a service: 4 | 5 | 1. Open Automator.app in Mac OS X 10.4 “Tiger” or above. 6 | 1. In the sheet that appears, choose Service (the gear icon) and click Choose. 7 | 1. In the sidebar on the left, select the Actions filter and double-click “Run AppleScript” or “Run JavaScript” from the Library ‣ Utilities category. 8 | 1. Compose your script in the new action’s text box. If you’re writing the action in AppleScript, make sure to `tell application "Xcode"`. 9 | 1. Go to File ‣ Save. In the sheet that appears, choose the file name, which will also be the name of the menu item in the Services menu. The workflow is saved to ~/Library/Services/. 10 | 1. Copy the workflow bundle to a checkout of this project, commit it, and create a pull request. 11 | 12 | To find out what you can do with Xcode in an AppleScript or JavaScript action, open Script Editor.app (AppleScript Editor.app in earlier versions of Mac OS X) and go to File ‣ Open Dictionary. Select Xcode.app and click Choose. 13 | 14 | An Automation workflow can contain many kinds of actions. Depending on the circumstances, you may find it more maintainable to keep everything inline in an AppleScript or JavaScript action, or you may find it more maintainable to use a more specific action. 15 | 16 | ## Reporting a bug 17 | 18 | Bug reports are welcome. In your issue, please indicate: 19 | 20 | 1. The version of macOS, OS X, or Mac OS X you’re running. 21 | 1. The version of Xcode you’re using and where it’s installed. 22 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Minh Nguyễn 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Open Selection in GitHub.workflow/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSServices 6 | 7 | 8 | NSMenuItem 9 | 10 | default 11 | Open Selection in GitHub 12 | 13 | NSMessage 14 | runWorkflowAsService 15 | NSRequiredContext 16 | 17 | NSApplicationIdentifier 18 | com.apple.dt.Xcode 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Open Selection in GitHub.workflow/Contents/QuickLook/Preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1ec5/read-only-coding/64ece029d6bc3a80f45182bb9a4dc486c9b55662/Open Selection in GitHub.workflow/Contents/QuickLook/Preview.png -------------------------------------------------------------------------------- /Open Selection in GitHub.workflow/Contents/document.wflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMApplicationBuild 6 | 444.7 7 | AMApplicationVersion 8 | 2.8 9 | AMDocumentVersion 10 | 2 11 | actions 12 | 13 | 14 | action 15 | 16 | AMAccepts 17 | 18 | Container 19 | List 20 | Optional 21 | 22 | Types 23 | 24 | com.apple.applescript.object 25 | 26 | 27 | AMActionVersion 28 | 1.0.2 29 | AMApplication 30 | 31 | Automator 32 | 33 | AMParameterProperties 34 | 35 | source 36 | 37 | 38 | AMProvides 39 | 40 | Container 41 | List 42 | Types 43 | 44 | com.apple.applescript.object 45 | 46 | 47 | ActionBundlePath 48 | /System/Library/Automator/Run AppleScript.action 49 | ActionName 50 | Chạy AppleScript 51 | ActionNameComment 52 | Ask Xcode for its Selection 53 | ActionParameters 54 | 55 | source 56 | on run {input, parameters} tell application "Xcode" set theWindow to the first window set theDocuments to every source document whose theWindow's name ends with name if the number of items in theDocuments > 1 then set thePaths to the path of every source document whose name is theWindow's name set theSelection to choose from list thePaths ¬ with title ¬ "Open Selection in GitHub" with prompt ("Which " & theWindow's name & "?") ¬ default items the first item in thePaths ¬ OK button name "Open" set thePath to the first item in theSelection set theDocument to the first source document whose path is thePath set theLineNumbers to the selected paragraph range of (the first source document whose path is thePath) else set theDocument to the first item in theDocuments set thePath to theDocument's path set theLineNumbers to theDocument's selected paragraph range end if end tell return {thePath, theLineNumbers} end run 57 | 58 | BundleIdentifier 59 | com.apple.Automator.RunScript 60 | CFBundleVersion 61 | 1.0.2 62 | CanShowSelectedItemsWhenRun 63 | 64 | CanShowWhenRun 65 | 66 | Category 67 | 68 | AMCategoryUtilities 69 | 70 | Class Name 71 | RunScriptAction 72 | IgnoresInput 73 | 74 | InputUUID 75 | AC557A8F-278B-457F-9AEF-7142CA036058 76 | Keywords 77 | 78 | Chạy 79 | 80 | OutputUUID 81 | 69D62E0E-231C-4733-BA10-2BA61471F18E 82 | UUID 83 | 97D93A0B-4DA4-4639-A530-395BA4D7E1EF 84 | UnlocalizedApplications 85 | 86 | Automator 87 | 88 | arguments 89 | 90 | 0 91 | 92 | default value 93 | on run {input, parameters} 94 | 95 | (* Your script goes here *) 96 | 97 | return input 98 | end run 99 | name 100 | source 101 | required 102 | 0 103 | type 104 | 0 105 | uuid 106 | 0 107 | 108 | 109 | isViewVisible 110 | 111 | location 112 | 499.500000:316.000000 113 | nibPath 114 | /System/Library/Automator/Run AppleScript.action/Contents/Resources/Base.lproj/main.nib 115 | 116 | isViewVisible 117 | 118 | 119 | 120 | action 121 | 122 | AMAccepts 123 | 124 | Container 125 | List 126 | Optional 127 | 128 | Types 129 | 130 | * 131 | 132 | 133 | AMActionVersion 134 | v.1.0.2 135 | AMApplication 136 | 137 | Automator 138 | 139 | AMParameterProperties 140 | 141 | variableUUID 142 | 143 | isPathPopUp 144 | 145 | selectedVariableUUID 146 | CD2CD581-8868-47B8-AFE0-68745CF7EEEE 147 | 148 | 149 | AMProvides 150 | 151 | Container 152 | List 153 | Types 154 | 155 | * 156 | 157 | 158 | AMRequiredResources 159 | 160 | ActionBundlePath 161 | /System/Library/Automator/Set Value of Variable.action 162 | ActionName 163 | Đặt Giá trị của Biến 164 | ActionParameters 165 | 166 | variableUUID 167 | CD2CD581-8868-47B8-AFE0-68745CF7EEEE 168 | 169 | BundleIdentifier 170 | com.apple.Automator.SetValueofVariable 171 | CFBundleVersion 172 | 1.0.2 173 | CanShowSelectedItemsWhenRun 174 | 175 | CanShowWhenRun 176 | 177 | Category 178 | 179 | AMCategoryUtilities 180 | 181 | Class Name 182 | Set_Value_of_Variable 183 | InputUUID 184 | 9394469E-43B9-415A-9B21-88FA97DA8996 185 | Keywords 186 | 187 | biến 188 | liên kết 189 | đầu vào 190 | đầu ra 191 | lưu trữ 192 | 193 | OutputUUID 194 | 5E544F8E-9B09-4378-BE54-F9727178F651 195 | UUID 196 | 2278F377-07C2-4DB9-BE3E-66D3F1CB177A 197 | UnlocalizedApplications 198 | 199 | Automator 200 | 201 | arguments 202 | 203 | 0 204 | 205 | default value 206 | 207 | name 208 | variableUUID 209 | required 210 | 0 211 | type 212 | 0 213 | uuid 214 | 0 215 | 216 | 217 | isViewVisible 218 | 219 | location 220 | 499.500000:422.000000 221 | nibPath 222 | /System/Library/Automator/Set Value of Variable.action/Contents/Resources/Base.lproj/main.nib 223 | 224 | isViewVisible 225 | 226 | 227 | 228 | action 229 | 230 | AMAccepts 231 | 232 | Container 233 | List 234 | Optional 235 | 236 | Types 237 | 238 | com.apple.applescript.object 239 | 240 | 241 | AMActionVersion 242 | 1.0.2 243 | AMApplication 244 | 245 | Automator 246 | 247 | AMParameterProperties 248 | 249 | source 250 | 251 | 252 | AMProvides 253 | 254 | Container 255 | List 256 | Types 257 | 258 | com.apple.applescript.object 259 | 260 | 261 | ActionBundlePath 262 | /System/Library/Automator/Run AppleScript.action 263 | ActionName 264 | Chạy AppleScript 265 | ActionParameters 266 | 267 | source 268 | on run {input, parameters} return input's first item end run 269 | 270 | BundleIdentifier 271 | com.apple.Automator.RunScript 272 | CFBundleVersion 273 | 1.0.2 274 | CanShowSelectedItemsWhenRun 275 | 276 | CanShowWhenRun 277 | 278 | Category 279 | 280 | AMCategoryUtilities 281 | 282 | Class Name 283 | RunScriptAction 284 | InputUUID 285 | 44D9C3CD-6D8C-41D2-8FB9-20C20CBF3AB2 286 | Keywords 287 | 288 | Chạy 289 | 290 | OutputUUID 291 | DA77A09A-E1B9-4D74-99F0-036E52D17309 292 | UUID 293 | 3EA3061E-572F-49D0-889E-55802580A183 294 | UnlocalizedApplications 295 | 296 | Automator 297 | 298 | arguments 299 | 300 | 0 301 | 302 | default value 303 | on run {input, parameters} 304 | 305 | (* Your script goes here *) 306 | 307 | return input 308 | end run 309 | name 310 | source 311 | required 312 | 0 313 | type 314 | 0 315 | uuid 316 | 0 317 | 318 | 319 | isViewVisible 320 | 321 | location 322 | 499.500000:668.000000 323 | nibPath 324 | /System/Library/Automator/Run AppleScript.action/Contents/Resources/Base.lproj/main.nib 325 | 326 | isViewVisible 327 | 328 | 329 | 330 | action 331 | 332 | AMAccepts 333 | 334 | Container 335 | List 336 | Optional 337 | 338 | Types 339 | 340 | com.apple.cocoa.string 341 | 342 | 343 | AMActionVersion 344 | 2.0.3 345 | AMApplication 346 | 347 | Automator 348 | 349 | AMParameterProperties 350 | 351 | COMMAND_STRING 352 | 353 | CheckedForUserDefaultShell 354 | 355 | inputMethod 356 | 357 | shell 358 | 359 | source 360 | 361 | 362 | AMProvides 363 | 364 | Container 365 | List 366 | Types 367 | 368 | com.apple.cocoa.string 369 | 370 | 371 | ActionBundlePath 372 | /System/Library/Automator/Run Shell Script.action 373 | ActionName 374 | Chạy Tập lệnh Shell 375 | ActionNameComment 376 | Ask Git for the URL 377 | ActionParameters 378 | 379 | COMMAND_STRING 380 | cd "$(dirname "$1")" 381 | 382 | REPO_URL=$(git remote get-url origin) 383 | HASH=$(git rev-parse HEAD) 384 | 385 | cd $(git rev-parse --show-toplevel) 386 | REPO_RELATIVE_PATH=$(git ls-files "$1") 387 | 388 | REPO_URL=${REPO_URL/#git@github.com:/https://github.com/} 389 | REPO_URL=${REPO_URL%.git} 390 | echo "$REPO_URL/blob/$HASH/${REPO_RELATIVE_PATH// /%20}" 391 | CheckedForUserDefaultShell 392 | 393 | inputMethod 394 | 1 395 | shell 396 | /bin/bash 397 | source 398 | 399 | 400 | BundleIdentifier 401 | com.apple.RunShellScript 402 | CFBundleVersion 403 | 2.0.3 404 | CanShowSelectedItemsWhenRun 405 | 406 | CanShowWhenRun 407 | 408 | Category 409 | 410 | AMCategoryUtilities 411 | 412 | Class Name 413 | RunShellScriptAction 414 | IgnoresInput 415 | 416 | InputUUID 417 | 700441D6-565F-4449-9B25-6566FF1FC7E9 418 | Keywords 419 | 420 | Shell 421 | Tập lệnh 422 | Lệnh 423 | Chạy 424 | Unix 425 | 426 | OutputUUID 427 | 082A8C39-EBE9-41F0-8FD9-8B9EDD55030D 428 | UUID 429 | C31656BF-7650-423E-8852-CDA95D620388 430 | UnlocalizedApplications 431 | 432 | Automator 433 | 434 | arguments 435 | 436 | 0 437 | 438 | default value 439 | 0 440 | name 441 | inputMethod 442 | required 443 | 0 444 | type 445 | 0 446 | uuid 447 | 0 448 | 449 | 1 450 | 451 | default value 452 | 453 | name 454 | source 455 | required 456 | 0 457 | type 458 | 0 459 | uuid 460 | 1 461 | 462 | 2 463 | 464 | default value 465 | 466 | name 467 | CheckedForUserDefaultShell 468 | required 469 | 0 470 | type 471 | 0 472 | uuid 473 | 2 474 | 475 | 3 476 | 477 | default value 478 | 479 | name 480 | COMMAND_STRING 481 | required 482 | 0 483 | type 484 | 0 485 | uuid 486 | 3 487 | 488 | 4 489 | 490 | default value 491 | /bin/sh 492 | name 493 | shell 494 | required 495 | 0 496 | type 497 | 0 498 | uuid 499 | 4 500 | 501 | 502 | isViewVisible 503 | 504 | location 505 | 499.500000:851.000000 506 | nibPath 507 | /System/Library/Automator/Run Shell Script.action/Contents/Resources/vi.lproj/main.nib 508 | 509 | isViewVisible 510 | 511 | 512 | 513 | action 514 | 515 | AMAccepts 516 | 517 | Container 518 | List 519 | Optional 520 | 521 | Types 522 | 523 | * 524 | 525 | 526 | AMActionVersion 527 | v.1.0.2 528 | AMApplication 529 | 530 | Automator 531 | 532 | AMParameterProperties 533 | 534 | variableUUID 535 | 536 | isPathPopUp 537 | 538 | selectedVariableUUID 539 | CD2CD581-8868-47B8-AFE0-68745CF7EEEE 540 | 541 | 542 | AMProvides 543 | 544 | Container 545 | List 546 | Optional 547 | 548 | Types 549 | 550 | com.apple.applescript.object 551 | 552 | 553 | AMRequiredResources 554 | 555 | ActionBundlePath 556 | /System/Library/Automator/Get Value of Variable.action 557 | ActionName 558 | Lấy Giá trị của Biến 559 | ActionParameters 560 | 561 | variableUUID 562 | CD2CD581-8868-47B8-AFE0-68745CF7EEEE 563 | 564 | BundleIdentifier 565 | com.apple.Automator.GetValueofVariable 566 | CFBundleVersion 567 | 1.0.2 568 | CanShowSelectedItemsWhenRun 569 | 570 | CanShowWhenRun 571 | 572 | Category 573 | 574 | AMCategoryUtilities 575 | 576 | Class Name 577 | Get_Value_of_Variable 578 | InputUUID 579 | F2708B24-371E-44F7-9798-FA0946A230F4 580 | Keywords 581 | 582 | biến 583 | liên kết 584 | đầu vào 585 | đầu ra 586 | lưu trữ 587 | 588 | OutputUUID 589 | EDA248F3-17A6-497C-A46B-4FACFA5EEECC 590 | UUID 591 | 41372605-361C-4CCF-B188-7852A2988BD3 592 | UnlocalizedApplications 593 | 594 | Automator 595 | 596 | arguments 597 | 598 | 0 599 | 600 | default value 601 | 602 | name 603 | variableUUID 604 | required 605 | 0 606 | type 607 | 0 608 | uuid 609 | 0 610 | 611 | 612 | isViewVisible 613 | 614 | location 615 | 499.500000:954.000000 616 | nibPath 617 | /System/Library/Automator/Get Value of Variable.action/Contents/Resources/Base.lproj/main.nib 618 | 619 | isViewVisible 620 | 621 | 622 | 623 | action 624 | 625 | AMAccepts 626 | 627 | Container 628 | List 629 | Optional 630 | 631 | Types 632 | 633 | com.apple.applescript.object 634 | 635 | 636 | AMActionVersion 637 | 1.0.2 638 | AMApplication 639 | 640 | Automator 641 | 642 | AMParameterProperties 643 | 644 | source 645 | 646 | 647 | AMProvides 648 | 649 | Container 650 | List 651 | Types 652 | 653 | com.apple.applescript.object 654 | 655 | 656 | ActionBundlePath 657 | /System/Library/Automator/Run AppleScript.action 658 | ActionName 659 | Chạy AppleScript 660 | ActionNameComment 661 | Append Line Numbers to the URL 662 | ActionParameters 663 | 664 | source 665 | on run {input, parameters} set theURL to the input's first item set theLineNumbers to the input's third item -- Append the selected line numbers to the URL. tell application "Xcode" if theLineNumbers exists then set theAnchor to "L" & the first item in theLineNumbers if (count of theLineNumbers) > 1 and the first item in theLineNumbers ≠ the last item in theLineNumbers then set theAnchor to theAnchor & "-L" & the last item in theLineNumbers end if set theURL to theURL & "#" & theAnchor end if end tell return theURL end run 666 | 667 | BundleIdentifier 668 | com.apple.Automator.RunScript 669 | CFBundleVersion 670 | 1.0.2 671 | CanShowSelectedItemsWhenRun 672 | 673 | CanShowWhenRun 674 | 675 | Category 676 | 677 | AMCategoryUtilities 678 | 679 | Class Name 680 | RunScriptAction 681 | IgnoresInput 682 | 683 | InputUUID 684 | 3138FA10-D029-4B25-8B4D-AE7982FAAD6D 685 | Keywords 686 | 687 | Chạy 688 | 689 | OutputUUID 690 | DBCC4FD9-6C24-43F3-81C9-7A8BF588C8C6 691 | UUID 692 | 6575964A-DDC4-43D2-8018-51DC77844718 693 | UnlocalizedApplications 694 | 695 | Automator 696 | 697 | arguments 698 | 699 | 0 700 | 701 | default value 702 | on run {input, parameters} 703 | 704 | (* Your script goes here *) 705 | 706 | return input 707 | end run 708 | name 709 | source 710 | required 711 | 0 712 | type 713 | 0 714 | uuid 715 | 0 716 | 717 | 718 | isViewVisible 719 | 720 | location 721 | 499.500000:1200.000000 722 | nibPath 723 | /System/Library/Automator/Run AppleScript.action/Contents/Resources/Base.lproj/main.nib 724 | 725 | isViewVisible 726 | 727 | 728 | 729 | action 730 | 731 | AMAccepts 732 | 733 | Container 734 | List 735 | Optional 736 | 737 | Types 738 | 739 | com.apple.cocoa.url 740 | 741 | 742 | AMActionVersion 743 | 1.0.2 744 | AMApplication 745 | 746 | Safari 747 | 748 | AMParameterProperties 749 | 750 | AMProvides 751 | 752 | Container 753 | List 754 | Types 755 | 756 | com.apple.cocoa.url 757 | 758 | 759 | AMRequiredResources 760 | 761 | ActionBundlePath 762 | /System/Library/Automator/Display Webpages 2.action 763 | ActionName 764 | Hiển thị Trang web 765 | ActionParameters 766 | 767 | BundleIdentifier 768 | com.apple.Automator.DisplayWebpages 769 | CFBundleVersion 770 | 1.0.2 771 | CanShowSelectedItemsWhenRun 772 | 773 | CanShowWhenRun 774 | 775 | Category 776 | 777 | AMCategoryInternet 778 | 779 | Class Name 780 | Display_Webpages 781 | InputUUID 782 | 6526A4E6-E6B5-41BB-970F-F3DCF907DA9E 783 | Keywords 784 | 785 | URL 786 | Web 787 | Hiển thị 788 | Mở 789 | Hiển thị 790 | 791 | OutputUUID 792 | CF626803-FF12-4A00-90CF-F740CAB9BAEE 793 | UUID 794 | D115D304-509F-4AAB-8CE3-3B86AC8AFA80 795 | UnlocalizedApplications 796 | 797 | Safari 798 | 799 | arguments 800 | 801 | isViewVisible 802 | 1 803 | location 804 | 449.000000:1310.000000 805 | 806 | isViewVisible 807 | 1 808 | 809 | 810 | connectors 811 | 812 | 287264FB-483E-41BC-99E1-DA761F2BEE41 813 | 814 | from 815 | 6575964A-DDC4-43D2-8018-51DC77844718 - 6575964A-DDC4-43D2-8018-51DC77844718 816 | to 817 | D115D304-509F-4AAB-8CE3-3B86AC8AFA80 - D115D304-509F-4AAB-8CE3-3B86AC8AFA80 818 | 819 | 3559B0E0-1200-48EC-86A3-2658161C1F03 820 | 821 | from 822 | 2278F377-07C2-4DB9-BE3E-66D3F1CB177A - 2278F377-07C2-4DB9-BE3E-66D3F1CB177A 823 | to 824 | 3EA3061E-572F-49D0-889E-55802580A183 - 3EA3061E-572F-49D0-889E-55802580A183 825 | 826 | 808A0348-3DE5-4D09-9EFC-0C73F128040E 827 | 828 | from 829 | 97D93A0B-4DA4-4639-A530-395BA4D7E1EF - 97D93A0B-4DA4-4639-A530-395BA4D7E1EF 830 | to 831 | 2278F377-07C2-4DB9-BE3E-66D3F1CB177A - 2278F377-07C2-4DB9-BE3E-66D3F1CB177A 832 | 833 | 87283C64-9F7B-4DBA-B29B-3E85D3086937 834 | 835 | from 836 | 41372605-361C-4CCF-B188-7852A2988BD3 - 41372605-361C-4CCF-B188-7852A2988BD3 837 | to 838 | 6575964A-DDC4-43D2-8018-51DC77844718 - 6575964A-DDC4-43D2-8018-51DC77844718 839 | 840 | C98F249C-F546-4CF0-BB15-53C43064FC18 841 | 842 | from 843 | C31656BF-7650-423E-8852-CDA95D620388 - C31656BF-7650-423E-8852-CDA95D620388 844 | to 845 | 41372605-361C-4CCF-B188-7852A2988BD3 - 41372605-361C-4CCF-B188-7852A2988BD3 846 | 847 | E49BA0F1-6834-4FBA-BFC4-CD87004F3E1E 848 | 849 | from 850 | 3EA3061E-572F-49D0-889E-55802580A183 - 3EA3061E-572F-49D0-889E-55802580A183 851 | to 852 | C31656BF-7650-423E-8852-CDA95D620388 - C31656BF-7650-423E-8852-CDA95D620388 853 | 854 | 855 | variables 856 | 857 | 858 | UUID 859 | CD2CD581-8868-47B8-AFE0-68745CF7EEEE 860 | identifier 861 | com.apple.Automator.Variable.Storage 862 | name 863 | thePathAndLineNumbers 864 | 865 | 866 | UUID 867 | 719201B4-C1CB-4C96-9618-761A6A73F9CF 868 | identifier 869 | com.apple.Automator.Variable.Storage 870 | name 871 | theURLs 872 | 873 | 874 | workflowMetaData 875 | 876 | serviceApplicationBundleID 877 | com.apple.dt.Xcode 878 | serviceApplicationPath 879 | /Applications/Xcode.app 880 | serviceInputTypeIdentifier 881 | com.apple.Automator.nothing 882 | serviceOutputTypeIdentifier 883 | com.apple.Automator.nothing 884 | serviceProcessesInput 885 | 0 886 | workflowTypeIdentifier 887 | com.apple.Automator.servicesMenu 888 | 889 | 890 | 891 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # read-only-coding 2 | Automator services to make coding in Xcode easier. Written mostly in AppleScript, the [read-only language](https://en.wikipedia.org/wiki/Read-only_language). 3 | 4 | ## Services 5 | 6 | ### Open Selection in GitHub 7 | 8 | If a Git-managed source code file is open in Xcode, this service opens a checked-in copy of the file on GitHub in your default Web browser, with the selected line or lines highlighted. The clone containing the file must have a remote named `origin` that points to GitHub via HTTPS. 9 | 10 | ## Installation 11 | 12 | To install these services: 13 | 14 | 1. [Download a ZIP of this repository](https://github.com/1ec5/read-only-coding/archive/master.zip). 15 | 2. Double-click each .workflow bundle and click Install. (Or drop each .workflow bundle into ~/Library/Services/.) 16 | 17 | To assign keyboard shortcuts to these services: 18 | 19 | 1. Open System Preferences and go to the Keyboard preference pane. 20 | 2. Switch to the Keyboard Shortcuts tab and select Services from the pane on the left. 21 | 3. Select a service and click “add shortcut”. 22 | --------------------------------------------------------------------------------