├── README.md ├── LICENSE └── openshmem.vim /README.md: -------------------------------------------------------------------------------- 1 | # vim-openshmem 2 | Vim plugin for syntax highlighting C code using the OpenSHMEM API (see http://openshmem.org) 3 | 4 | Place openshmem.vim in your syntax directory: 5 | ``` 6 | ~/.vim/syntax/openshmem.vim 7 | ``` 8 | 9 | Add to your .vimrc: 10 | ``` 11 | filetype on 12 | au Syntax openshmem source ~/.vim/syntax/openshmem.vim 13 | au BufRead,BufNewFile *.c,*.cpp,*.h,*.hpp set ft=openshmem 14 | ``` 15 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016, James A. Ross 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | * Neither the name of vim-openshmem nor the names of its 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /openshmem.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: C/C11/C++ for OpenSHMEM 1.5 API 3 | " Maintainer: James A. Ross 4 | " Latest Revision: March 18, 2020 5 | 6 | if version < 600 7 | syntax clear 8 | elseif exists ("b:current_syntax") 9 | finish 10 | endif 11 | 12 | " Read the C syntax first 13 | if version < 600 14 | source :p:h/c.vim 15 | else 16 | runtime! syntax/c.vim 17 | endif 18 | 19 | """ SHMEM Constants 20 | syn keyword shmemConst SHMEM_THREAD_SINGLE 21 | syn keyword shmemConst SHMEM_THREAD_FUNNELED 22 | syn keyword shmemConst SHMEM_THREAD_SERIALIZED 23 | syn keyword shmemConst SHMEM_THREAD_MULTIPLE 24 | syn keyword shmemConst SHMEM_TEAM_NUM_CONTEXTS 25 | syn keyword shmemConst SHMEM_TEAM_INVALID 26 | syn keyword shmemConst SHMEM_CTX_INVALID 27 | syn keyword shmemConst SHMEM_CTX_SERIALIZED 28 | syn keyword shmemConst SHMEM_CTX_PRIVATE 29 | syn keyword shmemConst SHMEM_CTX_NOSTORE 30 | syn keyword shmemConst SHMEM_SIGNAL_SET 31 | syn keyword shmemConst SHMEM_SIGNAL_ADD 32 | syn keyword shmemConst SHMEM_MALLOC_ATOMICS_REMOTE 33 | syn keyword shmemConst SHMEM_MALLOC_SIGNAL_REMOTE 34 | syn keyword shmemConst SHMEM_MAJOR_VERSION 35 | syn keyword shmemConst SHMEM_MINOR_VERSION 36 | syn keyword shmemConst SHMEM_MAX_NAME_LEN 37 | syn keyword shmemConst SHMEM_VENDOR_STRING 38 | syn keyword shmemConst SHMEM_CMP_EQ 39 | syn keyword shmemConst SHMEM_CMP_NE 40 | syn keyword shmemConst SHMEM_CMP_LT 41 | syn keyword shmemConst SHMEM_CMP_LE 42 | syn keyword shmemConst SHMEM_CMP_GT 43 | syn keyword shmemConst SHMEM_CMP_GE 44 | 45 | """ Deprecated/Redundant Constants 46 | syn keyword shmemConstDeprecated SHMEM_SYNC_VALUE 47 | syn keyword shmemConstDeprecated _SHMEM_SYNC_VALUE 48 | syn keyword shmemConstDeprecated SHMEM_SYNC_SIZE 49 | syn keyword shmemConstDeprecated SHMEM_BCAST_SYNC_SIZE 50 | syn keyword shmemConstDeprecated _SHMEM_BCAST_SYNC_SIZE 51 | syn keyword shmemConstDeprecated SHMEM_REDUCE_SYNC_SIZE 52 | syn keyword shmemConstDeprecated _SHMEM_REDUCE_SYNC_SIZE 53 | syn keyword shmemConstDeprecated SHMEM_BARRIER_SYNC_SIZE 54 | syn keyword shmemConstDeprecated _SHMEM_BARRIER_SYNC_SIZE 55 | syn keyword shmemConstDeprecated SHMEM_COLLECT_SYNC_SIZE 56 | syn keyword shmemConstDeprecated _SHMEM_COLLECT_SYNC_SIZE 57 | syn keyword shmemConstDeprecated SHMEM_ALLTOALL_SYNC_SIZE 58 | syn keyword shmemConstDeprecated SHMEM_ALLTOALLS_SYNC_SIZE 59 | syn keyword shmemConstDeprecated SHMEM_REDUCE_MIN_WRKDATA_SIZE 60 | syn keyword shmemConstDeprecated _SHMEM_REDUCE_MIN_WRKDATA_SIZE 61 | syn keyword shmemConstDeprecated _SHMEM_MAJOR_VERSION 62 | syn keyword shmemConstDeprecated _SHMEM_MINOR_VERSION 63 | syn keyword shmemConstDeprecated _SHMEM_MAX_NAME_LEN 64 | syn keyword shmemConstDeprecated _SHMEM_VENDOR_STRING 65 | syn keyword shmemConstDeprecated _SHMEM_CMP_EQ 66 | syn keyword shmemConstDeprecated _SHMEM_CMP_NE 67 | syn keyword shmemConstDeprecated _SHMEM_CMP_LT 68 | syn keyword shmemConstDeprecated _SHMEM_CMP_LE 69 | syn keyword shmemConstDeprecated _SHMEM_CMP_GT 70 | syn keyword shmemConstDeprecated _SHMEM_CMP_GE 71 | 72 | """ Library Handles 73 | syn keyword shmemConst SHMEM_TEAM_WORLD 74 | syn keyword shmemConst SHMEM_TEAM_SHARED 75 | syn keyword shmemConst SHMEM_CTX_DEFAULT 76 | 77 | """ OpenSHMEM Types 78 | syn keyword shmemType shmem_cmp_t 79 | syn keyword shmemType shmem_ctx_t 80 | syn keyword shmemType shmem_team_t 81 | syn keyword shmemType shmem_team_config_t 82 | 83 | """ Library Setup, Exit, and Query Routines 84 | syn keyword shmemFunc shmem_init 85 | syn keyword shmemFunc shmem_my_pe 86 | syn keyword shmemFunc shmem_n_pes 87 | syn keyword shmemFunc shmem_finalize 88 | syn keyword shmemFunc shmem_global_exit 89 | syn keyword shmemFunc shmem_pe_accessible 90 | syn keyword shmemFunc shmem_addr_accessible 91 | syn keyword shmemFunc shmem_ptr 92 | syn keyword shmemFunc shmem_info_get_version 93 | syn keyword shmemFunc shmem_info_get_name 94 | syn keyword shmemFunc shmem_init_thread 95 | syn keyword shmemFunc shmem_query_thread 96 | 97 | """ Memory Management Routines 98 | syn keyword shmemFunc shmem_malloc 99 | syn keyword shmemFunc shmem_free 100 | syn keyword shmemFunc shmem_realloc 101 | syn keyword shmemFunc shmem_align 102 | syn keyword shmemFunc shmem_malloc_with_hints 103 | syn keyword shmemFunc shmem_calloc 104 | 105 | """ Deprecated Initialization and Memory Magement Routines 106 | syn keyword shmemFuncDeprecated _my_pe 107 | syn keyword shmemFuncDeprecated _num_pes 108 | syn keyword shmemFuncDeprecated shmalloc 109 | syn keyword shmemFuncDeprecated shfree 110 | syn keyword shmemFuncDeprecated shrealloc 111 | syn keyword shmemFuncDeprecated shmemalign 112 | syn keyword shmemFuncDeprecated start_pes 113 | 114 | """ Team Management Routines 115 | syn keyword shmemFunc shmem_team_my_pe 116 | syn keyword shmemFunc shmem_team_n_pes 117 | syn keyword shmemFunc shmem_team_get_config 118 | syn keyword shmemFunc shmem_team_translate_pe 119 | syn keyword shmemFunc shmem_team_split_strided 120 | syn keyword shmemFunc shmem_team_split_2d 121 | syn keyword shmemFunc shmem_team_destroy 122 | 123 | """ Communication Management Routines 124 | syn keyword shmemFunc shmem_ctx_create 125 | syn keyword shmemFunc shmem_team_create_ctx 126 | syn keyword shmemFunc shmem_ctx_get_team 127 | syn keyword shmemFunc shmem_ctx_destroy 128 | 129 | """ Remote Memory Access Routines 130 | syn match shmemFunc '\' 131 | syn match shmemFunc '\' 132 | syn match shmemFunc '\' 133 | syn match shmemFunc '\' 134 | syn match shmemFunc '\' 135 | 136 | """ Atomic Memory Operations 137 | syn match shmemFunc '\' 138 | syn match shmemFunc '\' 139 | syn match shmemFunc '\' 140 | syn match shmemFunc '\' 141 | syn match shmemFunc '\' 142 | syn match shmemFunc '\' 143 | syn match shmemFunc '\' 144 | syn match shmemFunc '\' 145 | 146 | """ Deprecated Atomic Memory Operations 147 | syn match shmemFuncDeprecated '\' 148 | syn match shmemFuncDeprecated '\' 149 | syn match shmemFuncDeprecated '\' 150 | 151 | """ Signaling Operations 152 | syn match shmemFunc '\' 153 | syn match shmemFunc '\' 154 | syn match shmemFunc '\' 155 | syn match shmemFunc '\' 156 | syn keyword shmemFunc shmem_signal_fetch 157 | 158 | """ Collective Routines 159 | syn keyword shmemFunc shmem_barrier_all 160 | syn keyword shmemFunc shmem_sync 161 | syn keyword shmemFunc shmem_team_sync 162 | syn keyword shmemFunc shmem_sync_all 163 | syn match shmemFunc '\' 164 | 165 | """ Deprecated Collective Routines 166 | syn keyword shmemFuncDeprecated shmem_barrier 167 | syn match shmemFuncDeprecated '\' 168 | 169 | """ Reductions 170 | syn match shmemFunc '\' 171 | syn match shmemFunc '\' 172 | syn match shmemFunc '\' 173 | syn match shmemFunc '\' 174 | syn match shmemFunc '\' 175 | 176 | """ Deprecated Reductions 177 | syn match shmemFuncDeprecated '\' 178 | syn match shmemFuncDeprecated '\' 179 | syn match shmemFuncDeprecated '\' 180 | 181 | """ Point-To-Point Synchronization Routines 182 | syn match shmemFunc '\' 183 | syn keyword shmemFunc shmem_signal_wait_until 184 | 185 | """ Deprecated Point-To-Point Synchronization Routines 186 | syn match shmemFuncDeprecated '\' 187 | 188 | """ Memory Ordering Routines 189 | syn keyword shmemFunc shmem_fence 190 | syn keyword shmemFunc shmem_ctx_fence 191 | syn keyword shmemFunc shmem_quiet 192 | syn keyword shmemFunc shmem_ctx_quiet 193 | 194 | """ Distributed Locking Routines 195 | syn keyword shmemFunc shmem_clear_lock 196 | syn keyword shmemFunc shmem_set_lock 197 | syn keyword shmemFunc shmem_test_lock 198 | 199 | """ Deprecated Cache Management 200 | syn keyword shmemFuncDeprecated shmem_clear_cache_inv 201 | syn keyword shmemFuncDeprecated shmem_set_cache_inv 202 | syn keyword shmemFuncDeprecated shmem_clear_cache_line_inv 203 | syn keyword shmemFuncDeprecated shmem_set_cache_line_inv 204 | syn keyword shmemFuncDeprecated shmem_udcflush 205 | syn keyword shmemFuncDeprecated shmem_udcflush_line 206 | 207 | """ Profiling Interface 208 | syn keyword shmemFunc shmem_pcontrol 209 | 210 | let b:current_syntax = "openshmem" 211 | 212 | hi def link shmemConst Constant 213 | hi def link shmemFunc Function 214 | hi def link shmemType Type 215 | hi shmemConstDeprecated cterm=underline ctermfg=DarkRed guifg=Magenta 216 | hi shmemFuncDeprecated cterm=underline ctermfg=DarkCyan guifg=#00ffff 217 | --------------------------------------------------------------------------------